未来年薪百万的安卓工程师
2018-05-14 15:03
public class Poke { public String num; public String kind; public Poke(String num, String kind) { this.num = num; this.kind = kind; } public Poke(){ } }
public class Player { public Integer id; public String name; public List<Poke> hold; public Player(Integer id, String name) { this.id = id; this.name = name; this.hold =new ArrayList<Poke>(); } }
public class MainTest { //1.创建衣服扑克牌,包括黑红梅方,2-10,jqka //2.创建两个玩家,id,姓名,手牌(扑克牌的集合) //3.洗牌,打乱创建好的扑克牌的顺序(所以要用list集合) //4.发牌,江西好的扑克牌集合,从第一个开始,发给两个人各一张,每人一共两张 //5.比大小.两个人取手中最大的牌进行比较,若大小一样,则比对花色,黑红梅方 //异常处理:创建用户id输入不为整书时,提示重新输入整数类型 private List<Poke> pokeList=new ArrayList<Poke>(); private List<Player> playersList=new ArrayList<Player>(); //创建扑克牌 public void PokeBuild(){ System.out.println("————创建扑克牌————"); String[] kind={"方块","梅花","红桃","黑桃"}; for (int i=2;i<11;i++){ for (int j=0;j<4;j++){ String k=String.valueOf(i); Poke poke=new Poke(k,kind[j]); pokeList.add(poke); }} //创建jqka List<Poke> pokelistjqka=new ArrayList<Poke>(); for (int j=0;j<4;j++){ Poke poke1=new Poke("J",kind[j]); pokelistjqka.add(poke1); } for (int j=0;j<4;j++){ Poke poke1=new Poke("Q",kind[j]); pokelistjqka.add(poke1); } for (int j=0;j<4;j++){ Poke poke1=new Poke("K",kind[j]); pokelistjqka.add(poke1); } for (int j=0;j<4;j++){ Poke poke1=new Poke("A",kind[j]); pokelistjqka.add(poke1); } pokeList.addAll(pokelistjqka); System.out.println("————扑克牌创建完毕————"); System.out.println("全部扑克牌如下"); for (Poke poke:pokeList.subList(0,13) ) { System.out.print(poke.kind+poke.num+" "); } System.out.println(); for (Poke poke:pokeList.subList(13,26) ) { System.out.print(poke.kind+poke.num+" "); } System.out.println(); for (Poke poke:pokeList.subList(26,39) ) { System.out.print(poke.kind+poke.num+" "); } System.out.println(); for (Poke poke:pokeList.subList(39,52) ) { System.out.print(poke.kind+poke.num+" "); } System.out.println( ); } //洗牌 public void PokeRandom(){ System.out.println("————开始洗牌————"); Collections.shuffle(pokeList); System.out.println("————洗牌完成————"); } //创建玩家 public void ManBuilde(){ System.out.println("开始创建玩家"); int i=1; while(true){ while (i<3){ try{ Player player; System.out.println("请输入第" + i + "个玩家id"); Scanner console = new Scanner(System.in); Integer id = console.nextInt(); System.out.println("请输入第" + i + "个玩家名字"); String name=console.next(); player=new Player(id,name); playersList.add(player); System.out.println("成功创建玩家"+playersList.get(i-1).name); i++; }catch (Exception e){ System.out.println("请输入整数"); continue; } } System.out.println("——创建玩家成功——"); break; }} //发牌给玩家 public void GivePoke(){ System.out.println("———开始发牌———"); Poke poke1=new Poke(pokeList.get(0).num,pokeList.get(0).kind); Poke poke2=new Poke(pokeList.get(1).num,pokeList.get(1).kind); Poke poke3=new Poke(pokeList.get(2).num,pokeList.get(2).kind); Poke poke4=new Poke(pokeList.get(3).num,pokeList.get(3).kind); playersList.get(0).hold.add(poke1); playersList.get(1).hold.add(poke2); playersList.get(0).hold.add(poke3); playersList.get(1).hold.add(poke4); System.out.println("——两个玩家的手牌——"); for (int i=0;i<2;i++){ //妈的,hold也是一个list,也要选择读其中的第几个!!!!操 System.out.println(playersList.get(i).name+" "+playersList.get(i).hold.get(0).kind+playersList.get(i).hold.get(0).num +playersList.get(i).hold.get(1).kind+playersList.get(i).hold.get(1).num); } } //比大小,先玩家自己对比手牌中的大小,选大的和别人比 public void PokeCompare(){ System.out.println("————接下来比大小————"); //通过手中牌的索引位置比较大小 int oneMax,twoMax; Poke poke1=playersList.get(0).hold.get(0); Poke poke2=playersList.get(0).hold.get(1); Poke poke3=playersList.get(1).hold.get(0); Poke poke4=playersList.get(1).hold.get(1); int poke1Index=playersList.indexOf(poke1); int poke2Index=playersList.indexOf(poke2); int poke3Index=playersList.indexOf(poke3); int poke4Index=playersList.indexOf(poke4); if (poke1Index>poke2Index){ oneMax=poke1Index; System.out.println("玩家"+playersList.get(0).name+" 最大的手牌为"+poke1.kind+poke1.num); }else { oneMax=poke2Index; System.out.println("玩家"+playersList.get(0).name+" 最大的手牌为"+poke2.kind+poke2.num); } if (poke3Index>poke4Index){ twoMax=poke3Index; System.out.println("玩家"+playersList.get(0).name+" 最大的手牌为"+poke3.kind+poke3.num); }else { twoMax=poke4Index; System.out.println("玩家"+playersList.get(1).name+" 最大的手牌为"+poke4.kind+poke4.num); } System.out.println("——比赛结果为——"); if (oneMax>twoMax){ System.out.println("玩家"+playersList.get(0).name+"胜出"); } else { System.out.println("玩家"+playersList.get(1).name+"胜出"); } } public static void main(String[] args) { MainTest mt=new MainTest(); mt.PokeBuild(); mt.PokeRandom(); mt.ManBuilde(); mt.GivePoke(); mt.PokeCompare(); } }
为什么我把你的代码运行的时候,通过hold集合调用不到poke类型的kind和num啊?
咸鱼点赞
Java入门第三季
409787 学习 · 4340 问题
相似问题