版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
总共三大模块:
1,牌的创建
package 学生管理系统;
public class Card implements Comparable<Card>{
String name;
String type;
int rank;
public Card(String type,String name,int rank) {
this.name = name;
this.rank = rank;
this.type = type;
}
public int compareTo(Card o) {
return this.rank-o.rank;
}
}
2.玩家的创建
package 学生管理系统;
import java.util.ArrayList;
import java.util.List;
public class plays {
String id;
String name;
List<Card>pcards;
public plays(String name,String id) {
this.name = name;
this.id = id;
pcards = new ArrayList<Card>();
}
}
3.执行过程
package 学生管理系统;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Game {
List<Card>cards;
List<plays>players;
plays p1;
plays p2;
Card p1max;
Card p2max;
Card p1min;
Card p2min;
//创建扑克牌资源数组
String[] CardType=new String[] {"方块","梅花","红桃","黑桃"}; //顺序不可调换,否则会影响大小比较的rank值
String[] CardNum=new String[] {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
public Game() {
cards = new ArrayList<Card>();
players = new ArrayList<plays>();
}
public void CreatCards() {
System.out.println("------扑克牌生成-----");
for(int i=0;i < 13;i++) {
for(int j=0;j<4;j++) {
cards.add(new Card(CardNum[i],CardType[j],13*i+j));
}
}
//遍历整个扑克牌
System.out.println("-----扑克牌创建----");
System.out.println("扑克牌为:");
for(Card c:cards) {
System.out.print(c.name+c.type+":");
}
System.out.println("总共52张牌");
}
public void WashCard() {
System.out.println("-----开始洗牌----");
Collections.shuffle(cards);
System.out.println("-----洗牌结束----");
}
//创造两名玩家
public void CreatePlays() {
Scanner console = new Scanner(System.in);
System.out.println("请输入第一个玩家的ID和姓名");
System.out.println("请输入第一个玩家的ID:");
String id1 = console.next();
System.out.println("请输入第一个玩家的姓名:");
String name1 = console.next();
p1 = new plays(id1,name1);
players.add(p1);
System.out.println("请输入第二个玩家的ID和姓名");
System.out.println("请输入第二个玩家的ID:");
String id2 = console.next();
System.out.println("请输入第二个玩家的姓名:");
String name2 = console.next();
p2 = new plays(id2,name2);
players.add(p2);
System.out.println("欢迎玩家:"+p1.name);
System.out.println("欢迎玩家:"+p2.name);
}
//进行发牌
public void pushCard() {
System.out.println("------开始进行发牌------");
p1.pcards.add(cards.get(0));
System.out.println("----玩家:"+p1.name+"-拿牌------");
p2.pcards.add(cards.get(1));
System.out.println("----玩家:"+p2.name+"-拿牌------");
p1.pcards.add(cards.get(2));
System.out.println("----玩家:"+p1.name+"-拿牌------");
p2.pcards.add(cards.get(3));
System.out.println("----玩家:"+p2.name+"-拿牌------");
System.out.println("--------发牌结束--------");
}
//开始进行游戏
public void playgame() {
System.out.println("开始进行游戏:");
Collections.sort(p1.pcards);
Collections.sort(p2.pcards);
p1max = p1.pcards.get(1);
p2max = p2.pcards.get(1);
System.out.println(p1.name+"最大的手牌:"+p1max.name+p1max.type); //输出玩家1的最大手牌
System.out.println(p2.name+"最大的手牌:"+p2max.+p2max.type); //输出玩家2的最大手牌
if(p1max.rank>p2max.rank) {
System.out.println("玩家"+p1.name+"获得胜利");
}else {
System.out.println("玩家"+p2.name+"获得胜利");
}
p1min = p1.pcards.get(0);
p2min = p2.pcards.get(0);
System.out.println(p1.name+"最小的手牌:"+p1min.name+p1min.type); //输出玩家1的最小手牌
System.out.println(p2.name+"最小的手牌:"+p2min.name+p2min.type); //输出玩家2的最小手牌
System.out.println("--------游戏结束------");
}
public static void main(String [] args) {
Game gg = new Game();
gg.CreatCards();
gg.CreatePlays();
gg.WashCard();
gg.pushCard();
gg.playgame();
}
}
看完!!!点赞!!!!