Java 堆栈-数组仿真扑克牌洗牌发牌过程

Java 堆栈-数组仿真扑克牌洗牌发牌过程

设计一个Java程序,用数组仿真扑克牌洗牌发牌过程。请用随机数来生产扑克牌后压入堆栈,放满52张牌后开始发牌,使用堆栈的弹出功能来给四个人发牌。

package basic;

import java.io.IOException;

public class test2 {
	static int top=-1;
	public static void push(int stack[],int MAX,int val) {
		if(top>=MAX-1) {
			System.out.println("堆栈已经满了");
		}else {
			top++;
			stack[top]=val;
		}
	}
	public static int pop(int stack[]) {
		if(top<0)
			System.out.println("堆栈已经空了");
		else
			top--;
		return stack[top];
	}
	public static void main(String[] args) throws IOException {
		int card[]=new int[52];
		int stack[]=new int[52];
		int i,j,k=0,test;
		char ascVal=5;
		int style = 0;
		for(i=0;i<52;i++)
			card[i]=i;
		while(k<30) {
			for(i=0;i<51;i++) {
				for(j=i+1;j<52;j++){
					if(((int)(Math.random()*5))==2) {
						test=card[i];
						card[i]=card[j];
						card[j]=test;
					}
				}
			}
			k++;
		}
		i=0;
		while(i!=52) {
			push(stack,52,card[i]);
			i++;
		}
		System.out.println("逆时针发牌");
		System.out.println("显示各家的牌 \n 东家 \t 北家 \t 西家 \t 南家");
		while(top>=0) {
			style=stack[top]/13;
			switch(style) {
			case 0:
				ascVal='C';
				break;
			case 1:
				ascVal='D';
				break;
			case 2:
				ascVal='H';
				break;
			case 3:
				ascVal='S';
				break;
			}
			System.out.print("["+ascVal+(stack[top]%13+1)+"]");
			System.out.print('\t');
			if(top%4==0) 
				System.out.println();
				top--;
		}
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值