运作原理
程序里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; }(代码可能不大好看)