现有两人玩猜拳游戏,每人可用拳头表示3种物体(石头、剪刀、布)中的一种,两人同时出拳,游戏胜负规则如下 比赛连续进行3次,赢2次及以上者获胜,如何改写程序
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand((unsigned)time(NULL)); // 用于生成随机数
int player1Score = 0; // 玩家1得分
int player2Score = 0; // 玩家2得分
// 进行三局游戏
for (int round = 1; round <= 3; round++) {
int player1Choice, player2Choice;
// 玩家1输入选择
cout << "第 " << round << " 局,玩家1请输入你的选择(1=石头,2=剪刀,3=布):";
cin >> player1Choice;
// 玩家2输入选择
cout << "玩家2请输入你的选择(1=石头,2=剪刀,3=布):";
cin >> player2Choice;
// 输出选择
cout << "玩家1出了:";
switch (player1Choice) {
case 1: cout << "石头" << endl; break;
case 2: cout << "剪刀" << endl; break;
case 3: cout << "布" << endl; break;
default: cout << "无效的选择" << endl; continue;
}
cout << "玩家2出了:";
switch (player2Choice) {
case 1: cout << "石头" << endl; break;
case 2: cout << "剪刀" << endl; break;
case 3: cout << "布" << endl; break;
default: cout << "无效的选择" << endl; continue;
}
// 判断胜负
if (player1Choice == player2Choice) {
cout << "本局平局" << endl;
} else if (player1Choice == 1 && player2Choice == 2 ||
player1Choice == 2 && player2Choice == 3 ||
player1Choice == 3 && player2Choice == 1) {
cout << "玩家1赢了本局" << endl;
player1Score++;
} else {
cout << "玩家2赢了本局" << endl;
player2Score++;
}
}
// 输出最终结果
if (player1Score > player2Score) {
cout << "玩家1赢了比赛" << endl;
} else if (player1Score < player2Score) {
cout << "玩家2赢了比赛" << endl;
} else {
cout << "比赛结束,平局" << endl;
}
return 0;
}
封装一下,变成函数,return胜利者
然后写个for循环执行3次,再套while循环,必须比到分出胜负
搞两个变量记录胜利次数
你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。
class Solution {
public:
TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
if(t1==NULL){
return t2;
}
if(t2==NULL){
return t1;
}
t1->val=t1->val+t2->val;
t1->left=mergeTrees(t1->left, t2->left);
t1->right=mergeTrees(t1->right, t2->right);
return t1;
}
};