所以我试图制作一个井字游戏,但我遇到了错误:
Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol "void __cdecl check(char * const,bool)" (?check@@YAXQAD_N@Z) referenced in function _main tictac
Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol "void __cdecl WriteTable(char * const)" (?WriteTable@@YAXQAD@Z) referenced in function _main tictac
Severity Code Description Project File Line Suppression State Error LNK1120 2 unresolved externals tictac I hope anyone of you can help me. code:
#include <iostream>
using namespace std;
void check(char t[], bool end);
void WriteTable(char t[]);
void playerX(char t[]);
void playerO(char t[]);
int main() {
bool turn = true;
char t[9] = "";
bool end = false;
do {
WriteTable(t);
if (turn == true) {
playerX(t);
turn = false;
}
else {
playerO(t);
turn = true;
}
check(t, end);
} while (end == false);
system("pause");
return 0;
}
void izpis(char t[]) {
for (int i = 0; i < 9; i++) {
cout << t[i] << " ";
if ((i + 1) % 3 == 0) {
cout << endl;
}
}
}
void playerX(char t[]) {
int a;
cout << "playerX: ";
do {
cin >> a;
if (t[a - 1] == 0) {
t[a - 1] = 'X';
}
} while (t[a - 1] != 'X');
}
void playerO(char t[]) {
int a;
cout << "playerO: ";
do {
cin >> a;
if (t[a - 1] == 0) {
t[a - 1] = 'O';
}
} while (t[a - 1] != 'O');
}
void check(int t[], bool end) {
bool equal = false;
if (t[0] == 'X' || t[1] == 'X' || t[2] == 'X') {
cout << "X won" << endl;
end = true;
}
else if (t[3] == 'X' || t[4] == 'X' || t[5] == 'X') {
cout << "X won" << endl;
end = true;
}
else if (t[6] == 'X' || t[7] == 'X' || t[8] == 'X') {
cout << "X won" << endl;
end = true;
}
else if (t[0] == 'X' || t[3] == 'X' || t[6] == 'X') {
cout << "X won" << endl;
end = true;
}
else if (t[1] == 'X' || t[4] == 'X' || t[7] == 'X') {
cout << "X won" << endl;
end = true;
}
else if (t[2] == 'X' || t[5] == 'X' || t[8] == 'X') {
cout << "X won" << endl;
end = true;
}
else if (t[0] == 'X' || t[3] == 'X' || t[8] == 'X') {
cout << "X won" << endl;
end = true;
}
else if (t[6] == 'X' || t[4] == 'X' || t[2] == 'X') {
cout << "X won" << endl;
end = true;
}
if (t[0] == 'O' || t[1] == 'O' || t[2] == 'O') {
cout << "O won" << endl;
end = true;
}
else if (t[3] == 'O' || t[4] == 'O' || t[5] == 'O') {
cout << "O won" << endl;
end = true;
}
else if (t[6] == 'O' || t[7] == 'O' || t[8] == 'O') {
cout << "O won" << endl;
end = true;
}
else if (t[0] == 'O' || t[3] == 'O' || t[6] == 'O') {
cout << "O won" << endl;
end = true;
}
else if (t[1] == 'O' || t[4] == 'O' || t[7] == 'O') {
cout << "O won" << endl;
end = true;
}
else if (t[2] == 'O' || t[5] == 'O' || t[8] == 'O') {
cout << "O won" << endl;
end = true;
}
else if (t[0] == 'O' || t[3] == 'O' || t[8] == 'O') {
cout << "O won" << endl;
end = true;
}
else if (t[6] == 'O' || t[4] == 'O' || t[2] == 'O') {
cout << "O won" << endl;
end = true;
}
for (int i = 0; i < 9; i++) {
if (t[i] != 'X' && t[i] != 'O') {
break;
}
}
if (equal == false) {
cout << "draw";
end = true;
}
}
最佳答案
这里有几个问题:
void WriteTable(char t[]);
此函数已声明但从未定义。您打算如何使用它?
void check(char t[], bool end);
和:
void check(int t[], bool end) {
这些签名与您匹配吗?现在问题应该很明显了。
关于c++:井字游戏中的LNK2019和1120错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49329654/