这是一个需要一些思考的游戏,看起来很像四个猜数字,但实际上和猜数字完全不同。
具体规则如下:输入四个数,如果哪一个数与随机生成的数相同,则在这个数的下方输出“O”,若与随机生成的数不同,则在这个数的下方输出“X”,如四个数的下方都为“O”,那么就表示四个数都与随机生成的数相同。
好了,话不多说,直接上代码:
目录
头文件与变量定义部分
#include<bits/stdc++.h>
using namespace std;
int main() {
int n1, n2, n3, n4;
int m1, m2, m3, m4;
char sf;
char sfk;
int min = 100;
int c = 0;
界面与随机数生成部分
cout << "1 2 3" << endl
<< "4 5 6" << endl
<< "7 8 9" << endl
<< "# 0 #" << endl;
srand(time(NULL));
m1 = rand() % 10;
srand(time(NULL));
m2 = rand() % 100;
srand(time(NULL));
m3 = rand() % 1000;
srand(time(NULL));
m4 = rand() % 10000;
m4 = m4 / 1000 % 10;
m3 = m3 / 100 % 10;
m2 = m2 / 10 % 10;
m1 = m1 / 1 % 10;
cout << "游戏规则:输入四个数," <<
"如果哪一个数与随机生成的数相同," <<
"则在这个数的下方输出“O”," <<
"若与随机生成的数不同,则在这个数的下方输出“X”," <<
"如四个数的下方都为“O”," <<
"那么就表示四个数都与随机生成的数相同。 " <<
" 是否开始游戏?(Y/N)";
cin >> sfk;
system("cls");
cout << "1 2 3" << endl
<< "4 5 6" << endl
<< "7 8 9" << endl
<< "# 0 #" << endl;
判断部分
if (sfk == 'Y' || sfk == 'y') {
for (int i = 0; i < 100; i++) {
cin >> n1 >> n2 >> n3 >> n4;
c++;
if (n1 == m1) {
cout << "O ";
} else if (n1 != m1) {
cout << "X ";
}
if (n2 == m2) {
cout << "O ";
} else if (n2 != m2) {
cout << "X ";
}
if (n3 == m3) {
cout << "O ";
} else if (n3 != m3) {
cout << "X ";
}
if (n4 == m4) {
cout << "O ";
} else if (n4 != m4) {
cout << "X ";
}
重置部分
if (n1 == m1 && n2 == m2 && n3 == m3 && n4 == m4) {
if (c < min) {
min = c;
c = 0;
}
cout << endl << "最少次数:" << min;
cout << endl << "是否继续?(Y/N)";
cin >> sf;
if (sf == 'Y' || sf == 'y') {
i = 0;
c = 0;
system("cls");
cout << "1 2 3" << endl
<< "4 5 6" << endl
<< "7 8 9" << endl
<< "# 0 #" << endl;
srand(time(NULL));
m1 = rand() % 10;
srand(time(NULL));
m2 = rand() % 100;
srand(time(NULL));
m3 = rand() % 1000;
srand(time(NULL));
m4 = rand() % 10000;
m4 = m4 / 1000 % 10;
m3 = m3 / 100 % 10;
m2 = m2 / 10 % 10;
m1 = m1 / 1 % 10;
continue;
} else {
return 0;
}
}
cout << endl;
}
} else {
return 0;
}
return 0;
}
总代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n1, n2, n3, n4;
int m1, m2, m3, m4;
char sf;
char sfk;
int min = 100;
int c = 0;
cout << "1 2 3" << endl
<< "4 5 6" << endl
<< "7 8 9" << endl
<< "# 0 #" << endl;
srand(time(NULL));
m1 = rand() % 10;
srand(time(NULL));
m2 = rand() % 100;
srand(time(NULL));
m3 = rand() % 1000;
srand(time(NULL));
m4 = rand() % 10000;
m4 = m4 / 1000 % 10;
m3 = m3 / 100 % 10;
m2 = m2 / 10 % 10;
m1 = m1 / 1 % 10;
cout << "游戏规则:输入四个数," <<
"如果哪一个数与随机生成的数相同," <<
"则在这个数的下方输出“O”," <<
"若与随机生成的数不同,则在这个数的下方输出“X”," <<
"如四个数的下方都为“O”," <<
"那么就表示四个数都与随机生成的数相同。 " <<
" 是否开始游戏?(Y/N)";
cin >> sfk;
system("cls");
cout << "1 2 3" << endl
<< "4 5 6" << endl
<< "7 8 9" << endl
<< "# 0 #" << endl;
if (sfk == 'Y' || sfk == 'y') {
for (int i = 0; i < 100; i++) {
cin >> n1 >> n2 >> n3 >> n4;
c++;
if (n1 == m1) {
cout << "O ";
} else if (n1 != m1) {
cout << "X ";
}
if (n2 == m2) {
cout << "O ";
} else if (n2 != m2) {
cout << "X ";
}
if (n3 == m3) {
cout << "O ";
} else if (n3 != m3) {
cout << "X ";
}
if (n4 == m4) {
cout << "O ";
} else if (n4 != m4) {
cout << "X ";
}
if (n1 == m1 && n2 == m2 && n3 == m3 && n4 == m4) {
if (c < min) {
min = c;
c = 0;
}
cout << endl << "最少次数:" << min;
cout << endl << "是否继续?(Y/N)";
cin >> sf;
if (sf == 'Y' || sf == 'y') {
i = 0;
c = 0;
system("cls");
cout << "1 2 3" << endl
<< "4 5 6" << endl
<< "7 8 9" << endl
<< "# 0 #" << endl;
srand(time(NULL));
m1 = rand() % 10;
srand(time(NULL));
m2 = rand() % 100;
srand(time(NULL));
m3 = rand() % 1000;
srand(time(NULL));
m4 = rand() % 10000;
m4 = m4 / 1000 % 10;
m3 = m3 / 100 % 10;
m2 = m2 / 10 % 10;
m1 = m1 / 1 % 10;
continue;
} else {
return 0;
}
}
cout << endl;
}
} else {
return 0;
}
return 0;
}