資料結構實踐專案之俄羅斯輪盤賭小遊戲

2022-09-19 03:15:11 字數 1233 閱讀 6474

俄羅斯輪盤賭,想必很多人都聽說過,一種殘忍的遊戲。遊戲的道具是一把左***,其規則也很簡單:在左***中的 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未中...