俄羅斯輪盤賭,想必很多人都聽說過,一種殘忍的遊戲。遊戲的道具是一把左***,其規則也很簡單:在左***中的 6 個彈槽中隨意放入一顆或者多顆子彈,在任意旋轉轉輪之後,關上轉輪。遊戲的參加者輪流把手槍對著自己,扣動扳機:中槍或是怯場,即為輸的一方;堅持到最後的即為勝者。
本節實踐專案同輪盤賭類似,遊戲規則:n 個參加者排成乙個環,每次由主持向左***中裝一顆子彈,並隨機轉動關上轉輪,遊戲從第乙個人開始,輪流拿槍;中槍者退出賭桌,退出者的下乙個人作為第一人開始下一輪遊戲。直至最後剩餘乙個人,即為勝者。要求:模擬輪盤賭的遊戲規則,找到遊戲的最終勝者。
設計思路
解決類似的問題,使用線性表的順序儲存結構和鏈式儲存結構都能實現,根據遊戲規則,在使用鏈式儲存結構時只需使用迴圈鍊錶即可輕鬆解決問題。
順序儲存結構模擬輪盤賭採用順序儲存結構時,同樣要在腦海中將陣列的首尾進行連線,即當需要從陣列中最後乙個位置尋找下乙個位置時,要能夠跳轉到陣列的第乙個位置。
#include #include#include
typedef
enum bool;
typedef
struct
lineline; //
按照賭徒人數,初始化迴圈鍊錶
void initline(line ** head,int
n) list->next=*head;//
將鍊錶成環}//
輸出鍊錶中所有的結點資訊
void display(line *head)
printf(
"%d\n
",temp->no);}
intmain()
//將要刪除結點從鍊錶中刪除,並釋放其占用空間
printf("
編號為 %d 的賭徒退出,剩餘賭徒編號依次為:\n
",temp->next->no);
line * del=temp->next;
temp->next=temp->next->next;
if (del==head)
free(del);
display(head);
//賦值新一輪開始的位置
linenext=temp->next;
round++;//
記錄迴圈次數
} printf(
"最終勝利的賭徒編號是:%d\n
",head->no);
return0;
}
資料結構實踐專案之俄羅斯輪盤賭小遊戲
俄羅斯輪盤賭,想必很多人都聽說過,一種殘忍的賭博遊戲。遊戲的道具是一把左 其規則也很簡單 在左 中的 6 個彈槽中隨意放入一顆或者多顆子彈,在任意旋轉轉輪之後,關上轉輪。遊戲的參加者輪流把手槍對著自己,扣動扳機 中槍或是怯場,即為輸的一方 堅持到最後的即為勝者。本節實踐專案同輪盤賭類似,遊戲規則 n...
資料結構課程設計之俄羅斯輪盤賭遊戲
俄羅斯輪盤賭是一種殘忍的賭博遊戲。遊戲的道具是一把左 其規則也很簡單 在左 中的6個彈槽中隨意放入一顆或者多顆子彈,在任意旋轉轉輪之後,關上轉輪。遊戲的參加者輪流把手槍對著自己,扣動扳機 中槍或是怯場,即為輸的一方 堅持到最後的即為勝者。遊戲規則 n個參加者排成乙個環,每次由主持向左 中裝一顆子彈,...
學習筆記1 俄羅斯輪盤賭的概率分析
他給出了4種情形,彈倉容量為6 1顆子彈隨機分布 2顆子彈隨機分布 2顆子彈相鄰分布,2顆子彈間隔乙個彈倉分布。在每種情形下,第1個人中槍的概率是多少?在第1個人沒有中槍的情況下,第2個人中槍的概率是多少?但是他只給出了答案,沒有寫出過程。下面我以自己的思考給出過程,p 1 代表1中槍的概率,1未中...