a:鬥地主的功能分析
a:具體規則:a:鬥地主的準備牌1. 組裝54張撲克牌
2. 將54張牌順序打亂
3. 三個玩家參與遊戲,三人交替摸牌,每人17張牌,最後三張留作底牌。
4. 檢視三人各自手中的牌(按照牌的大小排序)、底牌
b:分析:
1.準備牌:
完成數字與紙牌的對映關係:
使用雙列map(hashmap)集合,完成乙個數字與字串紙牌的對應關係(相當於乙個字典)。
0對大王,1對小王,2對2,3對2.。。。。53對3
數字為鍵,牌為值
為什麼使用數字呢?因為牌本身不好排序麼人數字可以排序。
2.洗牌:
通過數字完成洗牌,將數字是順序打亂
3.發牌:
將每個人以及底牌設計為arraylist,將最後3張牌直接存放於底牌,剩餘牌通過對3取模依次發牌。
存放的過程中要求數字大小與鬥地主規則的大小對應。
將代表不同紙牌的數字分配給不同的玩家與底牌。
4.看牌:
通過map集合找到對應字元展示。
通過查詢紙牌與數字的對應關係,由數字轉成紙牌字串再進行展示。
/** 實現模擬鬥地主的功能
* 1. 組合牌
* 2. 洗牌
* 3. 發牌
* 4. 看牌
*/public class doudizhu ;
//定義4個花色陣列
string colors = ;
//定義整數變數,作為鍵出現
int index = 2;
//遍歷陣列,花色+點數的組合,儲存到map集合
for(string number : numbers)
}//儲存大王,和小王,索引是從0~54,對應大王,小王,...3(牌的順序從大到小)
pooker.put(0, "大王");
pookernumber.add(0);
pooker.put(1, "小王");
pookernumber.add(1);
}
a:鬥地主的洗牌/** 實現模擬鬥地主的功能
* 1. 組合牌
* 2. 洗牌
* 3. 發牌
* 4. 看牌
*/public class doudizhu ;
//定義4個花色陣列
string colors = ;
//定義整數變數,作為鍵出現
int index = 2;
//遍歷陣列,花色+點數的組合,儲存到map集合
for(string number : numbers)
}//儲存大王,和小王
pooker.put(0, "大王");
pookernumber.add(0);
pooker.put(1, "小王");
pookernumber.add(1);
//洗牌,將牌的編號打亂
collections.shuffle(pookernumber);
}
}a:鬥地主的發牌
/*a:鬥地主的看牌* 實現模擬鬥地主的功能
* 1. 組合牌
* 2. 洗牌
* 3. 發牌
* 4. 看牌
*/public class doudizhu ;
//定義4個花色陣列
string colors = ;
//定義整數變數,作為鍵出現
int index = 2;
//遍歷陣列,花色+點數的組合,儲存到map集合
for(string number : numbers)
}//儲存大王,和小王
pooker.put(0, "大王");
pookernumber.add(0);
pooker.put(1, "小王");
pookernumber.add(1);
//洗牌,將牌的編號打亂
collections.shuffle(pookernumber);
//發牌功能,將牌編號,發給玩家集合,底牌集合
arraylistplayer1 = new arraylist();
arraylistplayer2 = new arraylist();
arraylistplayer3 = new arraylist();
arraylistbottom = new arraylist();
//發牌採用的是集合索引%3
for(int i = 0 ; i < pookernumber.size() ; i++)else if(i % 3 == 0)else if( i % 3 == 1)else if( i % 3 == 2)}}
}
/** 實現模擬鬥地主的功能
* 1. 組合牌
* 2. 洗牌
* 3. 發牌
* 4. 看牌
*/public class doudizhu ;
//定義4個花色陣列
string colors = ;
//定義整數變數,作為鍵出現
int index = 2;
//遍歷陣列,花色+點數的組合,儲存到map集合
for(string number : numbers)
}//儲存大王,和小王
pooker.put(0, "大王");
pookernumber.add(0);
pooker.put(1, "小王");
pookernumber.add(1);
//洗牌,將牌的編號打亂
collections.shuffle(pookernumber);
//發牌功能,將牌編號,發給玩家集合,底牌集合
arraylistplayer1 = new arraylist();
arraylistplayer2 = new arraylist();
arraylistplayer3 = new arraylist();
arraylistbottom = new arraylist();
//發牌採用的是集合索引%3
for(int i = 0 ; i < pookernumber.size() ; i++)else if(i % 3 == 0)else if( i % 3 == 1)else if( i % 3 == 2)
}//對玩家手中的編號排序
collections.sort(player1);
collections.sort(player2);
collections.sort(player3);
//看牌,將玩家手中的編號,到map集合中查詢,根據鍵找值
//定義方法實現
look("劉德華",player1,pooker);
look("張曼玉",player2,pooker);
look("林青霞",player3,pooker);
look("底牌",bottom,pooker);
}public static void look(string name,arraylistplayer,hashmappooker)
system.out.println();
}}
鬥地主發牌
鬥地主的發牌 a 鬥地主的發牌 實現模擬鬥地主的功能 1.組合牌 2.洗牌 3.發牌 4.看牌 public class doudizhu 定義4個花色陣列 string colors 定義整數變數,作為鍵出現 int index 2 遍歷陣列,花色 點數的組合,儲存到map集合 for strin...
模擬鬥地主洗牌和發牌
分析 a 建立乙個牌盒 b 裝牌 c 洗牌 d 發牌 e 看牌 public class test system.out.println public static void main string args 定義乙個點陣列 string numbers for string c colors ar...
Python3模擬鬥地主發牌
模擬鬥地主發牌,牌共54張,花色 黑桃 u2660 梅花 u2663 方塊 u2665 紅桃 u2666 種類為 a2 10jqk,大小王 x,x 三個人,每個人17張牌,牌底留三張 輸入回車,列印第乙個問的17張牌 輸入回車,列印第二個問的17張牌 輸入回車,列印第三個問的17張牌 import ...