Java纸牌小游戏

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43271086/article/details/96902014

总共三大模块:

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();
	}
}

看完!!!点赞!!!!

猜你喜欢

转载自blog.csdn.net/weixin_43271086/article/details/96902014