本題要求實現乙個簡易連連看遊戲模擬程式。
給定乙個2的方陣網格遊戲盤面,每個格仔中放置一些符號。這些符號一定是成對出現的,同乙個符號可能不止一對。程式讀入玩家給出的一對位置(x1,y1)、(x2,y2),判斷這兩個位置上的符號是否匹配。如果匹配成功,則將兩個符號消為「*」並輸出消去後的盤面;否則輸出「uh-oh」。若匹配錯誤達到3次,則輸出「game over」並結束遊戲。或者當全部符號匹配成功,則輸出「congratulations!」,然後結束遊戲。
輸入在一行中給乙個正整數n(<5)。隨後2n行,每行2n個大寫英文本母(其間以1個空格分隔),表示遊戲盤面。盤面之後給出乙個正整數k,隨後k行,每行按照格式「x1 y1 x2 y2」給出乙個玩家的輸入。注意格仔的行、列編號是從1到2n。
根據玩家的每一步輸入,輸出相應的結果。輸出盤面時注意,每行字元間以1個空格分隔,行末不得有多餘空格。
2
i t i t
y t i a
t a t y
i k k t
111 1 1 3
4 2 4 3
3 1 4 2
2 2 1 2
3 1 2 4
4 4 3 1
2 1 3 4
3 3 1 4
4 1 2 3
2 4 3 2
1 1 2 2
* t * t
y t i a
t a t y
i k k t
* t * t
y t i a
t a t y
i * * t
uh-oh
* * * t
y * i a
t a t y
i * * t
uh-oh
* * * t
y * i a
* a t y
i * * *
* * * t
* * i a
* a t *
i * * *
* * * *
* * i a
* a * *
i * * *
* * * *
* * * a
* a * *
* * * *
congratulations!
哇,這個題是要多坑就有多坑!@1: 當達到3次 「uh-oh」 時,是列印出第3次uh-oh 之後再列印 "game over" ,也就是要列印3次uh-oh,第三次uh-oh後面要連線乙個「game over」。
題目又不說清楚。
@2:當你輸入兩個座標把它們變成 * 之後,如果下一次又輸入同樣這兩個座標,那麼應該輸出uh-oh 而不是再輸一遍 * 。所以說這裡坑。
@3 我再多給一組測試資料就好理解了。
輸入樣例2:
2i t i t
y t i a
t a t y
i k k t
51 1 4 4
1 1 2 3
1 1 2 3
2 2 4 1
2 2 3 3
輸出樣例2:
uh-oh
* t i t
y t * a
t a t y
i k k t
uh-oh
uh-oh
game over
#include#include#includeusing namespace std;
char map[100][100],temp[100][100];
int main() }
cin>>t;
int sum=0,flag=1,first=0;
while (t--)}}
if (flag==1)
for (i=0;i<2*n;i++)
printf("\n");
} } else
} }return 0;
}
簡易連連看
本題要求實現乙個簡易連連看遊戲模擬程式。給定乙個2n 2n的方陣網格遊戲盤面,每個格仔中放置一些符號。這些符號一定是成對出現的,同乙個符號可能不止一對。程式讀入玩家給出的一對位置 x 1 y 1 x 2 y 2 判斷這兩個位置上的符號是否匹配。如果匹配成功,則將兩個符號消為 並輸出消去後的盤面 否則...
簡易連連看
problem sets 1329402848755699712 problems 1329407074437287937 注釋掉的 是用於除錯 map的邊界是試出來的,雖然我覺得x邊15就行,但題目好像不這麼認為 str的長度隨便,他只用來刷掉第一行scanf留在緩衝區的那一行 include i...
陣列 12 簡易連連看 20
本題要求實現乙個簡易連連看遊戲模擬程式。給定乙個2nx2n的方陣網格遊戲盤面,每個格仔中放置一些符號。這些符號一定是成對出現的,同乙個符號可能不止一對。程式讀入玩家給出的一對位置 x1,y1 x2,y2 判斷這兩個位置上的符號是否匹配。如果匹配成功,則將兩個符號消為 並輸出消去後的盤面 否則輸出 u...