棒球遊戲

      在〈棒球遊戲〉中尚無留言

apcs_10510_04_1

#include <iostream>
#include <string.h>
using namespace std;
int main(){
	int length[9]={5,5,4,4,4,4,4,4,4};
	string **s=new string*[9];
	s[0]=new string[5]{"1B", "1B", "FO", "GO", "1B"};
	s[1]=new string[5]{"1B", "2B", "FO", "FO", "SO"};
	s[2]=new string[4]{"SO", "HR", "SO", "1B"};
	s[3]=new string[4]{"FO", "FO", "FO", "HR"};
	s[4]=new string[5]{"1B", "1B", "1B", "1B"};
	s[5]=new string[6]{"GO", "GO", "3B", "GO"};
	s[6]=new string[4]{"1B", "GO", "GO", "SO"};
	s[7]=new string[4]{"SO", "GO", "2B", "2B"};
	s[8]=new string[4]{"3B", "GO", "GO", "FO"};
	int out=0;
	cout<<"請輸入出局數 : ";
	scanf("%d", &out);
	int total=0;
	for (int i=0;i<9;i++){
		total+=length[i];
	}
	//直線化	
	int *ball=new int[total]{0};
	for (int i=0;i<9;i++){
		for (int j=0;j<length[i];j++){
			if(s[i][j].compare("1B")==0)
				ball[j*9+i]=1;
			else if(s[i][j].compare("2B")==0)
				ball[j*9+i]=2;				
			else if(s[i][j].compare("3B")==0)
				ball[j*9+i]=3;		
			else if(s[i][j].compare("HR")==0)
				ball[j*9+i]=4;		
			else
				ball[j*9+i]=5;
		}
	}
	//切段
	int r=0, c=0;
	int outCount=0;
	int game[10][10]={0};
	for (int i=0;i<total;i++){
		game[r][c++]=ball[i];
		if(ball[i]==5)outCount++;
		if(outCount==3){
			r++;
			c=0;
			outCount=0;
		}
		
	}
	
	//每列往後加, 超過4, 分數就加1
	outCount=0;
	int score=0;
	bool stop=false;
	for (int i=0;i<10;i++){
		for (int j=0;game[i][j]!=0;j++){
			if(game[i][j]!=5){
			 	int tmp=game[i][j];
				for (int k=j+1;k<10;k++){ if(game[i][k]!=5){ tmp+=game[i][k]; if(tmp>=4){
							score++;
							break;
						}
					}
				}
			}
			else{
				outCount++;
				if(outCount==out){
					stop=true;
					break;
				}
			}
		}
		if(stop)break;
	}
	printf("score : %d\n\n", score);
	
	printf("for checking\n");
	for (int i=0;i<10;i++){
		for (int j=0;j<10;j++){
			printf("%d ", game[i][j]);
		}
		printf("\n");
	}
}

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *