一開始利用了arraylist的直接組建一副撲克牌並利用collections.shuffle()打亂牌序,
但是發現看牌時牌序太亂,不方便檢視
於是利用了treeset自帶的排序功能,撲克牌大小利用hashmap的鍵值對一一儲存進去,最後通過索引值取出牌組。
//優化前的**如下:
public static void main(string args) ;
string hs = ;
arraylistpoker = new arraylist();
for (string s1 : hs)
} poker.add("小王");
poker.add("大王");
//2、洗牌
collections.shuffle(poker);
//3、發牌
arraylistmht = new arraylist(); //玩家馬化騰
arraylistmy = new arraylist(); //玩家馬雲
arraylistme = new arraylist(); //我
arraylistdp = new arraylist(); //底牌
for(int i = 0; i < poker.size() ; i++)
if(i % 3 ==0)
if(i % 3 == 1)
if(i % 3 == 2) }
//4、顯示大家的手牌與底牌
system.out.println("本輪的底牌是:"+dp);
system.out.println("馬化騰的手牌是:"+mht);
system.out.println("馬雲的手牌是:"+my);
system.out.println("我的手牌是:"+me);
//使用treeset和hashmap優化後
public static void main(string args) ;
string color = ;
hashmappoker = new hashmap(); //儲存索引和撲克牌
arraylistlist = new arraylist(); //儲存索引
int index = 0 ; //記錄索引值
for (string s1 : num)
} poker.put(index, "小王");
list.add(index);
index ++;
poker.put(index, "大王");
list.add(index);
//2、洗牌
collections.shuffle(list);
//3、發牌
treesetmht = new treeset<>(); //玩家馬化騰
treesetmy = new treeset<>(); //玩家馬雲
treesetme = new treeset<>(); //我
treesetdp = new treeset<>(); //底牌
for(int i = 0; i < list.size() ; i++)
if(i % 3 ==0)
if(i % 3 == 1)
if(i % 3 == 2) }
lookpai(poker, dp, "底牌");
lookpai(poker, mht, "馬化騰");
lookpai(poker, my, "馬雲");
lookpai(poker, me, "我");
}//4、顯示大家的手牌與底牌
利用集合完成鬥地主發,洗牌
3.2 案例需求分析 準備牌 完成數字與紙牌的對映關係 使用雙列map hashmap 集合,完成乙個數字與字串紙牌的對應關係 相當於乙個字典 洗牌 通過數字完成洗牌發牌 發牌 將每個人以及底牌設計為arraylist,將最後3張牌直接存放於底牌,剩餘牌通過對3取模依次發牌。存放的過程中要求數字大小...
實現模擬鬥地主
實現模擬鬥地主的功能 1.組合牌 2.洗牌 3.發牌 4.看牌 public class doudizhu 定義4個花色陣列 string colors 定義整數變數 作為鍵出現 int index 2 遍歷陣列 花色 點數的組合,儲存到map集合 for string number numbers...
鬥地主AI演算法實現
鬥地主ai演算法實現 一 拆牌 by wojiushi3344 棋牌遊戲開發專欄 首先我們來看一下ai的定義 人工智慧 artificial intelligence 簡稱ai。它是研究 開發用於模擬 延伸和擴充套件人的智慧型的理論 方法 技術及應用系統的一門新的技術科學。人工智慧研究如何用計算機去...