栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号