答案 0 :(得分:1)
三个符号A,O和X是否应该以相等的分布出现,例如每个三个?在那种情况下:
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
char game[3][3] = {{'A','A','A'}, {'O','O','O'}, {'X','X','X'}};
srand(time(0));
std::random_shuffle(game[0], game[3]);
for (int y = 0; y < 3; ++y)
std::cout << " " << game[y][0] << " | " << game[y][1] << " | " << game[y][2] << "\n";
}
答案 1 :(得分:0)
我使用的是二维数组,但我不知道如何随机化数组?
Google for rand和c ++。 rand()
是一个为您提供伪随机数的函数。
我不知道如何比较数组中的符号?
符号?你的意思是char
对吗?如果您输入'X'
这是一个值,准确地说是88。寻找ASCII表。
int c = 'X'; // makes c hold 88
int a = c;
cout << a; //prints 88
如果您想比较两个值,只需使用==, <, >, <=, =>
或您需要的任何值。 char就像int:
char c = 'X';
char d = 'O';
if (c > d)
我不知道如何用行和钱解决这个问题?有人可以帮我处理代码吗?
你真的应该做自己的功课。这就是它的重点。您可以先尝试解决更简单的问题,这样您就会感觉它是如何工作的。例如,编写代码以查看是否有一行?如果有一个系列?如果您需要有关特定问题的帮助,请随时提出! (确保发布几乎正常工作的代码)
祝你好运!答案 2 :(得分:-1)
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main(){
char symbs[] = {'0','X','A'}; // array to convert int to symbol
char game[3][3]; // make game array
//randomise game array
for (int i = 0; i != 3 ; i++) {
for (int j = 0; j != 3 ; j++) {
int rndnum = round((double)rand() / (double) RAND_MAX * 3);
game[i][j] = symbs[rndnum];
}
}
//count for number of lines equal;
int lineseq = 0;
if ((game[0][0]) == game[0][1]) && (game[0][0]) == game[0][2]) ) {
lineseq += 1;
}
/*
.., repeat for other combinations
*/
return 0;
}