[題解] 棒球遊戲

Posted on Thu, Oct 14, 2021 進階程設課程 C++ 題解
2021-10-21更新
#include <bits/stdc++.h>

using namespace std;
int base[4]={};

int basemove(int a){
    int score=0;
    for(int i=3;i>=0;i--){
        if(base[i]&&i+a>=4){
            score++;
            base[i]=0;
        }else if(base[i]){
            base[i+a]=1;
            base[i]=0;
        }
    }
    return score;
}
void reset(){
    for(int i=0;i<4;i++) base[i]=0;
}

int main()
{
    string record[9][5],state;
    int temp,now_play,score=0,total_out;
    for(int i=0;i<9;i++){
        cin>>temp;
        for(int j=0;j<temp;j++){
            cin>>record[i][j];
        }
    }
    cin>>total_out;
    int out=0;
    for(int i=0;i<5;i++){
        for(int j=0;j<9;j++){
        state=record[j][i];
        cout<<state<<", ";
        if(state[1]=='B'){
            int num=state[0]-48;
            basemove(num);
        }
        if(state=="HR") basemove(4);
        if(state[1]=='O') out++;
        if(out==3){
            reset();
            out=0;
        }

        }
    }
    cout<<score<<endl;


    return 0;
}

未完成