Java之简易扑克游戏
2016-08-04 21:07
441 查看
package cardGame; /** * 扑克牌类,用来储存扑克牌 */ public class Card { private String color; private String cardnum; public static String[] color_name ={ new String("黑头"), new String("红头"), new String("梅花"), new String("方片")}; public static String[] num_name = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; /** * 扑克牌构造器 */ public Card(){ } public Card(String color, String cardnum) { this.color = color; this.cardnum = cardnum; } /** * 获取color属性 */ public String getColor() { return color; } /** * 获取cardnum属性 */ public String getCardnum() { return cardnum; } }
package cardGame; /** * 玩家类,用来记录玩家的信息 */ public class Player { private String id; private String name; public Player(){ } public Player(String id,String name){ this.id=id; this.name=name; } public String getId(){ return id; } public String getName(){ return name; } }
package cardGame; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Scanner; /** * 打扑克牌类 * 1.实现创建一副牌的功能 * 2.实现随机发牌功能 * 3.实现判定输赢功能 */ public class PlayGame extends Thread { // Card类型的List用来储存扑克牌 public List<Card> CardList = new ArrayList<Card>(); // 用来储存玩家信息 public List<Player> PlayerList = new ArrayList<Player>(); // 用来储存玩家手中的牌 public List<Card> playCardList = new ArrayList<Card>(); /** * 创建两个玩家的方法 */ @SuppressWarnings("resource") public void CreatPlayer() { System.out.println("输入玩家信息"); Scanner input = new Scanner(System.in); int i = 1; while (i < 3) { System.out.println("请输入第" + i + "位玩家的ID和姓名:"); System.out.println("输入ID:"); String id = input.next(); System.out.println("输入姓名:"); String name = input.next(); PlayerList.add(new Player(id, name)); i++; } } /** * 实现创建一副扑克牌的方法 */ public void CreatCard() { System.out.println("创建扑克牌!"); for (int i = 0; i < 4; i++) for (int j = 0; j < 13; j++) CardList.add(new Card(Card.color_name[i], Card.num_name[j])); System.out.println("正在创建扑克牌..."); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("扑克牌创建成功!"); } /** * 实现随机发牌的方法 */ public void dealCard() { System.out.println("开始洗牌..."); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("洗牌结束,开始发牌!每位玩家依次发两张牌!"); System.out.println("开始发牌..."); Random random = new Random(); int m, n; for (int i = 0; i < 4; i++) { do { m = random.nextInt(4); n = random.nextInt(13); } while (playCardList.contains(new Card(Card.color_name[m], Card.num_name ))); playCardList.add(new Card(Card.color_name[m], Card.num_name )); System.out.println("玩家:" + PlayerList.get(i % 2).getName() + "拿牌"); } System.out.println("发牌结束!"); } /** * 实现游戏规则的方法 */ public void PlayGameRule() { int max1 = 0, max2 = 0, min1 = 0, min2 = 0; int k=0,r=1; for (int i = 0; i < 13; i++) { if (playCardList.get(0).getCardnum().equals(Card.num_name[i])) max1 = i; if (playCardList.get(1).getCardnum().equals(Card.num_name[i])) max2 = i; if (playCardList.get(2).getCardnum().equals(Card.num_name[i])) min1 = i; if (playCardList.get(3).getCardnum().equals(Card.num_name[i])) min2 = i; } if(max1<min1){ max1=min1; k=2; } if(max2<min2){ max2=min2; r=3; } System.out.println("开始游戏!"); System.out.println("玩家:"+PlayerList.get(0).getName() +"最大的手牌为:"+playCardList.get(k).getColor() +playCardList.get(k).getCardnum()); System.out.println("玩家:"+PlayerList.get(1).getName() +"最大的手牌为:"+playCardList.get(r).getColor() +playCardList.get(r).getCardnum()); if(max1>max2) System.out.println("玩家:"+PlayerList.get(0).getName()+"获胜!"); else if(max1==max2){ int m=0,n=0; for(int i=0;i<4;i++){ if(playCardList.get(k).getColor().equals(Card.color_name[i])) m=i; if(playCardList.get(r).getColor().equals(Card.color_name[i])) n=i; } if(m<n) System.out.println("玩家:"+PlayerList.get(0).getName()+"获胜!"); else if(m>n) System.out.println("玩家:"+PlayerList.get(1).getName()+"获胜!"); else System.out.println("游戏出现异常!!!"); } else System.out.println("玩家:"+PlayerList.get(1).getName()+"获胜!"); System.out.println("玩家各自的手牌为:"); System.out.println(PlayerList.get(0).getName()+":["+playCardList.get(0).getColor() +playCardList.get(0).getCardnum()+","+playCardList.get(2).getColor() +playCardList.get(2).getCardnum()+"]"); System.out.println(PlayerList.get(1).getName()+":["+playCardList.get(1).getColor() +playCardList.get(1).getCardnum()+","+playCardList.get(3).getColor() +playCardList.get(3).getCardnum()+"]"); } /** * * @param args */ public static void main(String[] args) { PlayGame playgame = new PlayGame(); playgame.CreatCard(); playgame.CreatPlayer(); playgame.dealCard(); playgame.PlayGameRule(); } }
相关文章推荐
- Java游戏开发组件LGame简易测试版发布(版本号:0.1.5)
- Java游戏开发组件LGame简易测试版发布(版本号:0.2.0)
- Java游戏开发组件LGame简易测试版发布(版本号:0.1.0)
- java自学笔记13:简易扑克牌游戏
- 小白求大神帮忙看看这个空指针异常!!改来改去都不对!!要哭了...简易扑克牌游戏....
- Java实现 扑克24点游戏src
- 简易扑克游戏 新手来报道
- 11、Java入门-简易扑克牌游戏
- Java学习-----简易双色球彩票游戏
- Java实现简易扑克牌游戏
- Java游戏开发组件LGame简易测试版发布(版本号:0.1.5)
- java实现--简易扑克牌游戏
- 简易桌面五子棋对战游戏(java实现)
- JAVA入门之简易扑克牌游戏
- Java入门第三季-综合实战:简易扑克牌游戏
- java简易扑克牌游戏,慕课第三季作业
- Java游戏开发组件LGame简易测试版发布(版本号:0.1.0)
- java编写简易扑克牌游戏
- 简易扑克游戏(简单的用集合实现)
- JAVA简易扑克牌游戏