java大作业斗地主游戏_Java集合练习:斗地主游戏
這是一個(gè)模擬斗地主的小游戲,最后看到的牌型是經(jīng)過(guò)排序的,具體代碼和解釋如下:
package cn.poker_test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
/*
* 模擬斗地主小游戲
*
* 思路:
* A:創(chuàng)建一個(gè)HashMap集合
* B:創(chuàng)建一個(gè)ArrayList集合
* C:創(chuàng)建花色數(shù)組和點(diǎn)數(shù)數(shù)組
* D:從0開(kāi)始往HashMap里面存儲(chǔ)編號(hào),并存儲(chǔ)對(duì)應(yīng)的牌
* 同時(shí)往ArrayList里面存儲(chǔ)編號(hào)即可
* E:洗牌(洗的是編號(hào))
* F:發(fā)牌(發(fā)的也是編號(hào),為了保證編號(hào)是排序的,就創(chuàng)建TreeSet集合接收)
* G:看牌(遍歷TreeSet集合,獲取編號(hào),到HashMap集合找對(duì)應(yīng)的牌)
*/
public class PokerGameDemo {
public static void main(String[] args) {
// 創(chuàng)建一個(gè)HashMap集合
HashMap hm = new HashMap();
// 創(chuàng)建一個(gè)ArrayList集合
ArrayList array = new ArrayList();
// 創(chuàng)建花色數(shù)組和點(diǎn)數(shù)數(shù)組
String[] colors = { "", "", "", "" };
// 定義一個(gè) 點(diǎn)數(shù)數(shù)組
String[] numbers = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2" };
// 從0開(kāi)始往HashMap里面存儲(chǔ)編號(hào),并存儲(chǔ)對(duì)應(yīng)的牌,同時(shí)往ArrayList里面存儲(chǔ)編號(hào)即可
int index = 0;
for(String number : numbers) {
for(String color : colors) {
String poker = color.concat(number);
hm.put(index, poker);
array.add(index);
index++;
}
}
hm.put(index, "小王");
array.add(index);
index++;
hm.put(index, "大王");
array.add(index);
//洗牌(洗的是編號(hào))
Collections.shuffle(array);
//發(fā)牌(發(fā)的也是編號(hào),為了保證編號(hào)是排序的,就創(chuàng)建TreeSet集合接收
TreeSet zhangXiaoQi = new TreeSet();
TreeSet meiChangSu = new TreeSet();
TreeSet linQingXia = new TreeSet();
TreeSet diPai = new TreeSet();
for(int x=0;x
if(x>array.size()-4) {
diPai.add(array.get(x));
} else if(x%3==0) {
zhangBingWei.add(array.get(x));
} else if(x%3==1) {
meiChangSu.add(array.get(x));
} else if(x%3==2) {
linQingXia.add(array.get(x));
}
}
//看牌(遍歷TreeSet集合,獲取編號(hào),到HashMap集合找對(duì)應(yīng)的牌)
lookPoker("張小七",zhangBingWei,hm);
lookPoker("梅長(zhǎng)蘇",meiChangSu,hm);
lookPoker("林青霞",linQingXia,hm);
lookPoker("底牌",diPai,hm);
}
public static void lookPoker(String name, TreeSet ts, HashMap hm) {
System.out.print(name+"的牌是:");
for(int key : ts) {
String value = hm.get(key);
System.out.print(value+" ");
}
System.out.println();
}
}
運(yùn)行結(jié)果:
張小七的牌是:3 4 6 6 8 9 10 J Q K K A 2 2 2 小王 大王
梅長(zhǎng)蘇的牌是:3 4 5 5 5 6 8 9 9 10 J Q Q K A A 2
林青霞的牌是:3 3 4 4 5 6 7 7 8 9 10 10 J J Q K A
底牌的牌是:7 7 8
總結(jié)
以上是生活随笔為你收集整理的java大作业斗地主游戏_Java集合练习:斗地主游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息学奥赛一本通 1331:【例1-2】
- 下一篇: rmi远程代码执行漏洞_微软 Windo