java模拟洗牌发牌给不确定人_很久以前写的一个java模拟扑克牌洗牌发牌的小程序,学的知识少写的比较麻烦,不过也放上来吧...

package org.phz.poke;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class Poke {

String str1="红桃";

String str2="方块";

String str3="黑桃";

String str4="梅花";

List lis1=new ArrayList();

List lis2=new ArrayList();

List lis3=new ArrayList();

List lis4=new ArrayList();

List lis5=new ArrayList();

//取牌的方法

public  void fold(String str1, String str2,

String str3, String str4, List lis1) {

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

lis1.add(str1+i);

lis1.add(str2+i);

lis1.add(str3+i);

lis1.add(str4+i);

}

SetNumber.setNum(lis1, str1);

SetNumber.setNum(lis1, str2);

SetNumber.setNum(lis1, str3);

SetNumber.setNum(lis1, str4);

lis1.add("大王");

lis1.add("小王");

System.out.println(lis1);

}

//洗牌的方法

public void shuffle(){

Collections.shuffle(lis1);

System.out.println(lis1);

}

//发牌

public void issue(){

int b=0;

for (int i = 0; i < lis1.size(); i++) {

if(i

if(i==0+(3*b)){

lis3.add(lis1.get(i));

} if(i==1+(3*b)){

lis4.add(lis1.get(i));

} if(i==2+(3*b)){

lis5.add(lis1.get(i));

b++;

}

}

if(i>=lis1.size()-3)

lis2.add(lis1.get(i));

}

Collections.sort(lis3);

Collections.sort(lis4);

Collections.sort(lis5);

System.out.println("A得到的牌:"+lis3);

System.out.println("B得到的牌:"+lis4);

System.out.println("C得到的牌:"+lis5);

System.out.println("底牌:"+lis2);

}

//数组洗牌的方法

/*public  void shuffle(List lis1, List lis2) {

String[] str=new String[54];

lis1.toArray(str);

int [] arr;

arr=MyUnit.randromNumber(54, 54);

for (int i = 0; i < 54; i++) {

lis2.add(str[arr[i]-1]);

}

System.out.println(lis2);

}*/

public void isDiZhu(String str12){

if(str12.equals("A")){

lis3.addAll(lis2);

}else if(str12.equals("B")){

lis4.addAll(lis2);

}else if(str12.equals("C")){

lis5.addAll(lis2);

}

Collections.sort(lis3);

Collections.sort(lis4);

Collections.sort(lis5);

System.out.println("A得到的牌:"+lis3);

System.out.println("B得到的牌:"+lis4);

System.out.println("C得到的牌:"+lis5);

lis2.clear();

System.out.println("底牌"+lis2);

}

}

package org.phz.poke;

import java.util.List;

//这个类中的个方法是用来将1,11,12,13变为A,J,Q,K的

public class SetNumber {

public static void setNum(List lis1,String str) {

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

int a=lis1.indexOf(str+i);

switch (i) {

case 1:

lis1.set(a, str+"A");

break;

case 11:

lis1.set(a, str+"J");

break;

case 12:

lis1.set(a, str+"Q");

break;

case 13:

lis1.set(a, str+"K");

break;

default:

break;

}

}

}

}

package org.phz.poke; import java.util.Scanner; public class PokeTest { public static void main(String[] args) { Poke p=new Poke(); Scanner sc=new Scanner(System.in); System.out.println("请输入要执行的操作:取牌"); String str1=sc.next(); if(str1.equals("取牌")){ p.fold(p.str1, p.str2, p.str3, p.str4, p.lis1);//取牌 } System.out.println("请输入要执行的操作:洗牌"); String str2=sc.next(); if(str2.equals("洗牌")){ p.shuffle();//洗牌 } System.out.println("请输入要执行的操作:发牌"); String str3=sc.next(); if(str3.equals("发牌")){ p.issue();//发牌 } System.out.println("请选择谁是地主:A,B,C"); String str4=sc.next(); p.isDiZhu(str4); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值