运作原理
程序里1代表石头;2代表布;3代表剪刀,然后让计算机随机从1~3抽一个数,再来判断。
界面
std::cout << " === 石头剪刀布 === \n";
std::cout << "=== Rock Paper Scissors === \n";
std::cout << " 1.石头 \n";
std::cout << " 2.布 \n";
std::cout << " 3.剪刀 \n"
随机数
用srand(time(0));来进行随机数
int getRand(int min, int max);
int main() {
srand(time(0));
for (int i=0; i<1; i++) {
int r = getRand(1,3);
std::cout << r << std::endl;
}
return 0;
}
int getRand(int min, int max) {
return ( rand() % (max - min + 1) ) + min ;
}
for (int i = 0; i < 1; i++) {
是输出一个数
int r = getRand(1, 3); 范围1~3
用户输入和判断
int a;
std::cin >> a;
if (r == 1 && a == 1) {
std::cout << "机器人出了石头 \n";
std::cout << "平局 \n";
}
if (r == 1 && a == 2) {
std::cout << "机器人出了石头 \n";
std::cout << "你赢了 \n";
}
if (r == 1 && a == 3) {
std::cout << "机器人出了石头 \n";
std::cout << "你输了 \n";
}
if (r == 2 && a == 1) {
std::cout << "机器人出了布 \n";
std::cout << "你输了 \n";
}
if (r == 2 && a == 2) {
std::cout << "机器人出了布 \n";
std::cout << "平局 \n";
}
if (r == 2 && a == 3) {
std::cout << "机器人出了布 \n";
std::cout << "你赢了 \n";
}
if (r == 3 && a == 1) {
std::cout << "机器人出了剪刀 \n";
std::cout << "你赢了 \n";
}
if (r == 3 && a == 2) {
std::cout << "机器人出了剪刀 \n";
std::cout << "你输了 \n";
}
if (r == 3 && a == 3) {
std::cout << "机器人出了剪刀 \n";
std::cout << "平局 \n";
}
这里用了9个判断(以后可以稍微优化一下)
完整代码
#include <iostream>
#include <ctime>
#include <cstdlib>
//1=石头;2=布;3=剪刀
int getRand(int min, int max);
int main() {
srand(time(0));
for (int i = 0; i < 1; i++) {
int r = getRand(1, 3);
//r=随机
std::cout << " === 石头剪刀布 === \n";
std::cout << "=== Rock Paper Scissors === \n";
std::cout << " 1.石头 \n";
std::cout << " 2.布 \n";
std::cout << " 3.剪刀 \n";
int a;
std::cin >> a;
if (r == 1 && a == 1) {
std::cout << "机器人出了石头 \n";
std::cout << "平局 \n";
}
if (r == 1 && a == 2) {
std::cout << "机器人出了石头 \n";
std::cout << "你赢了 \n";
}
if (r == 1 && a == 3) {
std::cout << "机器人出了石头 \n";
std::cout << "你输了 \n";
}
if (r == 2 && a == 1) {
std::cout << "机器人出了布 \n";
std::cout << "你输了 \n";
}
if (r == 2 && a == 2) {
std::cout << "机器人出了布 \n";
std::cout << "平局 \n";
}
if (r == 2 && a == 3) {
std::cout << "机器人出了布 \n";
std::cout << "你赢了 \n";
}
if (r == 3 && a == 1) {
std::cout << "机器人出了剪刀 \n";
std::cout << "你赢了 \n";
}
if (r == 3 && a == 2) {
std::cout << "机器人出了剪刀 \n";
std::cout << "你输了 \n";
}
if (r == 3 && a == 3) {
std::cout << "机器人出了剪刀 \n";
std::cout << "平局 \n";
}
char playAgain;
std::cout << "是否再玩一局?(输入y继续,其他键退出) \n";
std::cin >> playAgain;
if (playAgain == 'y' || playAgain == 'Y') {
i--;
}
else {
break;
}
}
return 0;
}
int getRand(int min, int max) {
return (rand() % (max - min + 1)) + min;
}
(代码可能不大好看)