扑克洗牌java_java扑克牌洗牌发牌问题

@param args

*/

private Listsqu;

private Maphum;

private Scanner sc = new Scanner(System.in);

public Test(){

this.hum = new HashMap();

this.squ = new ArrayList();

}

public void creatsqu(){

System.out.println("创建扑克牌");

int j = 0;

for(int i = 1;i <= 13;i++){

Squeezer sq = new Squeezer(j,i,"黑桃");

squ.add(sq);

Squeezer sq1 = new Squeezer((j+13),i,"红桃");

squ.add(sq1);

Squeezer sq2 = new Squeezer((j+26),i,"方片");

squ.add(sq2);

Squeezer sq3 = new Squeezer((j+39),i,"梅花");

squ.add(sq3);

j = i;

}

}

public void foreach(){

System.out.println("构建的扑克牌为:");

for (Squeezer sq : squ) {

switch (sq.getNumber()) {

case 11:

System.out.print(sq.getFlower()+"J"+" ");

break;

case 12:

System.out.print(sq.getFlower()+"Q"+" ");

break;

case 13:

System.out.print(sq.getFlower()+"k"+" ");

break;

default:

System.out.print(sq.getFlower()+sq.getNumber()+" ");

break;

}

}

}

public void creat(){

int id ;

for(int i = 0;i < 2;i++)

{

System.out.println("请输入玩家ID");

while(true) {

try{

id = Integer.parseInt(sc.nextLine().trim());;

if(hum.get(id)==null){

break;

}else{

System.out.println("此ID已被占用请重新输入");

continue;

}

}

catch (NumberFormatException e) {

System.out.println("请输入整数类型的ID!");

System.out.println("重新输入ID:");

continue;

}

}

System.out.println("输入姓名:");

String name = sc.nextLine();

Human player = new Human(id, name);

hum.put(id, player);

}

}

public void humforeach(){

Setkeyset = hum.keySet();

for (int st : keyset) {

Human sr = hum.get(st);

if(sr !=null){

System.out.println("-------欢迎玩家-------"+sr.getName());

}

}

}

public void shuffle(){

System.out.println("---------开始洗牌--------"); //随机打乱顺序用List方法

Collections.shuffle(squ);

System.out.println("---------洗牌结束----------");

}

public void dealCard(){

int i = 0;

int in[] = new int[2];

String str[] = new String[2];

Setkeyset = hum.keySet();

for (int st : keyset) {

Human sr = hum.get(st);

if(sr !=null){

in[i] = sr.getId();

str[i] = sr.getName() ;

i++;

}

}

System.out.println("给"+str[0]+"发牌");

hum.get(in[0]).cards.add(squ.get(0));

System.out.println("给"+str[1]+"发牌");

hum.get(in[1]).cards.add(squ.get(2));

System.out.println("给"+str[0]+"发牌");

hum.get(in[0]).cards.add(squ.get(1));

System.out.println("给"+str[1]+"发牌");

hum.get(in[1]).cards.add(squ.get(3));

}

public void Startgame(){

int i = 0;

int in[] = new int[2];

String str[] = new String[2];

Setkeyset = hum.keySet();

for (int st : keyset) {

Human sr = hum.get(st);

if(sr !=null){

in[i] = sr.getId();

str[i] = sr.getName() ;

i++;

}

}

System.out.println("------开始游戏--------");

Collections.sort(hum.get(in[0]).cards);

Squeezer maxCard= (Squeezer) hum.get(in[0]).cards.get(1);

System.out.print("玩家:"+hum.get(in[0]).getName()+"最大的手牌是:"+maxCard.getFlower());

switch (maxCard.getNumber()) {

case 11:

System.out.println("J");

break;

case 12:

System.out.println("Q");

break;

case 13:

System.out.println("k");

break;

default:

System.out.println(maxCard.getNumber());

break;

}

Collections.sort(hum.get(in[1]).cards);

Squeezer maxCard1= (Squeezer) hum.get(in[1]).cards.get(1);

System.out.print("玩家:"+hum.get(in[1]).getName()+"最大的手牌是:"+maxCard1.getFlower());

switch (maxCard1.getNumber()) {

case 11:

System.out.println("J");

break;

case 12:

System.out.println("Q");

break;

case 13:

System.out.println("k");

break;

default:

System.out.println(maxCard1.getNumber());

break;

}

List list = new ArrayList();

list.add(maxCard1);

list.add(maxCard);

Collections.sort(list);

if(list.get(0).getNumber() == maxCard.getNumber()&&list.get(0).getFlower().equals(maxCard.getFlower())){

System.out.println("-------玩家"+hum.get(in[0]).getName()+"赢了--------");

}else {

System.out.println("-------玩家"+hum.get(in[1]).getName()+"赢了--------");

}

}

public static void main(String[] args) {

//

System.out.println("欢迎游戏");

Test te = new Test();

te.creatsqu();

te.foreach();

System.out.println("");

te.creat();

te.humforeach();

te.shuffle();

te.dealCard();

te.Startgame();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值