我正在制作一个多人游戏,每个回合都需要提示用户进行移动。每回合我都会提示玩家X'其中X是玩家名称。
我如何实施第二个玩家' O'每转一圈。我目前正在尝试使用player->类型,但每回合都需要帮助更新类型。
struct player {
char type; // 'X' or 'O'
};
while(1){
player->type = 'X';
printf("%c", player->type);
play_game;
}
答案 0 :(得分:1)
首先,听起来你需要重新使用播放器结构,因为它是一个2人游戏。为此,您可以在文件顶部使用typedef
语句。
typedef struct {
char type;
} player;
这使您可以随时创建玩家......
player p1;
player p2;
// you can say p1.type etc...
然后在游戏运行时,您可以在每个玩家之间切换,然后根据自己的喜好对其进行操作。
#define NUM_PLAYERS 2
/* typedef statement goes here... */
int main(int argc, char *argv[]) {
player[NUM_PLAYERS] players;
players[0].type = 'X';
players[1].type = 'O';
int currentPlayerIndex = 0;
while (1) {
// Make a pointer the player you want
player* currentPlayer = &(players[currentPlayerIndex]);
doSomething(currentPlayer);
// Move to the next player index (will wrap around to 0)
currentPlayerIndex = (currentPlayerIndex + 1) % NUM_PLAYERS;
}
return 0;
}
这样您就不需要为每个新玩家重写逻辑。如果需要,您还可以添加更多玩家。