问题标题: 酷町堂:这是我自己编的程序,不太难,就是比较多,谁第一个想到可以改进的地方,奖金就是谁的。

0
0
已解决
黄秋实
黄秋实
初级守护
初级守护

#include <bits/stdc++.h>
using namespace std;
long long a=24,b=24,ca,cb,pa,pb,c;
char A[8];
int main(){
    cout<<"*************** 游戏说明 ***************"<<'\n';
    cout<<"*每一局AB两个玩家分别输入七个字符,程序*"<<'\n';
    cout<<"*会判断AB的输赢,赢的玩家可能踢对方一拳*"<<'\n';
    cout<<"*踢对方一脚,打对方一巴掌或使用希特勒攻*"<<'\n';
    cout<<"*击,但也可能攻击力度过猛,自己减少一滴*"<<'\n';
    cout<<"*血。注意:每人只有24滴血!!!        *"<<'\n';
    cout<<"****************************************"<<'\n'; 
    while(a!=0&&b!=0){
        c++;
        cout<<'\n'<<'\n'<<'\n'<<'\n'<<"-------------- 这是第"<<c<<"局 ---------------"<<'\n'; 
        cout<<"请A玩家输入7个字母,并换行。"<<'\n';
        cin>>A[1]>>A[2]>>A[3]>>A[4]>>A[5]>>A[6]>>A[7];
        ca=((A[2]*A[7]+A[5]*A[6])+A[1]-A[2])*A[3]*A[5]-A[4]+A[7];
        cout<<"请B玩家输入7个字母,并换行。"<<'\n';
        cin>>A[1]>>A[2]>>A[3]>>A[4]>>A[5]>>A[6]>>A[7];
        cb=((A[5]*A[7]+A[2]*A[1])+A[6]-A[2])*A[3]*A[7]-A[4]+A[6];
        pa=ca%3;
        pb=cb%3;
        if(pa==1&&pb==2){
            a++;
            b-=3;
            if(a>24)a=24;
            if(b<0)b=0;
            cout<<"A赢了,锤了B一拳,B减少了3滴血。"<<'\n';
            cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
        }
        if(pa==2&&pb==0){
            a++;
            b-=4;
            if(a>24)a=24;
            if(b<0)b=0;
            cout<<"A赢了,打了B一巴掌,B减少了4滴血。"<<'\n';
            cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
        }
        if(pa==0&&pb==1){
            a++;
            b-=6;
            if(a>24)a=24;
            if(b<0)b=0;
            cout<<"A赢了,踢了B一脚,B减少了6滴血。"<<'\n';
            cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
        }
        if(pb==1&&pa==2){
            b++;
            a-=3;
            if(b>24)b=24;
            if(a<0)a=0;
            cout<<"B赢了,锤了A一拳,A减少了3滴血。"<<'\n';
            cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
        }
        if(pb==2&&pa==0){
            b++;
            a-=4;
            if(b>24)b=24;
            if(a<0)a=0;
            cout<<"B赢了,打了A一巴掌,A减少了4滴血。"<<'\n';
            cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
        }
        if(pb==0&&pa==1){
            b++;
            a-=6;
            if(b>24)b=24;
            if(a<0)a=0;
            cout<<"B赢了,踢了A一脚,A减少了6滴血。"<<'\n';
            cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
        }
        if(pb==pa){
            if(ca%(a*b)<=2&&cb%(a*b)>2){
                a=24;
                b=b/4;
                cout<<"A赢了,使用了希特勒攻击,A血量爆满,B的血量减少到原来的1/4。"<<'\n';
                cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
            }
            else{
                if(cb%(a*b)<=2&&ca%(a*b)>2){
                b=24;
                a=a/4;
                cout<<"B赢了,使用了希特勒攻击,B血量爆满,A的血量减少到原来的1/4。"<<'\n';
                cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
            }
                else{
                    if(ca<cb){
                        a--;
                        cout<<"A赢了,但攻击力度过猛,自己减少一滴血。"<<'\n';
                        cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
            }
                    if(ca>cb){
                        b--;
                        cout<<"B赢了,但攻击力度过猛,自己减少一滴血。"<<'\n';
                        cout<<"目前A还剩"<<a<<"滴血,B还剩"<<b<<"滴血。"<<'\n';
                    }
                }
            }
        }
    }
    if(a==0){
        cout<<"这局B赢了,B有"<<b<<"滴血。"<<'\n';
        cout<<"但A也不要灰心,下次加油!";
    }
    else{
        cout<<"这局A赢了,A有"<<a<<"滴血。"<<'\n';
        cout<<"但B也不要灰心,下次加油!";
    }
    cout<<"*************** 感谢使用 ***************"<<'\n';
    cout<<"*感谢您的使用,但我技术有限,如果有不好*"<<'\n';
    cout<<"*玩的地方,或者好的建议,可以来找我,欢*"<<'\n';
    cout<<"*迎来找我。                            *"<<'\n';
    cout<<"*                  ——大黄狗(黄秋实)*"<<'\n';
    cout<<"****************************************"<<'\n';
}


0
已采纳
张新杨
张新杨
高级守护
高级守护

我觉得在最后要换行,否则运行结果是这样:

目前A还剩0滴血,B还剩5滴血。
这局B赢了,B有5滴血。
但A也不要灰心,下次加油!*************** 感谢使用 ***************
*感谢您的使用,但我技术有限,如果有不好*
*玩的地方,或者好的建议,可以来找我,欢*
*迎来找我。                            *
*                  ——大黄狗(黄秋实)*
****************************************

张新杨在2021-06-12 17:38:06追加了内容

@黄秋实 

我要回答