小编M4s*_*1nd的帖子

Haskell - 显示实例多个数据类型

我正在为学校作业制作一个国际象棋游戏,我的作品已定义

    data Piece = Piece { piecetype :: PieceType, color :: PieceColor }
    data PieceType = Pawn | Knight | Bishop | Rook | Queen | King
    data PieceColor = Black | White deriving Eq
Run Code Online (Sandbox Code Playgroud)

现在我必须打印一块作为单个字符(king = k,queen = q,knight = n等)的黑色部分,该值是其白色值的大写(king = K,queen = Q,knight = N等等)所以我做了三个节目实例

    instance Show PieceColor where
        show Black = "B"
        show White = "W"

    instance Show PieceType where
        show Pawn = "P"
        show Knight = "N"
        show Bishop = "B"
        show Rook = "R" …
Run Code Online (Sandbox Code Playgroud)

haskell types instance show

3
推荐指数
1
解决办法
479
查看次数

Make_Pair标识符在一个函数中找不到,但在另一个函数中找到

我正在尝试使用SDL_ttf创建字体字典,就像我用SDL_image制作字典一样.由于字体存储时pnt_size我创建了一个包含此信息的结构:

    struct fontinfo
    {
        string assetname;
        int size;
    };
Run Code Online (Sandbox Code Playgroud)

其次是两个词典:

map<string, SDL_Surface*> imageDictionary;
map<fontinfo*, TTF_Font*> fontDictionary;
Run Code Online (Sandbox Code Playgroud)

两者之间的区别在于字体字典不仅需要包含文件的字符串,还需要包含字体的大小.

然后,当对象请求图像或字体时,它会为其调用get函数.现在getSprite工作正常:

    SDL_Surface* ResourceManager::getSprite(string assetname)
    {
        if (assetname == "")
        return NULL;

        map<string, SDL_Surface*>::iterator it = imageDictionary.find(assetname);
        if (it != imageDictionary.end())
            return it->second;
        else
        {
            SDL_Surface* image = Load_Image(assetname);
            if (image != NULL)
                imageDictionary.insert(make_pair(assetname, image));
            return image;
        }
    }
Run Code Online (Sandbox Code Playgroud)

getFont方法几乎完全相同,除了它使用a fontinfo而不是string:

    TTF_Font* ResourceManager::getFont(string assetname, int size)
    {
        if (assetname == "" || size …
Run Code Online (Sandbox Code Playgroud)

c++ map identifier sdl-ttf std-pair

2
推荐指数
1
解决办法
1344
查看次数

标签 统计

c++ ×1

haskell ×1

identifier ×1

instance ×1

map ×1

sdl-ttf ×1

show ×1

std-pair ×1

types ×1