當前位置:編程學習大全網 - 編程語言 - 如何用壹維數組模仿撲克洗牌和發牌

如何用壹維數組模仿撲克洗牌和發牌

用隨機函數來模擬比較合適

撲克牌有54張,可以先約定好,比如:

大貓----------0

小貓----------1

黑桃A---------1

黑桃2---------黑桃A + 1

黑桃3---------黑桃A + 2

...

黑桃K---------黑桃A + 12

紅心A---------黑桃A + 13

紅心2---------紅心A + 1

...

這樣就可以把整副撲克牌的每張牌用壹個特定的整數來表示,它們之間的大小關系可以通過不同的玩法制定相應的規則。

那好,現在我們定義壹副牌int Joker[54];

用隨機函數來填充Joker。

算法為:(不是真實的程序語言,由於不知道妳使用什麽編程語言,這裏只描述算法)

for(i = 0 to 53)

{

l1:

生成隨機數:pai = rand(54); //隨機生成壹個0 -- 53的整數

在已產生的牌中查找是否存在pai(即在Joker[0] 到Joker[i - 1]中查找)

如果存在,goto l1;

否則Joker[i] = pai

}

這樣我們就把整副牌給洗好了。

接下來,就可以發牌了。

發牌時,只要按順序把牌“發”到每個人的“手”裏就行了

例如:4個人玩牌,四個人的牌為player[4][14];

for(i = 0 to 53)

{

player[i % 4][i / 4] = Joker[i];

}

這樣就完成了發牌程序。

當然,如果妳想要發牌也用壹維數組,那也簡單,比如還是4個人玩,那麽:

player0手上的第n張牌就是Joker[n * 4 + 0]

player1手上的第n張牌就是Joker[n * 4 + 1]

player2手上的第n張牌就是Joker[n * 4 + 2]

player3手上的第n張牌就是Joker[n * 4 + 3]

好了,洗牌和發牌都已經完成,剩下就是如何玩牌了,妳沒問,就不多說了。

上面的偽代碼應該能看懂吧?如果有問題,就用消息聯系好了。妳自己用編程語言去實現,不是什麽大問題的。

  • 上一篇:變形金剛5結局是什麽
  • 下一篇:小學編程貓賬號密碼忘記了
  • copyright 2024編程學習大全網