1018 锤子剪刀布

本文介绍了一个使用C++实现的游戏胜负统计系统,通过分析玩家选择的“剪刀”、“石头”、“布”的策略,统计每种选择的胜率,并找出最优策略。系统通过读取比赛次数和玩家的选择,更新并显示胜、平、负的统计结果,最后输出双方的最佳策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <algorithm>


using namespace std;
int n,a1,b1,c1,a2,c2,b2;
int d1[4],d2[4];
int pd(char a,char b){
   // cout << d2[2]<<endl;
    if(a==b) return 0;

    else if(a == 'J' && b == 'B') {d1[2]++;return 1;}
    else if(a == 'C' && b == 'J') {d1[1]++;return 1;}
    else if(a == 'B' && b == 'C') {d1[0]++;return  1;}
    else if(a == 'C' && b == 'B') {d2[0]++;return -1;}
    else if(a == 'J' && b == 'C') {d2[1]++;return -1;}
    else if(a == 'B' && b == 'J') {d2[2]++;return -1;}

}
int main(){
    cin >> n;
    char a,b;

    while (n -- ){
        cin >> a >> b;
        int ok =pd(a,b);
        if(ok==1) a1++,c2++;
        else if(ok == -1) a2++,c1++;
        else b1++,b2++;
    }
    cout << a1 << " " << b1 << " " << c1 << endl << a2 << " " << b2 << " " << c2 <<endl;
    int xb=0,maxm=-1000;
    for(int i = 0; i < 3 ;i ++)
    {
        if(maxm<d1[i]) maxm=d1[i],xb=i;
    }
    if(xb == 0) cout<<"B ";
    else if(xb == 1) cout << "C ";
    else if(xb == 2) cout<< "J ";
  int  maxn=-1000;
  //cout << d2[0]<<" "<<d2[1]<< " "<< d2 [2];
    for(int j = 0; j < 3 ;j ++)
    {//cout << d2[j]<<" ";
        if(maxn<d2[j]) maxn=d2[j],xb=j;
    }
    if(xb == 0) cout<<"B";
    else if(xb == 1) cout << "C";
    else if(xb == 2) cout<< "J";

    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值