編寫乙個骰子遊戲,如何讓電腦贏的機率在七成以上?

時間 2021-06-05 19:41:12

1樓:

滿足前4條最簡便的方法:

先隨機擲兩次,比較好大小待用。

再隨機乙個數,根據你想要的概率計算這局讓玩家贏還是輸。

然後按照勝負結果把兩次擲的骰子分配給電腦和玩家。

第5條肯定是沒戲的,純隨機的遊戲勝負期望應該是50%,玩得時間一長肯定就發現了。

2樓:

這種問題絕對是先隨機出結果,即本局是玩家贏還是電腦贏。(這個隨機就不說了,第一天學程式設計的人都會。100以內隨機,70以內是電腦贏,70-99是玩家贏)

如果是玩家贏,那麼,只要避免電腦擲出兩個6,那麼玩家肯定可以匹配的給出乙個比電腦大的結果!如果是電腦贏,同理!(這個演算法同樣很簡單,學過兩天程式設計的人都會。)

至於玩家看到的,電腦和玩家投擲骰子的先後順序,那麼做過遊戲客戶端的程式設計師應該都知道玩家看到的只是表現,真正的結果其實早就已經隨機出來了,只是結果還沒有表現出來,只是玩家沒看到而已。

舉個栗子:

1、隨機結果,本輪是電腦贏還是玩家贏?隨機結果是35,小於70,電腦贏。

2、獲得失敗方的點數(即玩家的點數),1-6隨機兩個點數,如果是兩個6,重新隨機,直到不出現兩個6。

3、獲得獲勝方的點數(即電腦的點數),1-6隨機兩個點數,如果小於電腦的兩個點數和,則再隨機,直到隨機出大於玩家的點數。(這個演算法可以優化,當前演算法在極端情況下需要迴圈很多次)

4、以上步驟得到了玩家和電腦的共四個骰子點數,按遊戲設定的順序乙個乙個展現給玩家即可。

加個例項:

A、前兩年非常火的頁遊《龍將》,據說是全國收入前10的頁遊之一,收入是不是真的我不清楚,反正不是我做的,但是有幾年真的很火。

B、龍將裡面有乙個對酒系統,玩家和電腦出拳(石頭剪刀布),玩家贏的話,獲得酒魂(好像是叫酒魂,記不太清楚了,反正就是一種遊戲內貨幣),一局對酒有三個回合,如果某一回合玩家失敗,則本局結束,如果玩家一直贏,則三個回合後,本局結束。

C、三個回合中,電腦的勝率依次遞增(具體的勝率是多少不記得了,簡單的說就是第一回合電腦的勝率是30%,第二回合是50%,第三回合是80%),當然獲得獎勵的數量也不相同,贏了三個回合的獎勵大大多於贏乙個回合的。

D、判定過程:先隨機電腦贏還是玩家贏,如果玩家贏,則先從石頭剪刀布中隨機出乙個結果給電腦(如「布」),然後再選出贏電腦的那個出拳結果給玩家(布對應的是「剪刀」)。有了出拳方案後,再根據先玩家/後電腦的順序出拳。

3樓:

令投出 i 和 j 的情況下獲勝的概率為 Pij(如 P66 = 35/36,唯一判負的情況未對方也出 66,又例 P11 = 1/2),令投出 i j 的概率為 Xij,易知在沒有外力干涉情況下 Xij = 1/36,現在就是要找

Xij 使得 ∑Xij*Pij > 0.7 (1)同時有 ∑Xij = 1 (2)

把 1 式改成等號,選擇合適的 Xij 為 X1,剩下的部分為 X2,可得二元一次方程組

X1∑Pij(部分) + X2∑Pij(另一部分) = 0.7X1*部分的個數 + X2*另一部分的個數 = 1所以就是弄乙個合適的劃分以滿足玩家察覺不到且 0 < X1, X2 < 1 了

個人覺得找不到

求 大神編寫乙個電腦程式,找出1,000,000內的所有孿生素數!!最好能用VB?

tswjq Dim ab 150000000 As IntegerPrivate Type pd 輸出檔案s1 As String 7 s2 As String 9 s3 As String 9 hc As String 2 End Type Private Sub Command13 Click ...

如何構造乙個公平骰子?

多面骰一般不都是用那種轉盤一樣的東西麼。當然可以,只要這個多面體有N的整倍數個面完全等價就行。最簡單的解決方案,對已任意正整數N 2,先搞乙個正N稜柱。為了避免用語不當,這裡正N稜柱指底面為正N邊型,頂點與底面的中點連線垂直於底面。拿兩個完全一樣的這樣的正N稜柱,將其底面重合粘合。這樣總共有2N個面...

如何編寫乙個硬體模擬器?

這裡有個文件我覺得很有用 HOWTO Writing a Computer Emulator不讓複製只讓給連線.裡邊也提到了一些社群 我覺得找不到文件的時候可以去碰碰運氣 pgseau 第一步也是最最重要的一步應該是對模擬物件有徹底的了解,完全清楚實際邏輯流程。其次,需要用事件驅動來模擬實際流程。然...