我正在嘗試創建遊戲Chomp。我半路過,但相當卡住。C - Chomp問題
遊戲將有5個不同的功能。指針和結構是不允許的。
a)initialize()將矩陣中的每個位置初始化爲'O'。沒有參數或返回值。
B)print_board()打印矩陣。沒有參數或返回值。
c)get_move()掃描播放器(行和列)的移動並用數組「返回」它。參數:關於它是誰的信息(玩家1或玩家2)以及包含兩個元素的數組,其中移動座標將被存儲。沒有回報價值。
d)check_move()控制移動是否合法(不在矩陣之外而不是已經被吃掉的位置)。參數:要檢查的移動(行和列)。返回值:控件的結果。 < ------ ???????
E)update_board()更新矩陣。參數:新移動(行和列)。沒有回報價值。
這是我走到多遠,我卡在check_move()函數。我不明白我將從這個功能返回什麼。
#include <stdio.h>
int height = 4;
int width = 10;
char matrix[4][10];
void initialize()
{
for(int row = 0; row < height; row++)
for(int col = 0; col < width; col++)
matrix[row][col] = 'O';
}
void print_board()
{
for(int row = 0; row < height; row++)
{
for(int col = 0; col < width; col++)
{
printf("%c", matrix[row][col]);
}
printf("\n");
}
printf("\n");
}
void get_move(int player, int input[])
{
printf("Player %d, make your move: ", player);
scanf("%d %d", &input[0], &input[1]);
}
int check_move(int position[])
{
int row = position[0];
int col = position[1];
if(row <= height && col <= width)
{
for(row; row <= height; row++)
{
for(col; col <= width; col++)
{
if(matrix[row][col] == ' ');
printf("Invalid move! \n");
}
}
}
}
void update_board(int x, int y)
{
for(int xi = x; xi <= 10; ++xi)
{
for(int yi = y; yi <= 10; ++yi)
matrix[xi-1][yi-1] = ' ';
}
}
int main(void)
{
int player = 1;
int position[2];
initialize();
print_board();
get_move(player, position);
check_move(position);
update_board(position[0], position[1]);
print_board();
getchar();
getchar();
getchar();
return 0;
}
我假設你會返回true/fale(1/0)並對此採取行動。 – OldProgrammer
耶,好縮進! (真的。珍稀鳥:-)) – 2013-11-04 21:00:16
將'check_move'重命名爲'valid_move()';當建議的移動有效時使其返回'1',當它無效時返回'0'。然後你可以寫下如下內容:'do getmove(...); while(!valid_move(...));'。代碼中還需要更多的循環。 –