2.JAVA简单斗地主的一个小框架

老师上课教的一个简单斗地主的框架,没事可以看看

package5的地主;

import java.util.*;

public class PokerGame {
	public static void main(String [] args) {
		//菜单窗口
		while(true) {
			System.out.println("输入菜单:0.生成牌1.洗牌2.发牌3.抢地主4.退出游戏");
			//定义一个 int类型的数用来接收菜单选项
			int cloice;
			cloice=getInt();
			if(check(cloice)==1) {
				continue;
			};
			if(cloice==4) {
				System.out.println("下次再见@w@");
				break;
			}
			pro(cloice);
		}
	
	}
	//用于从键盘上取到整数的方法
	public static int getInt(){
		Scanner in=new Scanner(System.in);
		return in.nextInt();
	}
	public static int check(int a){
		if(a<0||a>4){
			System.out.println("不是这样输入的,用你的小手在键盘上敲下1 2 3 4进行选择!");
			return 1;
		}
		else
			return 0;
	}
	static String[] poker; 
	static String[] play1=new String[0];
	static String[] play2=new String[0];
	static String[] play3=new String[0];
	public static void pro(int c){
		switch (c) {
		case 0 :{
			System.out.println("开始生成牌组");
			poker=create();
			Bian(poker);
			break;
		}
		case 1 :{
			System.out.println("开始洗牌");
			poker=Random(poker);
			Bian(poker);
			break;
		}
		case 2 :{
			int i;
			System.out.println("开始发牌");
			SetPlay(poker);
			System.out.println("玩家1:");
			Bian(play1);
			System.out.println("玩家2:");
			Bian(play2);
			System.out.println("玩家3:");
			Bian(play3);
			System.out.println("地主");
			for(i=poker.length-3;i<poker.length;i++)
				System.out.println(poker[i]);
			break;
		}
		case 3 :{
			System.out.println("抢地主!");
			
			break;
		}
		}
	}
	//创建牌组
	public static String[] create() {
		int i,j;
		//1.创建一个花色数组
				String[] colors = {"红桃","黑桃","梅花","方块"};
				//2.创建一个数字数组
				String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
				//3.创建一个王的数组
				String[] kings  = {"大王","小王"};
				//4.创建一个目标数组
				String[] a=new String[0];//这样做可以之后将数组自由扩大
		for(i=0;i<colors.length;i++)
			for(j=0;j<numbers.length;j++) {
				a=Arrays.copyOf(a, a.length+1);
				a[a.length-1]=colors[i]+numbers[j];
			}
		a=Arrays.copyOf(a,a.length+kings.length);
		System.arraycopy(kings,0,a,a.length-kings.length,kings.length);
		return a;
	}
	//打乱牌排序
	public static String[] Random(String[] a) {
		boolean [] f=new boolean[a.length];
		String[] play=new String[0];
		int RandomInt,i;
		for(i=0;play.length!=a.length;) {
			Random ran=new Random();
			RandomInt=ran.nextInt(a.length);
			if(!f[RandomInt]) {
				play=Arrays.copyOf(play,play.length+1);
				play[i]=a[RandomInt];
				f[RandomInt]=true;
				i++;
			}
		}
		return play;
	}
	//遍历String类型数组的方法
	public static void Bian(String[] a) {
		int i;
		for(i=0;i<a.length;i++){
			System.out.println(a[i]);
		}
	}
	//发牌
	public static void SetPlay(String[] a) {
		String[] play=new String[0];
		int i;
		for(i=0;i<a.length-3;i++) {
			if(i%3==0) {
				play1=Arrays.copyOf(play1, play1.length+1);
				play1[play1.length-1]=a[i];
			}
			if(i%3==1) {
				play2=Arrays.copyOf(play2, play2.length+1);
				play2[play2.length-1]=a[i];
			}
			if(i%3==2) {
				play3=Arrays.copyOf(play3, play3.length+1);
				play3[play3.length-1]=a[i];
			}
		}
	}
}

哈哈哈,没有抢地主。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值