java简易扑克牌游戏,慕课第三季作业
2017-03-26 21:02
585 查看
要求:
1、创建牌,分四个花色,每个花色13张,没有大小王
2、创建玩家,玩家有ID和姓名,每个人两张牌
3、洗牌,打乱牌序 利用Collections.shuffle方法,加个随机数循环多次洗牌,保证不重复。
4、发牌,发前四张
5、游戏规则:每个人选出两张中最大的进行比较,大的胜利(若大小相等则比较花色)
过程:
1、分为Card类,Player类,Game主类
2、Game类中包含CreateCards();CreatePlayers();ChangeCards();SendCards();Gameis();Compare(Caed x,Card y);这些方法
Card类:
Player类:
Game类:
1、创建牌,分四个花色,每个花色13张,没有大小王
2、创建玩家,玩家有ID和姓名,每个人两张牌
3、洗牌,打乱牌序 利用Collections.shuffle方法,加个随机数循环多次洗牌,保证不重复。
4、发牌,发前四张
5、游戏规则:每个人选出两张中最大的进行比较,大的胜利(若大小相等则比较花色)
过程:
1、分为Card类,Player类,Game主类
2、Game类中包含CreateCards();CreatePlayers();ChangeCards();SendCards();Gameis();Compare(Caed x,Card y);这些方法
Card类:
package com.card; public class Card { private String color; private String number; public Card(){ } //构造器,把传进来的花色和大小传给本类的花色和属性 public Card(String color,String number){ this.color=color; this.number=number; } //返回花色 public String getColor() { return color; } //返回大小 public String getNumber() { return number; } }
Player类:
package com.card; public class Player { private String id; private String name; //空构造器 public Player(){ } public Player(String id,String name){ this.id=id; this.name=name; } //返回id public String getId() { return id; } //返回姓名 public String getName() { return name; } }
Game类:
package com.card; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Scanner; import java.util.Collections; //创建牌、玩家 CreateCards() CreatePlayers() //洗牌 打乱顺序 ChangeCards() //发牌 顺序发牌 SendCards() //判断输赢 Gameis() public class Game { public List<Card> CardList= new ArrayList<Card>(); public List<Player> PlayerList=new ArrayList<Player>(); public List<Card> nowCardList=new ArrayList<Card>();//当前玩家拿的牌 public String[] color={"黑桃","红桃","梅花","方片"}; public String[] number={"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; public void CreateCards(){ System.out.println("----开始创建扑克牌----"); System.out.println("----正在创建扑克牌...."); for (int i = 0; i < 4; i++) for (int j = 0; j < 13; j++) CardList.add(new Card(color[i], number[j])); System.out.println("----完成创建扑克牌----"); } public void CreatePlayers(){ System.out.println("请输入玩家的信息"); Scanner input= new Scanner(System.in); for(int i=1;i<3;i++){ System.out.println("请输入第"+i+"名玩家的ID"); String id=input.next(); System.out.println("请输入第"+i+"名玩家的名字"); String name=input.next(); PlayerList.add(new Player(id,name)); } } public void ChangeCards(){ System.out.println("----开始洗牌...."); Random ran =new Random(); int x=ran.nextInt(10); for(int i=0;i<x;i++) Collections.shuffle(CardList);//引用Collections类中的shuffe方法打乱顺序 System.out.println("----洗牌结束----"); } public void SendCards(){ System.out.println("----开始发牌----"); for(int i=0;i<4;i++){ nowCardList.add(new Card(color[i],number[i])); System.out.println("玩家"+PlayerList.get(i%2).getName()+"拿牌"+nowCardList.get(i).getColor()+nowCardList.get(i).getNumber()); } System.out.println("----发牌结束----"); } public int Compare(Card x,Card y){ int local1=0,local2=0,last=0; int local3=0,local4=0; for(int i=0;i<13;i++){ if(x.getNumber().equals(number[i])) local1=i;//卡牌1的数字 } for(int i=0;i<4;i++){ if(x.getColor().equals(color[i])) local3=i; } for(int i=0;i<13;i++){ if(y.getNumber().equals(number[i])) local2=i;//卡牌2的数字 } for(int i=0;i<4;i++){ if(y.getColor().equals(color[i])) local4=i; } if(local1<local2){ return 2; }else if(local1>local2){ return 1; }else{ if(local3<local4){ return 2; }else{ return 1; } } } public void Gameis(){ List<Card> maxCardList= new ArrayList<Card>(); int last1=0; last1=Compare(nowCardList.get(0),nowCardList.get(2)); if(last1==1){ maxCardList.add(nowCardList.get(0)); }else if(last1==2){ maxCardList.add(nowCardList.get(2)); } System.out.println("玩家"+PlayerList.get(0).getName()+"最大的手牌是"+maxCardList.get(0).getColor()+maxCardList.get(0).getNumber()); int last2=0; last2=Compare(nowCardList.get(1),nowCardList.get(3)); if(last2==1){ maxCardList.add(nowCardList.get(1)); }else{ maxCardList.add(nowCardList.get(3)); } System.out.println("玩家"+PlayerList.get(1).getName()+"最大的手牌是"+maxCardList.get(1).getColor()+maxCardList.get(1).getNumber()); int last3=0; last3=Compare(maxCardList.get(0),maxCardList.get(1)); if(last1==1){ System.out.println("玩家"+PlayerList.get(0).getName()+"获胜"); }else{ System.out.println("玩家"+PlayerList.get(1).getName()+"获胜"); } } public static void main(String[] args) { // TODO Auto-generated method stub Game playgame=new Game(); playgame.CreateCards(); playgame.CreatePlayers(); playgame.ChangeCards(); playgame.SendCards(); playgame.Gameis(); } }
相关文章推荐
- Java入门第三季-综合实战:简易扑克牌游戏
- java实现--简易扑克牌游戏
- java编写简易扑克牌游戏
- java自学笔记13:简易扑克牌游戏
- Java实现简易扑克牌游戏
- 11、Java入门-简易扑克牌游戏
- JAVA简易扑克牌游戏
- JAVA入门之简易扑克牌游戏
- [java]游戏开发攻略—黑杰克扑克牌
- Java游戏开发组件LGame简易测试版发布(版本号:0.1.5)
- java 小项目:简单扑克牌游戏
- 作业——java编写一个简单的移动方块游戏
- 【算法】C语言实现简易的扑克牌游戏
- 慕课网Java扑克牌大作业
- 慕课java第三季-异常与异常处理:借书系统
- Java游戏开发组件LGame简易测试版发布(版本号:0.1.0)
- 简易桌面五子棋对战游戏(java实现)
- 慕课网简易扑克牌游戏
- Java游戏开发组件LGame简易测试版发布(版本号:0.2.0)
- Java之简易扑克游戏