JAVA简单案例:斗地主
新建牌
扑克牌共有54张牌(分四种花色,每种花色有2~10,A,J,Q,K;除花色外还有大小王)。
- 首先建立牌组,可以用集合来新建牌组,
pokes
代表总的54张牌,colors
代表四种花色,numbers
代表 2~10,A,J,Q,K。 - 建立完牌组后我们要往里添加数据,我们把花色添加到
colors
中,把2~10,A,J,Q,K添加到numbers
中,数字可以用for循环来添加 - 最后将
colors
和numbers
排列组合,写入到pokes
,同时不要忘了添加大小王。
// 关键代码
List<String> pokes=new ArrayList<>();
List<String > colors=new ArrayList<>();
List<String > numbers=new ArrayList<>();
colors.add("♥");
colors.add("♠");
colors.add("◇");
colors.add("♣");
numbers.add("A");
for(int i=2;i<=10;i++){
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
for(String c:colors){
for(String n:numbers){
String pai=c+n;
pokes.add(pai);
}
}
pokes.add("大王");
pokes.add("小王");
洗牌
这里我们使用Collections.shuffle()来随机乱序。
// 关键代码
Collections.shuffle(pokes);
留底牌
首先新建一个集合来当做第牌组,再用for循环找出最后三张作为底牌。
// 关键代码
ArrayList<String > dipai=new ArrayList<>();
for(int i=0;i<pokes.size();i++){
String pai=pokes.get(i);
if(i>=51){
dipai.add(pai);
}
随机发牌
新建三个集合当做玩家,再给他们按顺序发牌。
// 关键代码
ArrayList<String> hh=new ArrayList<>();
ArrayList<String> dd=new ArrayList<>();
ArrayList<String> qq=new ArrayList<>();
for(int i=0;i<pokes.size();i++){
String pai=pokes.get(i);
if(i>=51){
}else {
if(i%3==0){
hh.add(pai);
}else if (i%3==1){
dd.add(pai);
}else {
qq.add(pai);
}
}
完整代码
下面展示完整代码。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DouDiZhu {
public static void main(String[] args) {
List<String> pokes=new ArrayList<>();
List<String > colors=new ArrayList<>();
List<String > numbers=new ArrayList<>();
colors.add("♥");
colors.add("♠");
colors.add("◇");
colors.add("♣");
numbers.add("A");
for(int i=2;i<=10;i++){
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
for(String c:colors){
for(String n:numbers){
String pai=c+n;
pokes.add(pai);
}
}
pokes.add("大王");
pokes.add("小王");
System.out.println(pokes);
Collections.shuffle(pokes);
System.out.println(pokes);
ArrayList<String > dipai=new ArrayList<>();
ArrayList<String> hh=new ArrayList<>();
ArrayList<String> dd=new ArrayList<>();
ArrayList<String> qq=new ArrayList<>();
for(int i=0;i<pokes.size();i++){
String pai=pokes.get(i);
if(i>=51){
dipai.add(pai);
}else {
if(i%3==0){
hh.add(pai);
}else if (i%3==1){
dd.add(pai);
}else {
qq.add(pai);
}
}
}
System.out.println(dipai);
System.out.println(hh);
System.out.println(dd);
System.out.println(qq);
}
}