我特别想做的是有一个for循环迭代板数组,当它到达用户输入的那个时,它用X替换它的值(板上的数字),以便用户在Tic Tac Toe板上放了一个X.我已经按照我认为应该完成的方式设置了for循环,但是我省略了循环的结果并将其替换为注释。
#include <stdio.h>
int main()
{
int tLeft = 0;
int tMid = 1;
int tRight = 2;
int mLeft = 3;
int mMid = 4;
int mRight = 5;
int bLeft = 6;
int bMid = 7;
int bRight = 8;
int userChoice, compChoice, i;
int board[10] = {
tLeft, tMid, tRight,
mLeft, mMid, mRight,
bLeft, bMid, bRight
};
printf("[%d][%d][%d]\n", tLeft, tMid, tRight);
printf("[%d][%d][%d]\n", mLeft, mMid, mRight);
printf("[%d][%d][%d]\n", bLeft, bMid, bRight);
printf("Enter the number you would like to place an X at: ");
scanf("%d", userChoice);
for(i = 0; i < 9; i++)
{
if(board[i] == userChoice)
{
// MAKE BOARD[i] EQUAL TO X. THE PROBLEM WITH THIS IS THAT
// BOARD[i] IS TYPE INT AND 'X' WOULD BE TYPE CHAR AND I
// MIGHT SOUND LIKE A HUGE NOOB BUT I JUST STARTED CODING
// IN C HALF AN HOUR AGO.
}
}
return 0;
}
答案 0 :(得分:4)
你可以写:
php artisan
board[i] = 'X';
是一个字符常量,但由于奇怪的历史原因,C中的字符常量实际上具有类型'X'
。 (见Why are C character literals ints instead of chars?。)
此外,即使字符常量 具有int
类型,仍然没有问题。 C编译器可以隐含地&#34;促进&#34;一个char
到char
为你:
int
话虽如此,您可能需要重新审核一下char x = ...;
board[i] = x; // allowed!
是board
而不是int[]
的决定。 。 。毕竟,当你打印出你的电路板时,你需要有一些方法来打印X.因此,您最好使用char[]
而不是'1'
。
答案 1 :(得分:0)
您可以使用char数组
进行操作char board[10] = {
'1', '2', '3',
'4', '5', '6',
'7', '8', '9'
};
然后你做
scanf("%d", userChoice);
board[userChoice] = 'X';
所以你board
实际上存储了游戏状态。它可以像你一样打印,但使用%c
说明符。
注意:如果您想将数字字符转换为int
,请使用此技巧int digit = c - '0';
答案 2 :(得分:0)
OP已使用board[]
初始化0, 1, 2, 3, ...
,但没有用处。
最好用3个值之一写入board[]
:X,O或空。
在OP开始时,请使用:'X'
,'O'
,' '
char board[10] = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
简单的印刷电路板状态可以使用
printf("[%c][%c][%c]\n", board[tLeft], board[tMid], board[tRight]);
.. 2 more lines
阅读输入后,测试是否使用
for (;;) {
if (scanf("%d", userChoice) != 1) {
puts("Non-numeric input, quitting");
return -1;
}
if (userChoice < 1 || userChoice > 9) {
puts("Out of range input, Try again");
continue;
}
if (board[userChoice - 1] != ' ')) {
puts("Square all ready used, Try again");
continue;
}
}
board[userChoice - 1] != 'X';
写作2人TTT游戏后,OP约占20%。祝其他人好运。可以进行许多简化。