package cn.hp.demo01;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/**
* 模拟扑克牌
* 花色:♠ ♥ ♦ ♣
* * 牌号:A 2 3 4 5 6 7 8 9 10 J Q K
* * 大王、小王
* *
* * 1.生成一副牌
* * 2.然后发牌
*/
public class Demo04 {
public static void main(String[] args) {
//牌库
List<String> poker = new ArrayList<>();
String[]color={"♠","♥","♣","♦"};
//添加牌
poker.add("大王");
poker.add("小王");
for (int i = 0; i < color.length; i++) {
poker.add(color[i]+"2");
}
for (int i = 0; i < color.length; i++) {
poker.add(color[i]+"A");
}
for (int i = 0; i < color.length; i++) {
poker.add(color[i]+"K");
}
for (int i = 0; i < color.length; i++) {
poker.add(color[i]+"Q");
}
for (int i = 0; i < color.length; i++) {
poker.add(color[i]+"J");
}
//10-3
for (int i = 10; i >= 3 ; i--) {
for (int j = 0; j < color.length; j++) {
poker.add(color[j]+i);
}
}
System.out.println("poker = " + poker);
//发牌?3个玩家、3张底牌
List<String> p1 = new ArrayList<>();
List<String> p2 = new ArrayList<>();
List<String> p3 = new ArrayList<>();
List<String> p0 = new ArrayList<>();//底牌
Collections.shuffle(poker);//洗牌,打乱顺序
System.out.println("poker = " + poker);
for (int i = 0; i < poker.size()-3; i++) {
//发给3个人,三进制:0 1 2
if(i%3==0){
p1.add(poker.get(i));
}else if(i%3==1){
p2.add(poker.get(i));
}else if(i%3==2){
p3.add(poker.get(i));
}
}
p0.add(poker.get(poker.size()-1));
p0.add(poker.get(poker.size()-2));
p0.add(poker.get(poker.size()-3));
//显示三个人的牌
System.out.println("玩家1手牌["+p1.size()+"张]:" + p1);
System.out.println("玩家2手牌["+p2.size()+"张]:" + p2);
System.out.println("玩家3手牌["+p3.size()+"张]:" + p3);
System.out.println("底牌["+p0.size()+"张]:" + p0);
//出单张牌
int p=1;//1:玩家1,2:玩家2,3表示玩家3
while (true){
System.out.println("玩家"+p+"出牌");
if(p==1){
System.out.println("手牌:"+p1);
System.out.println("请玩家1输入要出第几张牌:");
int n = new Scanner(System.in).nextInt();
System.out.println("玩家1出牌:"+p1.get(n-1));
p1.remove(n-1);
//改玩家2
p=2;
}
if(p==2){
System.out.println("手牌:"+p2);
System.out.println("请玩家2输入要出第几张牌:");
int n = new Scanner(System.in).nextInt();
System.out.println("玩家2出牌:"+p2.get(n-1));
p2.remove(n-1);
//改玩家3
p=3;
}
if(p==3){
System.out.println("手牌:"+p3);
System.out.println("请玩家3输入要出第几张牌:");
int n = new Scanner(System.in).nextInt();
System.out.println("玩家3出牌:"+p3.get(n-1));
p3.remove(n-1);
//改玩家1
p=1;
}
if(p1.size()==0||p2.size()==0||p3.size()==0){
System.out.println("GAME OVER");
break;
}
}
}
}
模拟扑克牌
最新推荐文章于 2022-10-25 22:28:21 发布