Flask接口签名sign原理与实例代码浅析
289
2022-12-08
java实现简易扑克牌游戏
本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下
游戏功能描述
1、创建一副扑克牌:
包括四种花色:黑桃,红桃,梅花,方片
包括十三种点数:2-10,J,Q,K,A
2、创建两名玩家(or多名)
玩家至少要有ID,姓名,手牌等属性,手牌为扑克牌的集合
3、将创建好的扑克牌进行随机洗牌
4、从洗牌后的扑克牌的第一张开始,发给每个玩家,按照一人一张的方式,每人发两张(or多张)
5、比较两名玩家手中的扑克牌,比较规则为:取两人各自手中点数最大的牌进行比较,点数大的赢;若两人各自的点数最大的牌相等,则再按照花色比较。
代码
//Card.java
package card;
public class Card{
private String color;
private String number;
public Card(String color, String number) {
this.color = color;
this.number = number;
}
public String getColor() {
return color;
}
public String getNumber() {
return number;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Card))
return false;
Card other = (Card) obj;
if (color == null) {
if (other.color != null)
return false;
} else if (!color.equals(other.color))
return false;
if (number == null) {
if (other.number != null)
return false;
} else if (!number.equals(other.number))
return false;
return true;
}
}
//Cards.java
package cardhttp://;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Cards {
private List
//创建一副扑克牌
public Cards(){
System.out.println("-----------------创建扑克牌------------------");
String[] color = {"黑桃", "红桃", "梅花", "方片"};
String[] number = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J","Q","K", "A"};
for(int i=0;i
for(int j=0;j
list.add(new Card(color[i], number[j]));
}
System.out.println("----------------扑克牌创建成功!---------------");
}
//获取一副扑克牌
public List
return list;
}
//洗牌(打乱)
public void shufCards(){
System.out.println("----------------开始洗牌------------------------");
Collections.shuffle(list);
System.out.println("----------------洗牌结束------------------------");
}
//展示一副扑克牌
public void showCards(){
System.out.print("当前的扑克牌为:");
System.out.print("[ ");
for(int i=0;i
System.out.print(list.get(i).getColor() + list.get(i).getNumber()+ " ");
}
System.out.println(" ]");
}
}
//Player.java
package card;
import java.util.ArrayList;
import java.util.List;
public class Player {
private int id;
private String name;
private List
public Player(int id, String name){
this.id = id;
this.name = name;
}
public List
return handCards;
}
public void setHandCards(Card card) {
handCards.add(card);
}
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;
}
}
//CardComparator.java(自定义排序规则)
package card;
import java.util.Comparator;
public class CardComparator implements Comparator
@Override
public int compare(Card c1, Card c2) {
// 构建花色和牌值数组,通过比对,计算得到某张牌的价值(大小)
String[] color = {"方片", "梅花", "红桃", "黑桃"};
String[] number = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J","Q","K", "A"};
//由于比较规则是先比较牌值,如果相等再比较花色(黑红梅方),所以将牌值赋予较高的权值
int valueOfC1 = 0;
int valueOfC2 = 0;
for(int i=0;i
if(c1.getNumber().equals(number[i])) valueOfC1 += i*10;
if(c2.getNumber().equals(number[i])) valueOfC2 += i*10;
}
for(int i=0;i
if(c1.getColor().equals(color[i])) valueOfC1 += i;
if(c2.getColor().equals(color[i])) valueOfC2 += i;
}
if( valueOfC1 > valueOfC2 ) return -1;
if( valueOfC1 < valueOfC2 ) return 1;
return 0;
}
}
//PlayDemo.java
package card;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class PlayDemo {
//创建玩家
//要对玩家ID的异常处理,要求用户只能输入整数ID,否则需要重新输入
public Player setPlayer(){
int id=0;
String name="";
Scanner console = new Scanner(System.in);
boolean ready = true;
do{
try{
System.out.println("输入ID:");
id = console.nextInt();
ready = true;
}catch(Exception e){
System.out.println("请输入整数类型的ID!");
ready = fNqFmKcgDalse;
console.nextLine();
}
}while(ready==false);
System.out.println("输入姓名:");
name = console.next();
return new Player(id, name);
}
public static void main(String[] args) {
//测试简易扑克牌程序
PlayDemo game = new PlayDemo();
//(1)创建一副牌
Cards cards = new Cards();
//(2)展示新的扑克牌
cards.showCards();
//(3)洗牌
cards.shufCards();
//(4)创建玩家
System.out.println("--------------创建两个(or多个)玩家就可以开始游戏啦!-------------");
List
for(int i=0;i<2;i++)
{
System.out.println("请输入第"+(i+1)+"位玩家的ID和姓名:");
p.add(game.setPlayer());
}
for(int i=0;i
{
System.out.println("欢迎玩家:"+p.get(i).getName());
}
//(5)扑克牌比大小游戏开始啦~
int count = 0;
System.out.println("------------------开始发牌---------------------");
//设定每人分别拿两张(or多张)
for(int i=0; i<2;i++){
//玩家轮流拿牌
for(int j=0; j< p.size(); j++){
System.out.println(">玩家"+p.get(j).getName()+"拿牌");
p.get(j).setHandCards(cards.getList().get(count));
count++;
}
}
System.out.println("------------------发牌结束!--------------------");
System.out.println("------------------开始游戏 ---------------------");
for(int i=0;i
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
for(int j=0;j
list.add(new Card(color[i], number[j]));
}
System.out.println("----------------扑克牌创建成功!---------------");
}
//获取一副扑克牌
public List
return list;
}
//洗牌(打乱)
public void shufCards(){
System.out.println("----------------开始洗牌------------------------");
Collections.shuffle(list);
System.out.println("----------------洗牌结束------------------------");
}
//展示一副扑克牌
public void showCards(){
System.out.print("当前的扑克牌为:");
System.out.print("[ ");
for(int i=0;i
System.out.print(list.get(i).getColor() + list.get(i).getNumber()+ " ");
}
System.out.println(" ]");
}
}
//Player.java
package card;
import java.util.ArrayList;
import java.util.List;
public class Player {
private int id;
private String name;
private List
public Player(int id, String name){
this.id = id;
this.name = name;
}
public List
return handCards;
}
public void setHandCards(Card card) {
handCards.add(card);
}
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;
}
}
//CardComparator.java(自定义排序规则)
package card;
import java.util.Comparator;
public class CardComparator implements Comparator
@Override
public int compare(Card c1, Card c2) {
// 构建花色和牌值数组,通过比对,计算得到某张牌的价值(大小)
String[] color = {"方片", "梅花", "红桃", "黑桃"};
String[] number = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J","Q","K", "A"};
//由于比较规则是先比较牌值,如果相等再比较花色(黑红梅方),所以将牌值赋予较高的权值
int valueOfC1 = 0;
int valueOfC2 = 0;
for(int i=0;i
if(c1.getNumber().equals(number[i])) valueOfC1 += i*10;
if(c2.getNumber().equals(number[i])) valueOfC2 += i*10;
}
for(int i=0;i
if(c1.getColor().equals(color[i])) valueOfC1 += i;
if(c2.getColor().equals(color[i])) valueOfC2 += i;
}
if( valueOfC1 > valueOfC2 ) return -1;
if( valueOfC1 < valueOfC2 ) return 1;
return 0;
}
}
//PlayDemo.java
package card;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class PlayDemo {
//创建玩家
//要对玩家ID的异常处理,要求用户只能输入整数ID,否则需要重新输入
public Player setPlayer(){
int id=0;
String name="";
Scanner console = new Scanner(System.in);
boolean ready = true;
do{
try{
System.out.println("输入ID:");
id = console.nextInt();
ready = true;
}catch(Exception e){
System.out.println("请输入整数类型的ID!");
ready = fNqFmKcgDalse;
console.nextLine();
}
}while(ready==false);
System.out.println("输入姓名:");
name = console.next();
return new Player(id, name);
}
public static void main(String[] args) {
//测试简易扑克牌程序
PlayDemo game = new PlayDemo();
//(1)创建一副牌
Cards cards = new Cards();
//(2)展示新的扑克牌
cards.showCards();
//(3)洗牌
cards.shufCards();
//(4)创建玩家
System.out.println("--------------创建两个(or多个)玩家就可以开始游戏啦!-------------");
List
for(int i=0;i<2;i++)
{
System.out.println("请输入第"+(i+1)+"位玩家的ID和姓名:");
p.add(game.setPlayer());
}
for(int i=0;i
{
System.out.println("欢迎玩家:"+p.get(i).getName());
}
//(5)扑克牌比大小游戏开始啦~
int count = 0;
System.out.println("------------------开始发牌---------------------");
//设定每人分别拿两张(or多张)
for(int i=0; i<2;i++){
//玩家轮流拿牌
for(int j=0; j< p.size(); j++){
System.out.println(">玩家"+p.get(j).getName()+"拿牌");
p.get(j).setHandCards(cards.getList().get(count));
count++;
}
}
System.out.println("------------------发牌结束!--------------------");
System.out.println("------------------开始游戏 ---------------------");
for(int i=0;i
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
list.add(new Card(color[i], number[j]));
}
System.out.println("----------------扑克牌创建成功!---------------");
}
//获取一副扑克牌
public List
return list;
}
//洗牌(打乱)
public void shufCards(){
System.out.println("----------------开始洗牌------------------------");
Collections.shuffle(list);
System.out.println("----------------洗牌结束------------------------");
}
//展示一副扑克牌
public void showCards(){
System.out.print("当前的扑克牌为:");
System.out.print("[ ");
for(int i=0;i
System.out.print(list.get(i).getColor() + list.get(i).getNumber()+ " ");
}
System.out.println(" ]");
}
}
//Player.java
package card;
import java.util.ArrayList;
import java.util.List;
public class Player {
private int id;
private String name;
private List
public Player(int id, String name){
this.id = id;
this.name = name;
}
public List
return handCards;
}
public void setHandCards(Card card) {
handCards.add(card);
}
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;
}
}
//CardComparator.java(自定义排序规则)
package card;
import java.util.Comparator;
public class CardComparator implements Comparator
@Override
public int compare(Card c1, Card c2) {
// 构建花色和牌值数组,通过比对,计算得到某张牌的价值(大小)
String[] color = {"方片", "梅花", "红桃", "黑桃"};
String[] number = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J","Q","K", "A"};
//由于比较规则是先比较牌值,如果相等再比较花色(黑红梅方),所以将牌值赋予较高的权值
int valueOfC1 = 0;
int valueOfC2 = 0;
for(int i=0;i
if(c1.getNumber().equals(number[i])) valueOfC1 += i*10;
if(c2.getNumber().equals(number[i])) valueOfC2 += i*10;
}
for(int i=0;i
if(c1.getColor().equals(color[i])) valueOfC1 += i;
if(c2.getColor().equals(color[i])) valueOfC2 += i;
}
if( valueOfC1 > valueOfC2 ) return -1;
if( valueOfC1 < valueOfC2 ) return 1;
return 0;
}
}
//PlayDemo.java
package card;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class PlayDemo {
//创建玩家
//要对玩家ID的异常处理,要求用户只能输入整数ID,否则需要重新输入
public Player setPlayer(){
int id=0;
String name="";
Scanner console = new Scanner(System.in);
boolean ready = true;
do{
try{
System.out.println("输入ID:");
id = console.nextInt();
ready = true;
}catch(Exception e){
System.out.println("请输入整数类型的ID!");
ready = fNqFmKcgDalse;
console.nextLine();
}
}while(ready==false);
System.out.println("输入姓名:");
name = console.next();
return new Player(id, name);
}
public static void main(String[] args) {
//测试简易扑克牌程序
PlayDemo game = new PlayDemo();
//(1)创建一副牌
Cards cards = new Cards();
//(2)展示新的扑克牌
cards.showCards();
//(3)洗牌
cards.shufCards();
//(4)创建玩家
System.out.println("--------------创建两个(or多个)玩家就可以开始游戏啦!-------------");
List
for(int i=0;i<2;i++)
{
System.out.println("请输入第"+(i+1)+"位玩家的ID和姓名:");
p.add(game.setPlayer());
}
for(int i=0;i
{
System.out.println("欢迎玩家:"+p.get(i).getName());
}
//(5)扑克牌比大小游戏开始啦~
int count = 0;
System.out.println("------------------开始发牌---------------------");
//设定每人分别拿两张(or多张)
for(int i=0; i<2;i++){
//玩家轮流拿牌
for(int j=0; j< p.size(); j++){
System.out.println(">玩家"+p.get(j).getName()+"拿牌");
p.get(j).setHandCards(cards.getList().get(count));
count++;
}
}
System.out.println("------------------发牌结束!--------------------");
System.out.println("------------------开始游戏 ---------------------");
for(int i=0;i
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
System.out.print(list.get(i).getColor() + list.get(i).getNumber()+ " ");
}
System.out.println(" ]");
}
}
//Player.java
package card;
import java.util.ArrayList;
import java.util.List;
public class Player {
private int id;
private String name;
private List
public Player(int id, String name){
this.id = id;
this.name = name;
}
public List
return handCards;
}
public void setHandCards(Card card) {
handCards.add(card);
}
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;
}
}
//CardComparator.java(自定义排序规则)
package card;
import java.util.Comparator;
public class CardComparator implements Comparator
@Override
public int compare(Card c1, Card c2) {
// 构建花色和牌值数组,通过比对,计算得到某张牌的价值(大小)
String[] color = {"方片", "梅花", "红桃", "黑桃"};
String[] number = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J","Q","K", "A"};
//由于比较规则是先比较牌值,如果相等再比较花色(黑红梅方),所以将牌值赋予较高的权值
int valueOfC1 = 0;
int valueOfC2 = 0;
for(int i=0;i
if(c1.getNumber().equals(number[i])) valueOfC1 += i*10;
if(c2.getNumber().equals(number[i])) valueOfC2 += i*10;
}
for(int i=0;i
if(c1.getColor().equals(color[i])) valueOfC1 += i;
if(c2.getColor().equals(color[i])) valueOfC2 += i;
}
if( valueOfC1 > valueOfC2 ) return -1;
if( valueOfC1 < valueOfC2 ) return 1;
return 0;
}
}
//PlayDemo.java
package card;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class PlayDemo {
//创建玩家
//要对玩家ID的异常处理,要求用户只能输入整数ID,否则需要重新输入
public Player setPlayer(){
int id=0;
String name="";
Scanner console = new Scanner(System.in);
boolean ready = true;
do{
try{
System.out.println("输入ID:");
id = console.nextInt();
ready = true;
}catch(Exception e){
System.out.println("请输入整数类型的ID!");
ready = fNqFmKcgDalse;
console.nextLine();
}
}while(ready==false);
System.out.println("输入姓名:");
name = console.next();
return new Player(id, name);
}
public static void main(String[] args) {
//测试简易扑克牌程序
PlayDemo game = new PlayDemo();
//(1)创建一副牌
Cards cards = new Cards();
//(2)展示新的扑克牌
cards.showCards();
//(3)洗牌
cards.shufCards();
//(4)创建玩家
System.out.println("--------------创建两个(or多个)玩家就可以开始游戏啦!-------------");
List
for(int i=0;i<2;i++)
{
System.out.println("请输入第"+(i+1)+"位玩家的ID和姓名:");
p.add(game.setPlayer());
}
for(int i=0;i
{
System.out.println("欢迎玩家:"+p.get(i).getName());
}
//(5)扑克牌比大小游戏开始啦~
int count = 0;
System.out.println("------------------开始发牌---------------------");
//设定每人分别拿两张(or多张)
for(int i=0; i<2;i++){
//玩家轮流拿牌
for(int j=0; j< p.size(); j++){
System.out.println(">玩家"+p.get(j).getName()+"拿牌");
p.get(j).setHandCards(cards.getList().get(count));
count++;
}
}
System.out.println("------------------发牌结束!--------------------");
System.out.println("------------------开始游戏 ---------------------");
for(int i=0;i
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
if(c1.getNumber().equals(number[i])) valueOfC1 += i*10;
if(c2.getNumber().equals(number[i])) valueOfC2 += i*10;
}
for(int i=0;i
if(c1.getColor().equals(color[i])) valueOfC1 += i;
if(c2.getColor().equals(color[i])) valueOfC2 += i;
}
if( valueOfC1 > valueOfC2 ) return -1;
if( valueOfC1 < valueOfC2 ) return 1;
return 0;
}
}
//PlayDemo.java
package card;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class PlayDemo {
//创建玩家
//要对玩家ID的异常处理,要求用户只能输入整数ID,否则需要重新输入
public Player setPlayer(){
int id=0;
String name="";
Scanner console = new Scanner(System.in);
boolean ready = true;
do{
try{
System.out.println("输入ID:");
id = console.nextInt();
ready = true;
}catch(Exception e){
System.out.println("请输入整数类型的ID!");
ready = fNqFmKcgDalse;
console.nextLine();
}
}while(ready==false);
System.out.println("输入姓名:");
name = console.next();
return new Player(id, name);
}
public static void main(String[] args) {
//测试简易扑克牌程序
PlayDemo game = new PlayDemo();
//(1)创建一副牌
Cards cards = new Cards();
//(2)展示新的扑克牌
cards.showCards();
//(3)洗牌
cards.shufCards();
//(4)创建玩家
System.out.println("--------------创建两个(or多个)玩家就可以开始游戏啦!-------------");
List
for(int i=0;i<2;i++)
{
System.out.println("请输入第"+(i+1)+"位玩家的ID和姓名:");
p.add(game.setPlayer());
}
for(int i=0;i
{
System.out.println("欢迎玩家:"+p.get(i).getName());
}
//(5)扑克牌比大小游戏开始啦~
int count = 0;
System.out.println("------------------开始发牌---------------------");
//设定每人分别拿两张(or多张)
for(int i=0; i<2;i++){
//玩家轮流拿牌
for(int j=0; j< p.size(); j++){
System.out.println(">玩家"+p.get(j).getName()+"拿牌");
p.get(j).setHandCards(cards.getList().get(count));
count++;
}
}
System.out.println("------------------发牌结束!--------------------");
System.out.println("------------------开始游戏 ---------------------");
for(int i=0;i
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
if(c1.getColor().equals(color[i])) valueOfC1 += i;
if(c2.getColor().equals(color[i])) valueOfC2 += i;
}
if( valueOfC1 > valueOfC2 ) return -1;
if( valueOfC1 < valueOfC2 ) return 1;
return 0;
}
}
//PlayDemo.java
package card;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class PlayDemo {
//创建玩家
//要对玩家ID的异常处理,要求用户只能输入整数ID,否则需要重新输入
public Player setPlayer(){
int id=0;
String name="";
Scanner console = new Scanner(System.in);
boolean ready = true;
do{
try{
System.out.println("输入ID:");
id = console.nextInt();
ready = true;
}catch(Exception e){
System.out.println("请输入整数类型的ID!");
ready = fNqFmKcgDalse;
console.nextLine();
}
}while(ready==false);
System.out.println("输入姓名:");
name = console.next();
return new Player(id, name);
}
public static void main(String[] args) {
//测试简易扑克牌程序
PlayDemo game = new PlayDemo();
//(1)创建一副牌
Cards cards = new Cards();
//(2)展示新的扑克牌
cards.showCards();
//(3)洗牌
cards.shufCards();
//(4)创建玩家
System.out.println("--------------创建两个(or多个)玩家就可以开始游戏啦!-------------");
List
for(int i=0;i<2;i++)
{
System.out.println("请输入第"+(i+1)+"位玩家的ID和姓名:");
p.add(game.setPlayer());
}
for(int i=0;i
{
System.out.println("欢迎玩家:"+p.get(i).getName());
}
//(5)扑克牌比大小游戏开始啦~
int count = 0;
System.out.println("------------------开始发牌---------------------");
//设定每人分别拿两张(or多张)
for(int i=0; i<2;i++){
//玩家轮流拿牌
for(int j=0; j< p.size(); j++){
System.out.println(">玩家"+p.get(j).getName()+"拿牌");
p.get(j).setHandCards(cards.getList().get(count));
count++;
}
}
System.out.println("------------------发牌结束!--------------------");
System.out.println("------------------开始游戏 ---------------------");
for(int i=0;i
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
{
System.out.println("欢迎玩家:"+p.get(i).getName());
}
//(5)扑克牌比大小游戏开始啦~
int count = 0;
System.out.println("------------------开始发牌---------------------");
//设定每人分别拿两张(or多张)
for(int i=0; i<2;i++){
//玩家轮流拿牌
for(int j=0; j< p.size(); j++){
System.out.println(">玩家"+p.get(j).getName()+"拿牌");
p.get(j).setHandCards(cards.getList().get(count));
count++;
}
}
System.out.println("------------------发牌结束!--------------------");
System.out.println("------------------开始游戏 ---------------------");
for(int i=0;i
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
System.out.print("玩家"+p.get(i).getName()+"的手牌为:[ ");
for(int j=0;j
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
Card cur = p.get(i).getHandCards().get(j);
System.out.print(cur.getColor()+cur.getNumber()+" ");
}
System.out.println(" ]");
}
//排序得到每个玩家最大的手牌(排序规则自定义)
for(int i=0;i
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
Collections.sort(p.get(i).getHandCards(), new CardComparator());
}
List
for(int i=0;i
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
Card maxCur = p.get(i).getHandCards().get(0);
System.out.println("玩家"+p.get(i).getName()+"最大的手牌为:"+ maxCur.getColor()+maxCur.getNumber());
maxCard.add(maxCur);
}
//得到最后的胜者
List
temp.addAll(maxCard);
Collections.sort(temp, new CardComparator());
for(int i=0;i
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
if(maxCard.get(i).equals(temp.get(0))) System.out.println("恭喜玩家:"+p.get(i).getName()+"获胜!");
}
}
}
游戏运行截图
还有一个地方需要优化,即不能输入重复的ID和姓名,可以重写Player的equals方法,将用户的输入与已有的输入相比较,不满足要求则需要重新输入,不过就先不加了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~