Извините, ребята, я просто задал вопрос пару часов назад, но это последнее, что мне нужно для завершения моего проекта. Моя программа позволяет перезаписать ходы. Например, если игрок 1 выбирает первый квадрат, он позволит игроку 2 также выбрать этот квадрат. Все остальное отлично функционирует, я просто не справлялся с этим.Остановить Tic Tac Toe от переписывания движется в C
Любые идеи? Я просто поместил одну часть своего кода, так как много моего кода печально скопировано и вставлено. Я действительно новичок, поэтому я еще не понял оптимизацию, и у меня уже нет времени для этого проекта, поэтому любая помощь будет оценена по достоинству.
Так что в этом коде я включил только печать оригинальной доски и первый ход первого игрока (если играю с двумя людьми). Этого должно быть достаточно, чтобы получить помощь, но если кто-то хочет увидеть остальную часть кода, пожалуйста, дайте мне знать, поскольку я упустил большинство из них. Спасибо !!!
#include <stdio.h>
#include <stdlib.h>
/* known bugs: Allows players to place a 1 or 2 on board even if there is already a 1 or 2 in that spot. */
int main()
{
char board[3][3];
int i,j,k,l, player, move;
for(i=0;i<=3;i++) // prints initial board of 0's
{
for(j=0;j<=3;j++)
{
board[i][j] = '0';
}
}
printf("Hello! Do you want to play alone or with a computer? \n\n"
"Enter 1 for alone or 2 to play with a friend!\n");
scanf("%d", &player);
if (player == 2)
{
for(k=0;k<9;k++) // 9 moves max.
{
printf("\n\n"); // print board again.
printf(" %c | %c | %c\n", board[0][0], board[0][1], board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n", board[1][0], board[1][1], board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n", board[2][0], board[2][1], board[2][2]);
do
{
printf("Player 1, where would you like to move? Enter 1-9\n");
scanf("%d", &move);
if (move == 1)
board[0][0] = '1';
if (move == 2)
board[0][1] = '1';
if (move == 3)
board[0][2] = '1';
if (move == 4)
board[1][0] = '1';
if (move == 5)
board[1][1] = '1';
if (move == 6)
board[1][2] = '1';
if (move == 7)
board[2][0] = '1';
if (move == 8)
board[2][1] = '1';
if (move == 9)
board[2][2] = '1';
}while(move>9 && move <1);
BTW 'i <= 3',' j <=3' --> 'i <3',' j <3' – BLUEPIXY
Спасибо! Я пропустил это, но он все еще работал lol –
'if (move == 1 && board [0] [0] == '0') board [0] [0] = '1';' – BLUEPIXY