gpt4 book ai didi

c - 贪婪的 C 程序将游戏保存到文件时遇到问题

转载 作者:行者123 更新时间:2023-11-30 17:14:14 24 4
gpt4 key购买 nike

我们正在进行这个用 C 语言实现 Greed 的项目(greedjs.com)。每次用户移动时,这个函数都应该更新。当 @ 移动时,它会留下 BOARD[ROW][COLUMN] = 0 的特定元素。我如何将它写入文件,以便它打印一个空格而不是 0?

这是我的代码:

void update_game_file() {   
fboard = fopen("newgame.txt", "w+");
if(fboard==NULL){
printf("Error!");
exit(1);
}
/*
* print board to file
*/
for (int i=0; i<ROWS; i++) {
for (int j=0; j<COLS; j++) {
if(BOARD[i][j] == 64) {
char player = BOARD[i][j];
fprintf( fboard, "%c", player);
} else if (BOARD[i][j] == 0) {
char space = BOARD[i][j];
fprintf( fboard, "%c", space);
} else if (BOARD[i][j] !=64) {
fprintf( fboard, "%d", BOARD[i][j]);
}
}
fprintf( fboard, "\n");
}
fclose(fboard);
}

最佳答案

以下是处理该问题的一种方法:

for (int i=0; i<ROWS; i++)
{
for (int j=0; j<COLS; j++)
{

if (BOARD[i][j] == 0)
{
fprintf( fboard, " " );
}

else if ( BOARD[i][j] == '@' )
{
fprintf( fboard, "@" );
}

else
{
fprintf( fboard, "%d", BOARD[i][j]);
}
}
fprintf( fboard, "\n");
}

但是,这会在读回文件时导致一些问题。

建议:

for (int i=0; i<ROWS; i++)
{
for (int j=0; j<COLS; j++)
{

if (BOARD[i][j] == 0)
{
fprintf( fboard, "%c", ' ' );
}

else if ( BOARD[i][j] == '@' )
{
fprintf( fboard, "%c", '@' );
}

else
{

fprintf( fboard, "%c", BOARD[i][j]);
}
}
fprintf( fboard, "\n");
}

关于c - 贪婪的 C 程序将游戏保存到文件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30425814/

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