踽踽行
2015-05-17 17:03
package com.pokergame; public class Poker implements Comparable<Poker> { private String number;//扑克的点数 private String color;//花色 private int value; public Poker(int value){ this.value=value; setNumCol(); } /** * 102-110代表方片2-10,111-114代表方片J-A * 202-210代表梅花2-10,211-214代表梅花J-A * 302-310代表红桃2-10,311-314代表红桃J-A * 402-410代表黑桃2-10,411-414代表黑桃J-A */ public void setNumCol(){ switch(value/100){ case 1:color="方片"; break; case 2:color="梅花"; break; case 3:color="红桃"; break; case 4:color="黑桃"; } switch(value%100){ case 2:number="2"; break; case 3:number="3"; break; case 4:number="4"; break; case 5:number="5"; break; case 6:number="6"; break; case 7:number="7"; break; case 8:number="8"; break; case 9:number="9"; break; case 10:number="10"; break; case 11:number="J"; break; case 12:number="Q"; break; case 13:number="K"; break; case 14:number="A"; } } @Override public int compareTo(Poker o) {//单张牌比较的方法 // TODO Auto-generated method stub if(value==o.getValue()){ return 0; } if(value%100>o.getValue()%100){ return 1; }else if(value%100<o.getValue()%100){ return -1; }else{ if(value/100>o.getValue()/100){ return 1; }else{ return -1; } } } /** * get、set */ public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } }
package com.pokergame; import java.util.*; public class Player { private int id; private String name; List<Poker> pokerCatch; public Player(int id,String name){ this.id=id; this.name=name; pokerCatch=new ArrayList<Poker>(); } /** * 判断手牌类型的方法 */ public void pokerType(List<Poker> pokerCatch){ Collections.sort(pokerCatch); //暂时还没想好。。。 } /** * get和set * @return */ public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Poker> getPokerCatch() { return pokerCatch; } public void setPokerCatch(List<Poker> pokerCatch) { this.pokerCatch = pokerCatch; } }
package com.pokergame; import java.util.*; public class PokerGame { private List<Poker> pokers; private List<Player> players; Scanner input=new Scanner(System.in); public PokerGame(){//创建牌组 pokers=new ArrayList<Poker>(); int[] p={102,103,104,105,106,107,108,109,110,111,112,113,114, 202,203,204,205,206,207,208,209,210,211,212,213,214, 302,303,304,305,306,307,308,309,310,311,312,313,314, 402,403,404,405,406,407,408,409,410,411,412,413,414}; for(int i=0;i<52;i++){ Poker poke=new Poker(p[i]); pokers.add(poke); } System.out.println("-------------------牌组创建完毕-------------------"); } /** * 开始游戏 */ public void run(){ flag:while(true){ createPlayer();//创建玩家 System.out.println("-------------------洗牌中-------------------"); Collections.shuffle(pokers);//洗牌 distribute();//发牌 consequence();//比大小 System.out.println("你想继续体验这个精致的游戏吗?"); System.out.println("是: 1\t否: 2"); while(true){ try{ int num=input.nextInt(); if(num==2){ break flag; }else if(num==1){ break; }else{ System.out.println("您输入的命令有误,请重新输入!"); input.next(); } }catch(Exception e){ System.out.println("您输入的命令有误,请重新输入!"); input.next(); } } } System.out.println("游戏愉快,再见。"); } /** * 创建玩家 */ public void createPlayer(){ players=new ArrayList<Player>(); for(int i=0;i<2;i++){ int id; String name; System.out.println("请输入玩家的ID:"); while(true){ try{ id=input.nextInt(); break; }catch(Exception e){ System.out.println("您输入的ID有误,请重新输入:"); input.next(); } } System.out.println("请输入玩家的用户名:"); while(true){ try{ name=input.next(); break; }catch(Exception e){ System.out.println("您输入的用户名有误,请重新输入:"); input.next(); } } players.add(new Player(id,name)); } System.out.println("-------------------玩家创建完毕!-------------------"); System.out.println("欢迎玩家"+players.get(0).getId()+": "+players.get(0).getName()); System.out.println("欢迎玩家"+players.get(1).getId()+": "+players.get(1).getName()); } /** * 发牌 */ public void distribute(){ System.out.println("-------------------发牌,请等待-------------------"); for(int i=0;i<6;i++){ players.get(0).pokerCatch.add(pokers.get(i)); i++; players.get(1).pokerCatch.add(pokers.get(i)); } } /** * 比大小结束游戏 */ public void consequence(){ System.out.println("-------------------游戏结束-------------------"); Collections.sort(players.get(0).pokerCatch); Collections.sort(players.get(1).pokerCatch); System.out.println("------------"+players.get(0).getId()+"号玩家的牌从小到大依次是:"+"------------"); for(Poker poke:players.get(0).pokerCatch){ System.out.println(poke.getColor()+poke.getNumber()); } System.out.println("------------"+players.get(1).getId()+"号玩家的牌从小到大依次是:"+"------------"); for(Poker poke:players.get(1).pokerCatch){ System.out.println(poke.getColor()+poke.getNumber()); } for(int i=2;i>=0;i--){ if(players.get(0).pokerCatch.get(i).compareTo(players.get(1).pokerCatch.get(i))>0){ System.out.println("获得胜利的是:"+players.get(0).getName()); break; }else if(players.get(0).pokerCatch.get(i).compareTo(players.get(1).pokerCatch.get(i))<0){ System.out.println("获得胜利的是:"+players.get(1).getName()); break; }else{ if(i>0){ continue; }else{ System.out.println("两家一样大,请重新比过。"); } } } } public static void main(String[] args) { System.out.println("*********欢迎来到不完整版炸金花!*********"); PokerGame pokerGame=new PokerGame(); pokerGame.run(); } }
不可能用两家一样大的吧,
写的很好了,学习了!btw,不会玩炸金花,所以帮不到你了。
Java入门第三季
409770 学习 · 4388 问题
相似问题