gpt4 book ai didi

design-patterns - 限制类的调用方法

转载 作者:行者123 更新时间:2023-12-02 00:24:59 25 4
gpt4 key购买 nike

我在设计国际象棋游戏时遇到了一个问题。有2个Player:p1,p2;我想以相同玩家不能同时调用 makeMove 两次的方式实现该类。

查看示例。

class Move {};
class Player {
void makeMove(Move *m) {

}
};

//情况一:

Player p1;
p1.makeMove(new move());
p1.makeMove(new move()); // it should give error

//情况2:

Player p1;
p1.makeMove(new move());
Player p2;
p2.makeMove(new move());

p1.makeMove(new move()); // it os ok

请帮我设计类(class)

最佳答案

首先,我认为 Player 类不应该对此负责。用类似的东西会更好

class ChessEngine
{
void MovePlayer(Player *player, Move *move)
{

}
}

其中 ChessEngine 可以有一个之前走法的列表,然后检查玩家是否允许走法。

关于design-patterns - 限制类的调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com