剪刀石头布游戏
題目描述
Bart的妹妹Lisa在一個二維矩陣上創造了新的文明。矩陣上每個位置被三種生命形式之一占據:石頭,剪刀,布。每天,上下左右相鄰的不同生命形式將會發生戰斗。在戰斗中,石頭永遠勝剪刀,剪刀永遠勝布,布永遠勝石頭。每一天結束之后,敗者的領地將被勝者占領。你的工作是計算出n天之后矩陣的占據情況。
輸入
第一行包含三個正整數r,c,n,分別表示矩陣的行數、列數以及天數。每個整數均不超過100。接下來r行,每行c個字符,描述矩陣初始時被占據的情況。每個位置上的字符只能是R,S,P三者之一,分別代表石頭,剪刀,布。相鄰字符之間無空格。
輸出
輸出n天之后的矩陣占據情況。每個位置上的字符只能是R,S,P三者之一,相鄰字符之間無空格。樣例輸入
3 3 1 RRR RSR RRR樣例輸出
RRR RRR RRR #include <iostream> using namespace std; int main() {int r,c,n;char a[101][101],b[101][101];cin>>r>>c>>n;for(int i=1;i<=r;i++)for(int j=1;j<=c;j++)cin>>a[i][j];for(int d=1;d<=n;d++){for(int i=1;i<=r;i++)for(int j=1;j<=c;j++)b[i][j]=a[i][j];for(int i=1;i<=r;i++)for(int j=1;j<=c;j++){if(b[i][j]=='R'&&(b[i-1][j]=='P'||b[i+1][j]=='P'||b[i][j-1]=='P'||b[i][j+1]=='P'))a[i][j]='P';else if(b[i][j]=='S'&&(b[i-1][j]=='R'||b[i+1][j]=='R'||b[i][j-1]=='R'||b[i][j+1]=='R'))a[i][j]='R';else if(b[i][j]=='P'&&(b[i-1][j]=='S'||b[i+1][j]=='S'||b[i][j-1]=='S'||b[i][j+1]=='S'))a[i][j]='S';}}for(int i=1;i<=r;i++){for(int j=1;j<=c;j++)cout<<a[i][j];cout<<endl;}return 0; }
?
轉載于:https://www.cnblogs.com/fangzheng-nie/p/9945951.html
總結
- 上一篇: 组合模式(Composite)
- 下一篇: BZOJ1415[Noi2005]聪聪和