---------------main函数------------------
package Puke;
import Puke.mixcard;
public class pukemain {
/**
* 扑克牌游戏:
* 1.定义自动生成牌的容器(选用2个二维数组cardstype和number,一个存储花色,一个存储牌面的字母),
* 以及各个花色和牌面字母所对应的权值大小(2=20,3=30.....K=130,A=140)(红桃=4,方块=3,黑桃=2,梅花=1)。
* 2.牌创建成功后,生成一个新的集合(用map来实现,key为权值,value为具体牌的花色字母),
* 原因:方便后边牌进行比较(通过权值进行比较后,通过key来找value)。
* 3.随机分牌,采用random函数,生成一个新的由牌的权值作为内容的列表(方便random函数生成随机整数后,
* 列表可以通过index来进行取值和删除)。
* 4.比较大小,通过权值来进行比较,然后通过具体的权值,在之前map里面找到对应的value输出。
* 总结:
* 采用了1个map函数,两个2维数组,1个列表来实现。
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
mixcard cozon=new mixcard();
cozon.mixallcord();
}
}
-----发牌比较牌函数----
package Puke;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
public class mixcard {
String[][]number={{"2","20"},{"3","30"},{"4","40"},{"5","50"},{"6","60"},{"7","70"},{"8","80"},{"9","90"},{"10","100"},{"J","110"},{"Q","120"},{"K","130"},{"A","140"}};
String[][]cardstype={{"红桃","4"},{"方块","3"},{"黑桃","2"},{"梅花","1"}};
//创建一副52张的扑克牌
public void mixallcord(){
System.out.println("--------开始创建扑克牌!--------");
Scanner scan=new Scanner(System.in);
Map<Integer,String> coo =new HashMap<Integer,String>();
List<Integer> coo1 =new ArrayList();
for(int i =0;i<13;i++)
{
for(int j=0;j<cardstype.length;j++)
{
Integer gradenumber= Integer.parseInt(number[i][1])+Integer.parseInt(cardstype[j][1]);
coo.put(gradenumber,cardstype[j][0]+number[i][0]);
coo1.add(gradenumber);
}
}
System.out.println("--------创建扑克牌成功!--------");
System.out.println("--------开始洗牌!--------");
System.out.println("--------洗牌结束--------");
System.out.println("--------创建玩家!--------");
System.out.println("请输入第一个用户的名字");
/*
* try..catch这个可以忽略不看,单纯为了练语法。哈哈
*
*/
String onename = null;
try {
onename=scan.next();
} catch (Exception e) {
// TODO: handle exception
System.out.println("SB!");
}
System.out.println("请输入第二个用户的名字");
String twoname=scan.next();
System.out.println("--------开始发牌!--------");
List<Integer> onenamelist =new ArrayList();
List<Integer> twonamelist =new ArrayList();
Random rand = new Random();
for(int i=0;i>=0;i++)
{
int a =rand.nextInt(coo1.size());
System.out.println("--------玩家"+onename+"开始拿牌!--------");
onenamelist.add(coo1.get(a));
coo1.remove(a);
int b =rand.nextInt(coo1.size());
System.out.println("--------玩家"+twoname+"开始拿牌!--------");
twonamelist.add(coo1.get(b));
coo1.remove(b);
if(onenamelist.size()==10)
{
break;
}
}
System.out.println("--------发牌结束-------");
System.out.println("--------开始游戏-------");
//2位玩家的最大牌
Collections.sort(onenamelist);
System.out.println("玩家"+onename+"的最大牌为: "+coo.get(onenamelist.get(onenamelist.size()-1)));
Collections.sort(twonamelist);
System.out.println("玩家"+twoname+"的最大牌为: "+coo.get(twonamelist.get(twonamelist.size()-1)));
//比较最大值:
if(onenamelist.get(onenamelist.size()-1)-twonamelist.get(twonamelist.size()-1)>0)
{
System.out.println("--------玩家"+onename+"获胜!!");
}
else {
System.out.println("--------玩家"+twoname+"获胜!!");
}
System.out.println("玩家"+onename+"的牌为:");
for(int i=0;i<onenamelist.size();i++)
{
System.out.print(coo.get(onenamelist.get(i))+' ');
}
System.out.println();
System.out.println("玩家"+twoname+"的牌为:");
for(int i=0;i<twonamelist.size();i++)
{
System.out.print(coo.get(twonamelist.get(i))+' ');
}
}
}