Flask接口签名sign原理与实例代码浅析
215
2022-10-29
Java实现简易扑克牌游戏的完整实例
功能描述
1、创建扑克牌。包括四种花色(黑桃,红心,梅花,方块),十三种点数(2-10,J,Q,Khttp://),不考虑大小王。
2、创建两个玩家。包括玩家id、姓名、手牌等集合,手牌为扑克牌的集合。
3、洗牌。将创建好的扑克牌打乱。
4、发牌。将洗牌之后的扑克牌集合,从第一张开始,发给两个玩家,安装一人 一张的方式,每人发两张。
5、游戏。比较两名玩家手中的扑克牌。规则为:去两名玩家手上点数最大的牌进行比较,点数大的赢,若点数一样大,就按照色花进行比较。
难点分析:
1、洗牌,如何将扑克牌进行打乱。(主要知识点Random,list.contains())
2、扑克牌如何进行大小比较。(主要知识点collections.sort() , comparable)
实现代码
Card.java(扑克牌类)
package com.betty.dome2;
public class Card implements Comparable
// 牌面
private String num;
// 花色
private String name;
public Card(){
}
public Card(String num,String name){
this.num = num;
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((num == null) ? 0 : num.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;http://
if (getClass() != obj.getClass())
return false;
Card other = (Card) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (num == null) {
if (other.num != null)
return fahttp://lse;
} else if (!num.equals(other.num))
return false;
return true;
}
// 获取牌面大小
private Integer getNumValue(String num){
switch(num){
case "A": return 12;
case "2": return 13;
case "3": return 1;
case "4": return 2;
case "5": return 3;
case "6": return 4;
case "7": return 5;
case "8": return 6;
case "9": return 7;
case "10": return 8;
case "J": return 9;
case "Q": return 10;
case "K": return 11;
}
return -1;
}
// 获取花色大小
private Integer getNameValue(String name){
switch(name){
case "黑桃": return 4;
case "红心": return 3;
case "梅花": return 2;
case "方块": return 1;
}
return -1;
}
@Override
public int compareTo(Card card) {
// 如果牌面相同就看花色
int numCompare = getNumValue(this.num).compareTo(getNumValue(card.num));
if(numCompare == 0){
return getNameValue(this.name).compareTo(getNameValue(card.name));
}
return numCompare;
}
}
Player.java(角色类)
package com.betty.dome2;
import java.util.ArrayList;
import java.util.List;
public class Player {
// 角色id
private Integer ID;
// 角色姓名
private String name;
// 角色获得的牌
List
public Player(){
}
public Player(Integer ID,String name){
this.ID = ID;
this.name = name;
this.cardList = new ArrayList
}
public Integer getID() {
return ID;
}
public void setID(Integer iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Welcome.java(主程序)
package com.betty.dome2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class Welcome {
String[] nums = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
String[] names = {"黑桃","红心","梅花","方块"};
List
List
List
public Welcome(){
this.cardStartList= new ArrayList
this.cardEndList = new ArrayList
this.playerList = new ArrayList
}
// 创建扑克牌
void createCard(){
System.out.println("-----------创建扑克牌---------------");
for (String name : names) {
for (String num : nums) {
cardStartList.add(new Card(num,name));
}
}
System.out.println("---------扑克牌创建成功--------------");
System.out.print("[");
for(int i=0;i Card card = cardStartList.get(i); if(i%13!=0) System.out.print(","); if((i+1)%13==1 && i!=0){ System.out.println("]"); System.out.print("["); } System.out.print(card.getName()+card.getNum()); } System.out.println("]"); } // 洗牌 void shuffleCard(){ System.out.println("-----------开始洗牌---------------"); Random random = new Random(); Integer listSize = cardStartList.size(); for(int i=0;i Card cd = new Card(); do{ cd = cardStartList.get(random.nextInt(listSize)); }while(cardEndList.contains(cd)); cardEndList.add(cd); } System.out.println("-----------洗牌结束---------------"); } // 输入角色姓名 @SuppressWarnings("resource") private String getName() { System.out.print("输入姓名:"); Scanner input = new Scanner(System.in); return input.next(); } // 输入角色id && 输入整数判断 @SuppressWarnings("resource") private Integer getId() { Scanner input = new Scanner(System.in); Integer id; while(true){ try { System.out.print("输入ID:"); id = input.nextInt(); break; } catch (Exception e) { System.out.println("请输入整数"); input = new Scanner(System.in); } } return id; } // 创建角色 private void createPlayers() { Integer playerNum = 2; for(int i=0;i playerList.add(new Player(getId(), getName())); } for (Player player : playerList) { System.out.println("----欢迎玩家 :" + player.getName()); } } // 给角色发牌 private void sendCard() { System.out.println("-----------开始发牌---------------"); int cardSendNum = 2,index = 0; for(int i=0;i for(int j=0;j Player player = playerList.get(j); player.cardList.add(cardEndList.get(index++)); System.out.println("----玩家 :" + player.getName()+" 拿牌"); } } System.out.println("-----------发牌结束---------------"); } // 游戏开始 private void playGame() { System.out.println("-----------游戏开始---------------"); Card maxCard = new Card("0","方块"); Player winner = new Player(); for(int i=0;i Player player = playerList.get(i); List Collections.sort(cardList); Card card = cardList.get(cardList.size()-1); if(maxCard.compareTo(card)<0){ maxCard = card; winner = player; } System.out.println("----玩家:"+ player.getName() + "最大的牌为:" + card.getName()+ card.getNum()); } System.out.println("-----------玩家:"+winner.getName()+"获胜----------"); System.out.println("玩家各自的手牌为:"); for(int j=0;j Player player = playerList.get(j); System.out.print("玩家 :" + player.getName()+"["); for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
Card card = cardStartList.get(i);
if(i%13!=0) System.out.print(",");
if((i+1)%13==1 && i!=0){
System.out.println("]");
System.out.print("[");
}
System.out.print(card.getName()+card.getNum());
}
System.out.println("]");
}
// 洗牌
void shuffleCard(){
System.out.println("-----------开始洗牌---------------");
Random random = new Random();
Integer listSize = cardStartList.size();
for(int i=0;i Card cd = new Card(); do{ cd = cardStartList.get(random.nextInt(listSize)); }while(cardEndList.contains(cd)); cardEndList.add(cd); } System.out.println("-----------洗牌结束---------------"); } // 输入角色姓名 @SuppressWarnings("resource") private String getName() { System.out.print("输入姓名:"); Scanner input = new Scanner(System.in); return input.next(); } // 输入角色id && 输入整数判断 @SuppressWarnings("resource") private Integer getId() { Scanner input = new Scanner(System.in); Integer id; while(true){ try { System.out.print("输入ID:"); id = input.nextInt(); break; } catch (Exception e) { System.out.println("请输入整数"); input = new Scanner(System.in); } } return id; } // 创建角色 private void createPlayers() { Integer playerNum = 2; for(int i=0;i playerList.add(new Player(getId(), getName())); } for (Player player : playerList) { System.out.println("----欢迎玩家 :" + player.getName()); } } // 给角色发牌 private void sendCard() { System.out.println("-----------开始发牌---------------"); int cardSendNum = 2,index = 0; for(int i=0;i for(int j=0;j Player player = playerList.get(j); player.cardList.add(cardEndList.get(index++)); System.out.println("----玩家 :" + player.getName()+" 拿牌"); } } System.out.println("-----------发牌结束---------------"); } // 游戏开始 private void playGame() { System.out.println("-----------游戏开始---------------"); Card maxCard = new Card("0","方块"); Player winner = new Player(); for(int i=0;i Player player = playerList.get(i); List Collections.sort(cardList); Card card = cardList.get(cardList.size()-1); if(maxCard.compareTo(card)<0){ maxCard = card; winner = player; } System.out.println("----玩家:"+ player.getName() + "最大的牌为:" + card.getName()+ card.getNum()); } System.out.println("-----------玩家:"+winner.getName()+"获胜----------"); System.out.println("玩家各自的手牌为:"); for(int j=0;j Player player = playerList.get(j); System.out.print("玩家 :" + player.getName()+"["); for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
Card cd = new Card();
do{
cd = cardStartList.get(random.nextInt(listSize));
}while(cardEndList.contains(cd));
cardEndList.add(cd);
}
System.out.println("-----------洗牌结束---------------");
}
// 输入角色姓名
@SuppressWarnings("resource")
private String getName() {
System.out.print("输入姓名:");
Scanner input = new Scanner(System.in);
return input.next();
}
// 输入角色id && 输入整数判断
@SuppressWarnings("resource")
private Integer getId() {
Scanner input = new Scanner(System.in);
Integer id;
while(true){
try {
System.out.print("输入ID:");
id = input.nextInt();
break;
} catch (Exception e) {
System.out.println("请输入整数");
input = new Scanner(System.in);
}
}
return id;
}
// 创建角色
private void createPlayers() {
Integer playerNum = 2;
for(int i=0;i playerList.add(new Player(getId(), getName())); } for (Player player : playerList) { System.out.println("----欢迎玩家 :" + player.getName()); } } // 给角色发牌 private void sendCard() { System.out.println("-----------开始发牌---------------"); int cardSendNum = 2,index = 0; for(int i=0;i for(int j=0;j Player player = playerList.get(j); player.cardList.add(cardEndList.get(index++)); System.out.println("----玩家 :" + player.getName()+" 拿牌"); } } System.out.println("-----------发牌结束---------------"); } // 游戏开始 private void playGame() { System.out.println("-----------游戏开始---------------"); Card maxCard = new Card("0","方块"); Player winner = new Player(); for(int i=0;i Player player = playerList.get(i); List Collections.sort(cardList); Card card = cardList.get(cardList.size()-1); if(maxCard.compareTo(card)<0){ maxCard = card; winner = player; } System.out.println("----玩家:"+ player.getName() + "最大的牌为:" + card.getName()+ card.getNum()); } System.out.println("-----------玩家:"+winner.getName()+"获胜----------"); System.out.println("玩家各自的手牌为:"); for(int j=0;j Player player = playerList.get(j); System.out.print("玩家 :" + player.getName()+"["); for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
playerList.add(new Player(getId(), getName()));
}
for (Player player : playerList) {
System.out.println("----欢迎玩家 :" + player.getName());
}
}
// 给角色发牌
private void sendCard() {
System.out.println("-----------开始发牌---------------");
int cardSendNum = 2,index = 0;
for(int i=0;i for(int j=0;j Player player = playerList.get(j); player.cardList.add(cardEndList.get(index++)); System.out.println("----玩家 :" + player.getName()+" 拿牌"); } } System.out.println("-----------发牌结束---------------"); } // 游戏开始 private void playGame() { System.out.println("-----------游戏开始---------------"); Card maxCard = new Card("0","方块"); Player winner = new Player(); for(int i=0;i Player player = playerList.get(i); List Collections.sort(cardList); Card card = cardList.get(cardList.size()-1); if(maxCard.compareTo(card)<0){ maxCard = card; winner = player; } System.out.println("----玩家:"+ player.getName() + "最大的牌为:" + card.getName()+ card.getNum()); } System.out.println("-----------玩家:"+winner.getName()+"获胜----------"); System.out.println("玩家各自的手牌为:"); for(int j=0;j Player player = playerList.get(j); System.out.print("玩家 :" + player.getName()+"["); for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
for(int j=0;j Player player = playerList.get(j); player.cardList.add(cardEndList.get(index++)); System.out.println("----玩家 :" + player.getName()+" 拿牌"); } } System.out.println("-----------发牌结束---------------"); } // 游戏开始 private void playGame() { System.out.println("-----------游戏开始---------------"); Card maxCard = new Card("0","方块"); Player winner = new Player(); for(int i=0;i Player player = playerList.get(i); List Collections.sort(cardList); Card card = cardList.get(cardList.size()-1); if(maxCard.compareTo(card)<0){ maxCard = card; winner = player; } System.out.println("----玩家:"+ player.getName() + "最大的牌为:" + card.getName()+ card.getNum()); } System.out.println("-----------玩家:"+winner.getName()+"获胜----------"); System.out.println("玩家各自的手牌为:"); for(int j=0;j Player player = playerList.get(j); System.out.print("玩家 :" + player.getName()+"["); for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
Player player = playerList.get(j);
player.cardList.add(cardEndList.get(index++));
System.out.println("----玩家 :" + player.getName()+" 拿牌");
}
}
System.out.println("-----------发牌结束---------------");
}
// 游戏开始
private void playGame() {
System.out.println("-----------游戏开始---------------");
Card maxCard = new Card("0","方块");
Player winner = new Player();
for(int i=0;i Player player = playerList.get(i); List Collections.sort(cardList); Card card = cardList.get(cardList.size()-1); if(maxCard.compareTo(card)<0){ maxCard = card; winner = player; } System.out.println("----玩家:"+ player.getName() + "最大的牌为:" + card.getName()+ card.getNum()); } System.out.println("-----------玩家:"+winner.getName()+"获胜----------"); System.out.println("玩家各自的手牌为:"); for(int j=0;j Player player = playerList.get(j); System.out.print("玩家 :" + player.getName()+"["); for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
Player player = playerList.get(i);
List
Collections.sort(cardList);
Card card = cardList.get(cardList.size()-1);
if(maxCard.compareTo(card)<0){
maxCard = card;
winner = player;
}
System.out.println("----玩家:"+ player.getName()
+ "最大的牌为:" + card.getName()+ card.getNum());
}
System.out.println("-----------玩家:"+winner.getName()+"获胜----------");
System.out.println("玩家各自的手牌为:");
for(int j=0;j Player player = playerList.get(j); System.out.print("玩家 :" + player.getName()+"["); for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
Player player = playerList.get(j);
System.out.print("玩家 :" + player.getName()+"[");
for(int i=0;i if(i!=0) System.out.print(","); System.out.print(player.cardList.get(i).getName()+ player.cardList.get(i).getNum()); } System.out.print("]\n"); } } public static void main(String[] args) { Welcome we = new Welcome(); we.createCard(); // 创建扑克牌 we.shuffleCard(); // 洗牌 we.createPlayers(); // 创建角色 we.sendCard(); // 给角色发牌 we.playGame(); // 游戏开始 } } 实现的效果图: 总结
if(i!=0) System.out.print(",");
System.out.print(player.cardList.get(i).getName()+
player.cardList.get(i).getNum());
}
System.out.print("]\n");
}
}
public static void main(String[] args) {
Welcome we = new Welcome();
we.createCard(); // 创建扑克牌
we.shuffleCard(); // 洗牌
we.createPlayers(); // 创建角色
we.sendCard(); // 给角色发牌
we.playGame(); // 游戏开始
}
}
实现的效果图:
总结
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~