c++小游戏

        这是一个需要一些思考的游戏,看起来很像四个猜数字,但实际上和猜数字完全不同。

具体规则如下:输入四个数,如果哪一个数与随机生成的数相同,则在这个数的下方输出“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;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值