撲克牌有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]
好了,洗牌和發牌都已經完成,剩下就是如何玩牌了,妳沒問,就不多說了。
上面的偽代碼應該能看懂吧?如果有問題,就用消息聯系好了。妳自己用編程語言去實現,不是什麽大問題的。