EDIT: Решил теперь поблагодарить triple_r и AJNeufield за вашу помощь по этой проблеме, которую я имел.Невозможно разобраться, как петли playerturns и движется Tic Tac Toe (C++)
Я просмотрел несколько веб-сайтов и YouTube об этом, и я не могу найти что-либо в том, что я специально ищу для этого, так как мой формат для программы - это хороший бит, отличный от других. Поэтому трудно расшифровать, где мне нужно, чтобы вещи, которые мне нужны, я знаю.
Обратите внимание, что я относительно не знаком с C++, поэтому я был бы признателен за все отзывы или критику, которые вы могли бы мне предоставить.
Кроме того, обратите внимание, что мой код компилируется и запускается, но это не позволяет мне вводить более одного ввода и, скорее всего, не позволяет переключать повороты проигрывателя.
Quick Edit: переключил код с новой настройкой, предложенной triple_r, но я, казалось, перепутал его где-то вдоль линии, и он компилируется (за исключением использования x и y и другой ошибки), но он всегда начинается с первого игрока 2, и как только он получает вход, он автоматически заканчивается ошибкой сегментации.
#include <iostream>
#include <cstdlib>
using namespace std;
//////////////////////////////////////////////////////////
void initboard(char board[3][3])
{
int x,y;
for (x=0;x<3;x++)
for (y=0;y<3;y++)
board[x][y]=' ';
return;
}
//////////////////////////////////////////////////////////
void printboard(char board[3][3])
{
int x,y;
for (x=0;x<3;x++)
{
cout<<"\n";
for (y=0;y<3;y++)
{
cout<<" "<<board[x][y]<<" ";
if (y<2) cout<<"|";
}
if (x<2) cout<<"\n===========";
}
return;
}
//////////////////////////////////////////////////////////
void getmove(char board[3][3], int player)
{
return;
}
//////////////////////////////////////////////////////////
int main()
{
bool done=false;
char board[3][3];
int x,y,player=1,turn,playerchoice,playermark;
initboard(board);
turn=0;
do
{
if (player==1)
playermark='X';
else
playermark='O';
if (turn%2)
player=1;
else
player=2;
cout<<"Player "<<player<<" where do you want to move?: ";
cin>>playerchoice;
if (playerchoice==1)
{
board[0][0]=playermark;
}
else if (playerchoice==2)
{
board[0][1]=playermark;
}
else if (playerchoice==3)
{
board[0][2]=playermark;
}
else if (playerchoice==4)
{
board[1][0]=playermark;
}
else if (playerchoice==5)
{
board[1][1]=playermark;
}
else if (playerchoice==6)
{
board[1][2]=playermark;
}
else if (playerchoice==7)
{
board[2][0]=playermark;
}
else if (playerchoice==8)
{
board[2][1]=playermark;
}
else if (playerchoice==9)
{
board[2][2]=playermark;
}
else
{
cout<<"Invalid move ";
}
if (board[x][y]!=' ')
cout<<"Move is already taken.";
board[x][y]=playermark;
if(board[x][y]==' ')
turn++;
}while (!done);
void printboard(char board[3][3]);
return 0;
}
Спасибо за помощь, я попробую это triple_r. – Sollux
Хорошо, я сделал то, что вы предложили triple_r, но теперь он автоматически устанавливает плеер на плеер 2 и дает мне ошибки сегментации, когда я иду на вход. Это после того, как я изменил его с того, что было, когда я изменил его на то, что вы предложили изначально с помощью оператора switch, который дал мне постоянное указание, что перемещение недействительно вместо ввода перемещения и вывода платы с перемещением по ней. Должен ли я переписать свой код для вас? Прошу прощения за неудобства. – Sollux
Было бы намного проще, если бы вы перекомпилировали свой код :-) Вероятно, вы должны отредактировать свой вопрос, чтобы добавить новый код, и таким образом больше людей смогут увидеть обновленный код и помочь вам найти, в чем проблема. –