[英]Greed on C Program trouble saving game to file
我们有一个在C中实现Greed(greedjs.com)的项目。每次用户移动时,此功能都应更新。 当@移动时,它将保留我的BOARD [ROW] [COLUMN] = 0的特定元素。我如何将其写入文件,以便打印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");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.