`
除却巫山不是云
  • 浏览: 14503 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

三个人扎金花,显示出最大的那个人

阅读更多
今天突然想到比较三个单张的时候可以用三个排序后的整型数组合成字符串再转换成整型来比较大小。三个单张的牌,整型的数越大,牌型也就越大。

//刚刚又测试了下,发现这样的话大多数情况都是对的,但是还是有很高的几率错的。比如 一个人牌是12 10 5另一个人的牌是13 2 3,整型的数肯定是前者的大,但是牌型是后者的大,所以这个方法还是不行。

import java.lang.reflect.Array;
import java.util.Arrays;
public class zhajinhua {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Shuffle.xipai();
		Shuffle.fapai();
		Shuffle a=new Shuffle();
		Shuffle b=new Shuffle();
		Shuffle c=new Shuffle();
		a.x(a.player1,"玩家一");
		a.zhuanhuan(a.playerpuke);
		a.paixing(a.playerhuase, a.playerpukeint1);
		b.x(b.player2, "玩家二");
		b.zhuanhuan(b.playerpuke);
		b.paixing(b.playerhuase, b.playerpukeint1);
		c.x(c.player3, "玩家三");
		c.zhuanhuan(c.playerpuke);
		c.paixing(c.playerhuase, c.playerpukeint1);
		Shuffle.bijiao(a.paixing, b.paixing, c.paixing, a.playerpukeint1, b.playerpukeint1, c.playerpukeint1,a.maxcard,b.maxcard,c.maxcard);
	}
}
class  Shuffle{
		 static int xipai; 
		 static String temp; 
		 static String [] allCard=new String[52]; 
		 static String [] huase={"红心","方块","黑桃","梅花"}; 
		 static String [] puke={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; 
		 static int k=0; 
		 static String [] player1=new String[3];//玩家手牌
		 static String [] player2=new String[3];
		 static String [] player3=new String[3];
		 String [] playerhuase=new String[3];//玩家手牌每张的花色
		 String [] playerpuke=new String[3];//玩家手牌每张的点数
		int[] playerpukeint1=new int[3];
		int one,two;
		int paixing;
		int maxcard;
 static void xipai(){ 
			
			for(int i=0;i<huase.length;i++){ 
				for(int j=0;j<puke.length;j++){ 
				allCard[k]=huase[i]+puke[j]; 
				k++; 
				} 
			} 
		for(int i=0;i<52;i++){ 
			xipai=(int)(Math.random()*52); 
			temp=allCard[i]; 
			allCard[i]=allCard[xipai]; 
			allCard[xipai]=temp; 
		}
	}
static void fapai(){
		int i=0;
		for(int j=0;j<3;j++){
			player1[j]=allCard[i];
			player2[j]=allCard[i+1];
			player3[j]=allCard[i+2];
			i=i+3;
		}
		
	}
void x(String[] player,String play){
	System.out.print(play+"的牌:");
		for(int j=0;j<3;j++){
			System.out.print(player[j]+" ");
			if(player[j].length()==4){
				playerpuke[j]=player[j].substring(2, 4);
			}else{
				playerpuke[j]=player[j].substring(2, 3);
			}
			playerhuase[j]=player[j].substring(0, 2);
		}
		System.out.println();
}
void zhuanhuan(String[] puke){
		for(int i=0;i<3;i++){
			switch(puke[i]){
			case "2":
				playerpukeint1[i]=2;
				break;
			case "3":
				playerpukeint1[i]=3;
				break;
			case "4":
				playerpukeint1[i]=4;
				break;
			case "5":
				playerpukeint1[i]=5;
				break;
			case "6":
				playerpukeint1[i]=6;
				break;
			case "7":
				playerpukeint1[i]=7;
				break;
			case "8":
				playerpukeint1[i]=8;
				break;
			case "9":
				playerpukeint1[i]=9;
				break;
			case "10":
				playerpukeint1[i]=10;
				break;
			case "J":
				playerpukeint1[i]=11;
				break;
			case "Q":
				playerpukeint1[i]=12;
				break;
			case "K":
				playerpukeint1[i]=13;
				break;
			case "A":
				playerpukeint1[i]=14;
				break;
			}
			
		}
	}
void paixing(String[] playerhuase,int[] playerhuaseint1){
			Arrays.sort(playerhuaseint1);
				if(playerhuaseint1[0]==playerhuaseint1[1]&&playerhuaseint1[1]==playerhuaseint1[2]){
					paixing=6;
					maxcard=playerhuaseint1[0];
				}else if(playerhuaseint1[0]==playerhuaseint1[1]||playerhuaseint1[1]==playerhuaseint1[2]||playerhuaseint1[0]==playerhuaseint1[2]){
					paixing=2;
					for(int i=0;i<3;i++){//如果是一对,两两相减结果为0的就是那对
						for(int j=i+1;j<3;j++){
							if(playerhuaseint1[i]-playerhuaseint1[j]==0){
								maxcard=playerhuaseint1[i];
							}
						}
					}
				}
				if(playerhuase[0].equals(playerhuase[1])&&playerhuase[0].equals(playerhuase[2])&&playerhuaseint1[2]-playerhuaseint1[1]==1&&playerhuaseint1[1]-playerhuaseint1[0]==1){
					paixing=5;
					maxcard=playerhuaseint1[2];
				}else if(playerhuase[0].equals(playerhuase[1])&&playerhuase[0].equals(playerhuase[2])){
					paixing=4;
					maxcard=playerhuaseint1[2];
				}else if(playerhuaseint1[2]-playerhuaseint1[1]==1&&playerhuaseint1[1]-playerhuaseint1[0]==1){
					paixing=3;
					maxcard=playerhuaseint1[2];
				}else if(playerhuaseint1[0]!=playerhuaseint1[1]&&playerhuaseint1[1]!=playerhuaseint1[2]){
					paixing=1;
					maxcard=playerhuaseint1[2];
				}
}
static void bijiao(int p1,int p2,int p3,int[] max1,int[] max2,int[] max3,int maxcard1,int maxcard2,int maxcard3){
		int[] paixing=new int[3];
		int a1,a2,a3;
		paixing[0]=p1;
		paixing[1]=p2;
		paixing[2]=p3;
		Arrays.sort(paixing);
		Arrays.sort(max1);
		a1=Integer.parseInt(String.valueOf(max1[2])+ String.valueOf(max1[1])+ String.valueOf(max1[0]));
		//把三张整型的数组合成一个字符串再变成一个整型的数,根据这个数的大小来判断三人都是单张时牌的大小
		Arrays.sort(max2);
		a2=Integer.parseInt(String.valueOf(max2[2])+ String.valueOf(max2[1])+ String.valueOf(max2[0]));
		Arrays.sort(max3);
		a3=Integer.parseInt(String.valueOf(max3[2])+ String.valueOf(max3[1])+ String.valueOf(max3[0]));
		if(paixing[2]!=paixing[1]){
					if(p1==paixing[2]){
							System.out.println("玩家一赢!");
						}else if(p2==paixing[2]){
								System.out.println("玩家二赢!");
							}else{
									System.out.println("玩家三赢!");
								}
							}
			if(paixing[2]==paixing[1]&&paixing[1]!=paixing[0]){
				if(p1==paixing[0]){
					if(maxcard2>maxcard3){
						System.out.println("玩家二赢!");
						}else if(maxcard3>maxcard2){
							System.out.println("玩家三赢!");
							}else if(max2[1]>max3[1]){
								System.out.println("玩家二赢!");
								}else if(max3[1]>max2[1]){
									System.out.println("玩家三赢!");
									}else if(max2[0]>max3[0]){
										System.out.println("玩家二赢!");
										}else if(max2[0]<max3[0]){
											System.out.println("玩家三赢!");
											}else{
												System.out.println("两个人的牌相同");
											}
				}else if(p2==paixing[0]){
					if(maxcard1>maxcard3){
						System.out.println("玩家一赢!");
						}else if(maxcard3>maxcard1){
							System.out.println("玩家三赢!");
							}else if(max1[1]>max3[1]){
								System.out.println("玩家一赢!");
								}else if(max3[1]>max1[1]){
									System.out.println("玩家三赢!");
									}else if(max1[0]>max3[0]){
										System.out.println("玩家一赢!");
										}else if(max1[0]<max3[0]){
											System.out.println("玩家三赢!");
											}else{
												System.out.println("两个人的牌相同");
											}
				}else{
					if(maxcard1>maxcard2){
						System.out.println("玩家一赢!");
						}else if(maxcard2>maxcard1){
							System.out.println("玩家二赢!");
							}else if(max2[1]>max1[1]){
								System.out.println("玩家二赢!");
								}else if(max1[1]>max2[1]){
									System.out.println("玩家一赢!");
									}else if(max2[0]>max1[0]){
										System.out.println("玩家二赢!");
										}else if(max2[0]<max1[0]){
											System.out.println("玩家一赢!");
											}else{
												System.out.println("两个人的牌相同");
											}
				}
			}
			if(paixing[0]==1&&paixing[1]==1&&paixing[2]==1){
				if(a1>a2&&a1>a3){
					System.out.println("玩家一赢!");
				}else if(a2>a1&&a2>a3){
					System.out.println("玩家二赢!");
				}else if(a3>a2&&a3>a1){
					System.out.println("玩家三赢!");
				}else if(a1==a2||a1==a3||a2==a3){
					System.out.println("这两个人的牌一样大,不算重来");
				}
			}
	}
}

 

分享到:
评论

相关推荐

    基于JAVA语言开发的扎金花小游戏

    JAVA语言开发的一个扎金花小游戏。仅供参考

    java扎金花程序java

    javaSE写的一个扎金花作业。该程序实现了扎金花游戏的所有功能。适合新学java的学者学习下。当然由于个人单独写的,时间也比较紧所有可能存在些小问题或者哪里实现方式不好。还望读者能够批评指出。

    java版金花3人游戏逻辑代码

    三人一起玩的zha金花游戏,代码实现随机9张牌,每人三张牌,判断牌面大小

    C#实现的人机纸牌游戏(扎金花)

    C#实现的人机纸牌游戏(扎金花)

    金花关键词分析工具,金花关键词工具

    总的来说,金花关键词分析工具是SEO工作中不可或缺的辅助软件,通过其强大的功能,用户可以更好地理解市场趋势,制定出有效的关键词策略,优化网站内容,提升搜索引擎排名,最终实现流量增长和业务发展。

    完整的扑克牌游戏扎金花

    一个扑克牌游戏,基本功能都以实现,初学者可以参考下,做的还可以,正在改进~

    抓金花游戏(java版)

    【抓金花游戏(Java版)】是一款使用Java编程语言实现的桌面娱乐游戏,它基于中国流行的扑克牌玩法“三公”(也称“金花”)。在这个游戏中,玩家通过比较手中的三张牌来决定胜负,牌型的大小决定了游戏的结果。本...

    金花长尾关键词分析工具

    在使用金花长尾关键词分析工具时,用户通常需要输入核心关键词,软件会自动生成一系列相关的长尾关键词,并显示其搜索量、竞争度等数据。这些数据对于SEO从业人员来说极其重要,因为它们可以帮助制定关键词布局、...

    金花关键词工具6.6.7

    【金花关键词工具6.6.7】是一款针对搜索引擎优化(SEO)的专业软件,它主要功能是帮助用户挖掘、分析并优化网站的关键词。在SEO领域,关键词是至关重要的元素,因为它们是搜索引擎理解网页内容的主要依据,同时也是...

    金花关键词工具5.3

    金花百度相关关键词查询程序使用前必读 1、本工具使用了.Net 2.0 框架,安装前请到华军软件园下载,地址是: http://www.onlinedown.net/soft/38669.htm 2、本工具兼容XP,2003, Vista, Win7。XP和2003使用前必需...

    金花站长工具

    关键词挖掘是SEO过程中的基础环节,金花站长工具通过智能算法分析搜索引擎的索引数据,找出与用户网站内容相关的高搜索量、低竞争度的关键词。这些关键词可以用于网站内容创作、元标签设置以及外部链接策略,从而...

    金花 seo优化工具

    金花关键词工具主要功能:百度指数查询、相关关键词分析、长尾关键词挖掘、指数批量查询、关键词竞争度等,金花关键词工具是一款关键词扩展工具。

    SEO必备软件金花关键词工具5.4

    金花百度相关关键词查询程序使用前必读 1、本工具使用了.Net 2.0 框架,安装前请到华军软件园下载,地址是: http://www.onlinedown.net/soft/38669.htm 2、本工具兼容XP,2003, Vista, Win7。XP和2003使用前必需...

    通达信指标公式源码四朵金花探秘副图指标.doc

    "四朵金花"是通达信中一种自定义的技术指标,由四个关键部分组成,即KD金花、MACD金花、价金花和量金花。下面我们将详细探讨这四个组成部分及其背后的理论。 首先,**KD金花**基于随机指标(KDJ)。KDJ是一个衡量...

    金花股份:金花企业(集团)股份有限公司2021年半年度报告.PDF

    【金花股份2021年半年度报告】 金花企业(集团)股份有限公司的2021年半年度报告提供了公司在这六个月内的运营、财务状况以及...对于关注医药行业的人来说,此报告是评估金花股份在行业地位和市场表现的重要参考资料。

    金花关键词排名批量查询工具

    金花关键词排名批量查询工具【非常好用,本人测试过是最好用的批量关键词查询软件推荐】 1、本工具使用了.Net 2.0 框架,安装前请到下载.Net 2.0 2、本工具兼容XP,2003, Vista, Win7,win8、XP和2003

    jinhua.rar_金花

    程序需要实现一套比较规则,比如比较最大三张牌的大小,以及是否有“金花”(即三张相同牌面的牌)。这涉及到排序算法和条件判断。 4. **用户交互**:为了让用户参与游戏,程序需要有输入输出功能。C语言中的标准...

    物流:大宗供应链“五朵金花”迎风绽放.pdf

    2021年上半年,这些公司的利润增速显著提升,显示出盈利向上的拐点,而ROE(净资产收益率)的上行趋势则预示着估值的提升空间。 基于以上分析,报告给出了投资建议,推荐关注浙商中拓和建发股份,同时也建议关注...

    金花关键词工具5.5.1

    《金花关键词工具5.5.1:提升SEO优化效率的专业利器》 金花关键词工具5.5.1是一款专为搜索引擎优化(SEO)而设计的专业软件,它在SEO行业中备受推崇,因其强大的功能和易用性而广受好评。这款工具的核心目标是帮助...

    金花提案.ppt

    金花提案

Global site tag (gtag.js) - Google Analytics