【发布时间】:2015-09-20 07:59:50
【问题描述】:
所以过去一周我一直在尝试学习一些 C,我正在做一个练习来编写一个非常简单的井字游戏。
有人问我:
- 提示两个用户分别在 tic、tac、toe 网格的九个位置之一中输入“naught”或“cross”
- 在所有 9 个输入完成后显示网格
- 为了简单起见:只有当所有 9 个网格位置都输入后,才能确定是否有赢家(您可以使用一些“if”语句来做到这一点) .
有人告诉我这可以用几个if 语句来完成,到目前为止我只学到了if 的,包括基本的int、char、float、@987654326 @,等等。
所以,我没有真正掌握如何仅使用 if 语句来检查是否:
该位置已被占用,如果它提示用户重试或将当前人员置零或交叉在该位置。
跟踪两个用户输入的位置,因此我知道他们输入的两个用户的每个位置,以检查这些位置是否为空。
我觉得我有点想太多了,但我不确定,如果有人能得到任何帮助,那就太好了。
这是我目前写的:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char board[9];
int num;
printf("Today we are playing a game of Tic Tac Toe\n");
printf("To play the game you need to line up 3 of the same type 'x's or o's' in a line to win\n");
printf("Before we start, whoever wants to be 'X' starts first, and whoever wants to be 'O' starts second\n");
printf("The board looks like this\n");
printf("%d%c%d%c%d\n", 1, 124, 2, 124, 3);
printf("%d%c%d%c%d\n", 4, 124, 5, 124, 6);
printf("%d%c%d%c%d\n", 7, 124, 8, 124, 9);
printf("Lets begin");
printf("\n");
printf("\n");
printf("\n");
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'X';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'O';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'X';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'O';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'X';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'O';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'X';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'O';
printf("Please enter a number between 1 - 9 ");
scanf("%d", &num);
board[num] = 'X';
return 0;
}
注意:我也可以要求所有答案都只使用if 语句,因为这也是我所知道的,这就是练习的完成方式,尽管这可能是十次使用 for/while 和数组更容易。
谢谢!
【问题讨论】:
-
你真的不需要
spot0、spot1等等。您可以简单地创建一个数组int spot[9]; -
if((temp = 1)){ spot0 == "X";-->if((temp == 1)){ spot0 = 'X'; -
感谢 ForceBru 和 BLUEPIXY 为我提供有用的信息。 arash kordi,你显然不明白这个网站是关于什么的,我来这里是为了了解更多信息,看看我犯了什么错误,以及我可以学习什么来改进代码..
-
@Collwyr 另外,你不需要你的位置是
int类型,你可以使用char,因为你只存储字符而不是一些非常大的数字。 -
Colwyr 你还有一个
if((temp=2)。致命错误(因为它语法正确),==用于测试相等性,=用于赋值,正如@BLUEPIXY 已经指出的那样。
标签: c if-statement tic-tac-toe