java 小项目:简单扑克牌游戏
2015-05-27 05:44
387 查看
项目要求
1>新建两个玩家
2>创建扑克牌,洗牌
3>发牌,每个玩家没人拿两张,比较大小
4>比较规则:两个玩家选出各种最大的牌,进行游戏,先比较点数大小,点数大的获胜,点数相同则比较花色:黑桃>红心>梅花>方块
5>输出要求:结束时分别输出玩家的手牌情况。
运行结果截图:
Java源码:
Card类:
Game类:
Player类:
体会:主要应用Java泛型解决,使用Random类和泛型生成随机扑克牌以及实现随机发牌以及手牌比较
项目源码:https://github.com/gannyee/Easy-Game-Cards-Compare
1>新建两个玩家
2>创建扑克牌,洗牌
3>发牌,每个玩家没人拿两张,比较大小
4>比较规则:两个玩家选出各种最大的牌,进行游戏,先比较点数大小,点数大的获胜,点数相同则比较花色:黑桃>红心>梅花>方块
5>输出要求:结束时分别输出玩家的手牌情况。
运行结果截图:
Java源码:
Card类:
package com.card; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; public class Card { private String number; private String color; /** * Create a pair of new cards * @return */ public ArrayList<Card> createCard(){ String[] carNumber = new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; String[] carColor = new String[]{"方块","红心","梅花","黑桃"}; ArrayList<Card> newCards = new ArrayList<Card>(); //Create a pair of new cards for(int i = 0;i < carColor.length;i ++){ for(int j = 0;j < carNumber.length;j ++){ // card.id = i; Card card = new Card(); card.color = carColor[i]; card.number = carNumber[j]; newCards.add(card); } } return newCards; } /** * show the new cards * @return */ public String[] getNewCards(){ String[] newCardGroup = new String[createCard().size()]; for(int i = 0;i < createCard().size();i ++){ newCardGroup[i] = createCard().get(i).color +createCard().get(i).number ; } return newCardGroup; } /** * Create random cards * @return */ public String[] RandomCard(){ Random random = new Random(); String[] cardsArray = getNewCards(); String swapCard = null; for(int i = 0;i < cardsArray.length;i ++){ int index = random.nextInt(cardsArray.length); swapCard = cardsArray[i]; cardsArray[i] = cardsArray[index]; cardsArray[index] = swapCard; } return cardsArray; } }
Game类:
package com.game; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Random; import java.util.Scanner; import com.card.Card; import com.player.Player; public class Game { public static void main(String[] args) { // Create new Card class Card card = new Card(); Player[] player = new Player[2]; Scanner input = new Scanner(System.in); System.out.println("**********开始创建扑克牌**********"); System.out.println("**********扑克牌创建成功**********"); System.out.println(Arrays.toString(card.getNewCards())); System.out.println("**********开始洗牌**********"); String[] cardsRandom = card.RandomCard(); System.out.println("**********洗牌结束**********"); System.out.println("**********创建玩家**********"); //Create players for(int i = 0; i < player.length;i ++){ System.out.println("请输入第" + (i+1) + "玩家的ID和姓名"); System.out.println("请输入ID:"); int id = input.nextInt(); System.out.println("请输入姓名:"); String name = input.next(); Player player1 = new Player(id,name); player[i] = player1; } //Show players' name for(int i = 0;i < player.length;i ++) System.out.println("*****欢迎玩家:" + player[i].getName()); System.out.println("**********开始发牌**********"); Random random = new Random(); int index; for(int i = 0;i < 4;i ++){ System.out.println("*****玩家: " + player[i % 2].getName() + " 拿牌"); index = random.nextInt(cardsRandom.length); player[i % 2].setCardInfo(cardsRandom[index]); } System.out.println("**********发牌结束**********"); System.out.println("**********开始游戏**********"); String[] cardsComp = new String[2]; for(int i = 0;i < player.length;i ++){ cardsComp[i] = player[i].maxCard(); System.out.println("玩家:" + player[i].getName() + "最大的手牌为: " + player[i].maxCard()); } int result = maxCard(cardsComp); if(result == 1) System.out.println("********玩家 " + player[0].getName() + "获胜"); else if(result == -1) System.out.println("********玩家 " + player[1].getName() + "获胜"); else System.out.println("********玩家 " + player[1].getName() + "和玩家 " + "手牌一样大,没有输赢"); System.out.println("**********玩家的手牌为:"); for(int i = 0;i < player.length;i ++) System.out.println(player[i].getName() + ":[ " + player[i].getCardInfo().get(0) + " , "+ player[i].getCardInfo().get(1) + " ]"); } public static int maxCard(String[] cards){ Map<String, Integer> cardCompare = new HashMap<String, Integer>(); cardCompare.put("梅花", 4); cardCompare.put("黑桃", 3); cardCompare.put("红心", 2); cardCompare.put("方片", 1); int winer; int a = 0; int b = 0; a = transfer(cards[0]); b = transfer(cards[1]); if(a > b) winer = 1; else if(a < b) winer = -1; else{ String card1 = cards[0].substring(0,2); String card2 = cards[1].substring(0,2); if(cardCompare.get(card1) > cardCompare.get(card2)) winer = 1; else if(cardCompare.get(card1) < cardCompare.get(card2)) winer = -1; else winer = 0; } return winer; } public static int transfer(String str){ int a = 0; if(str.substring(2).equals("J")) a = 11; else if(str.substring(2).equals("Q")) a = 12; else if(str.substring(2).equals("K")) a = 13; else if(str.substring(2).equals("A")) a = 1; else a = Integer.parseInt(str.substring(2)); return a; } }
Player类:
package com.player; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Player { private int id; private String name; ArrayList<String> cardInfo = new ArrayList<String>(); public Player(int id, String name){ this.id = id; this.name = name; } public ArrayList<String> getCardInfo() { return cardInfo; } public void setCardInfo(String cardInfo) { this.cardInfo.add(cardInfo); } public String maxCard(){ Map<String, Integer> cardCompare = new HashMap<String, Integer>(); cardCompare.put("梅花", 4); cardCompare.put("黑桃", 3); cardCompare.put("红心", 2); cardCompare.put("方片", 1); ArrayList<String> cards = getCardInfo(); String maxCard = null; int a ; int b ; a = transfer(cards.get(0)); b = transfer(cards.get(1)); if(a > b) maxCard = cards.get(0); else if(a < b) maxCard = cards.get(1); else{ String card1 = cards.get(0).substring(0,2); String card2 = cards.get(1).substring(0,2); if(cardCompare.get(card1) > cardCompare.get(card2)) maxCard = cards.get(0); else if(cardCompare.get(card1) < cardCompare.get(card2)) maxCard = cards.get(1); else maxCard = cards.get(0); } return maxCard; } public int transfer(String str){ int a; if(str.substring(2).equals("J")) a = 11; else if(str.substring(2).equals("Q")) a = 12; else if(str.substring(2).equals("K")) a = 13; else if(str.substring(2).equals("A")) a = 1; else a = Integer.parseInt(str.substring(2)); return a; } public String getName() { return name; } }
体会:主要应用Java泛型解决,使用Random类和泛型生成随机扑克牌以及实现随机发牌以及手牌比较
项目源码:https://github.com/gannyee/Easy-Game-Cards-Compare
相关文章推荐
- Java学习笔记(一)用Eclipse把一个简单游戏项目生成可执行的JAR文件
- java简单项目练习3
- java项目编程简单项目练习4
- 一个简单的java web 项目
- java 简单的扫雷游戏
- java 简单猜数字游戏
- Java上传文件简单小项目
- java猜数字,一个简单的游戏
- Ant—使用Ant构建简单Java项目(一)
- JAVA项目中发布WebService服务——简单实例
- Java的开源项目:简单介绍Log4J的使用
- 简单实现美空军也得玩的游戏-谁能坚持超过50秒?(Java) 推荐
- JAVA简单猜拳游戏(一)
- JAVA简单猜拳游戏(二)
- JAVA简单猜拳游戏(三)
- WebSphere发布简单的java项目
- Ant生成一个简单的Java项目
- Ant生成一个简单的Java项目
- 作业——java编写一个简单的移动方块游戏
- 项目管理: Maven 让事情变得简单(转http://www.ibm.com/developerworks/cn/java/j-maven/)