24. 多位玩家撲克牌十點半下注 莊家(電腦)與多位玩家進行撲克牌十點半比大小,每一位玩家在遊戲開始前需先下注。 遊戲開始時,莊家和每位玩家會各自拿到一張牌,接著每位玩家持續要牌,直到選擇停止要牌或是總點數大於等於10.5。若玩家總點數為10.5,則玩家獲勝且停止要牌,莊家須賠給該玩家下注的金額(莊家立賠)。若玩家總點數超過10.5,則玩家爆掉且停止要牌,下注金額歸莊家所有(玩家立賠)。 當前一位玩家要牌結束後換下一位玩家要牌,若全部玩家要牌結束後,全部玩家都已經爆掉或是總點數為10.5,則遊戲結束,否則換莊家要牌。當莊家總點數小於未爆掉玩家中的最小點數時,需持續要牌。若莊家總點數為10.5,則莊家停牌,未爆掉的玩家須賠給莊家自己下注的金額(玩家立賠),遊戲結束。若莊家總點數超過10.5,則莊家爆掉,莊家停牌且莊家須賠給未爆掉的玩家下注的金額(莊家立賠),遊戲結束。 若莊家未爆掉且總點數大於所有未爆掉玩家中的最小點數,則莊家停牌,莊家與未爆掉的玩家比較點數,較大者勝。若點數相同則視為莊家勝,最後輸出各玩家與莊家的賺賠情況。(賺以正號表示,賠以負號表示)。 點數: 牌面A~10 點數為 1~10,J, K, Q 為 0.5。 規則: 1.每位玩家輸入下注的金額 2.電腦和每一位玩家先各要一張牌 3.任一位玩家持續要牌,可以選擇停止要牌。 4.任一位玩家總點數超過10.5,則該玩家爆掉並停止要牌,玩家須賠給莊家自己下注的金額(玩家立賠)。 5.任一位玩家總點數為10.5,則該玩家停止要牌,電腦須賠給該玩家當初所下注的金額(電腦立賠)。 6.當一位玩家停止要牌後換下一位玩家,直到所有玩家都要牌結束。 7.若所有玩家都已有結果(皆爆掉或是總點數為10.5),則遊戲結束,否則換電腦要牌。 8.若電腦總點數小於未爆掉的玩家中的最小點數,則持續要牌。 9.若電腦總點數等於10.5,則電腦停止要牌,未爆掉的玩家須賠給莊家自己下注的金額(玩家立賠),遊戲結束。 10.若電腦總點數超過10.5,則電腦爆掉,電腦停止要牌,電腦須賠給所有未爆掉的玩家所下注的金額(電腦立賠),遊戲結束。 11.若電腦總點數大於未爆掉的玩家中的最小點數,電腦停止要牌,電腦將與所有未爆掉的玩家比較點數。若電腦的點數大於等於玩家點數為電腦勝,玩家所下注的金額歸電腦所有。若電腦的點數小於玩家點數為玩家勝,電腦需賠給玩家所下注的金額。當全部比較完畢後,遊戲結束。 12.遊戲結束後,輸出電腦和各玩家的賺賠情況(賠以負號表示,賺以正號表示)。 注意: 點數未爆掉:總點數 <=10.5 點數爆掉 : 總點數 > 10.5 玩家立賠 : 未爆掉的玩家須賠給電腦當初自己所下注的金額。 例子: 假設玩家當初下注的金額為5,最後手上的牌點數總和為9,而電腦最後手上的牌點數總和為10,所以玩家立賠(玩家 -5,電腦 + 5) 電腦立賠 : 電腦須賠給該未爆掉的玩家當初所下注的金額。 例子 : 假設玩家當初下注的金額為5,最後手上的牌點數總和為10.5,則電腦立賠(玩家 +5,電腦 -5) 【輸入說明】 第1行: 輸入一個整數N(1<=N<=3),表示玩家的個數 。 第2行: 輸入N個整數,表示各個玩家下注的金額,中間以空白隔開。 第3行: 輸入一行字串,包含N+1張牌面,第1張牌面為電腦的第1張牌,其後N張表示N個玩家的第1張牌。每張牌面以空白隔開。 所有玩家要牌過程:從第一位玩家開始要牌,若玩家要牌。輸入一字串包含"Y"和點數,中間以空白隔開。若爆掉或點數等於10.5則換下一位玩家,若玩家想停止要牌。輸入一字串"N",換下一位玩家開始要牌 當最後一位玩家結束要牌後:當所有玩家停止要牌,如果莊家點數小於未爆掉玩家中的最小點數,換莊家要牌,若莊家要牌,輸入一整數M。如果莊家點數小於未爆掉玩家中的最小點數,繼續要牌,否則停止要牌並輸入結束) 輸入範例說明: 3 (玩家個數) 2 10 5 (每一位玩家的下注金額) 3 Q 3 10 (電腦和每一位玩家獲得第一張牌) Y 2 (第一位玩家選擇要牌,玩家獲得2,目前總點數2.5) Y 7 (第一位玩家選擇要牌,玩家獲得7,目前總點數 9.5) N (第一位玩家停止要牌) Y 8 (第二位玩家選擇要牌,玩家獲得8,目前總點數11爆掉,玩家立賠並無法再要牌) Y Q (第三位玩家選擇要牌,玩家獲得Q,目前總點數10.5,電腦立賠) 7 (電腦總點數3,小於未爆掉玩家中的最小點數9.5,要牌獲得7,目前總點數10,大於未爆掉玩家的最小點數9.5,遊戲結束) 【輸出說明】 第一行: 輸出第一位玩家名字(Player1)和賺賠情況 第N行: 輸出第N位玩家名字(PlayerN)和賺賠情況 第N+1行: 輸出電腦名字(Computer)和賺賠情況 輸出範例說明: Player1 -2 (此時Player1點數為9.5,Computer為10,Player1賠2) Player2 -10 (此時Player2點數為0,Computer為10,Player2賠10) Player3 +5 (此時Player3點數為10.5,Computer為10,Player3賺5) Computer +7 (Computer收到Player1(+2)、Computer收到Player2(+10)、Computer賠給 Player3(-5),最後獲利+7) 【測試資料一】 輸入: 2 2 8 10 A 6 Y 9 N Y 3 N 輸出: Player1 -2 Player2 -8 Computer +10 【測試資料二】 輸入: 3 8 5 4 A 2 3 4 Y 9 Y 6 N Y 8 9 輸出: Player1 -8 Player2 -5 Player3 -4 Computer +17 【測試資料三】 輸入: 3 4 5 6 8 10 9 8 N N N A 輸出: Player1 +4 Player2 -5 Player3 -6 Computer +7 【測試資料四】 輸入: 3 3 2 5 5 8 10 7 Y Q Y 2 Y A Y 2 N 4 K 輸出: Player1 +3 Player2 -2 Player3 -5 Computer +4 【測試資料五】 輸入: 3 8 2 7 A 7 6 3 Y 3 N Y 4 N Y 7 N 3 2 8 輸出: Player1 +8 Player2 +2 Player3 +7 Computer -17 【測試資料六】 輸入: 3 2 3 4 3 4 5 6 Y Q Y 6 Y 3 Y 2 Y J Y 4 Y K 輸出: Player1 +2 Player2 +3 Player3 +4 Computer -9 【測試資料七】 輸入: 3 5 10 15 8 9 10 7 Y 2 Y Q Y 3 N 2 Q 輸出: Player1 -5 Player2 +10 Player3 -15 Computer +10 【隱藏測試資料一】 輸入: 2 3 4 10 J 8 Y 9 N Y 2 N 輸出: Player1 -3 Player2 -4 Computer +7 【隱藏測試資料二】 輸入: 3 6 7 2 7 A 5 9 Y 9 Y 2 Y 3 N Y 4 2 輸出: Player1 -6 Player2 -7 Player3 -2 Computer +15 【隱藏測試資料三】 輸入: 3 4 5 6 2 8 9 10 N N N 3 4 輸出: Player1 -4 Player2 -5 Player3 +6 Computer +3 【隱藏測試資料四】 輸入: 2 3 2 5 4 6 Y 3 Y 2 N Y 4 Y Q 2 3 輸出: Player1 -3 Player2 +2 Computer +1 【隱藏測試資料五】 輸入: 2 4 7 6 3 2 Y 6 Y Q N Y 5 Y 3 N 5 輸出: Player1 +4 Player2 +7 Computer -11 【隱藏測試資料六】 輸入: 3 7 9 15 5 8 2 Q Y 2 Y J Y 8 Y K Y 10 輸出: Player1 +7 Player2 +9 Player3 +15 Computer -31 【隱藏測試資料七】 輸入: 3 15 20 25 6 4 8 10 Y Q Y 6 Y 3 N 4 Q 輸出: Player1 +15 Player2 -20 Player3 -25 Computer +30