`
除却巫山不是云
  • 浏览: 14695 次
  • 性别: 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策略规划时,长尾关键词分析就显得尤为重要。通过精准地把握长尾关键词,网站能够获得更高质量的访问流量...

    三张金花游戏示例demo

    三张金花游戏示例demo

    金花关键词工具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

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

    特别是在全球大宗商品价格持续上涨的市场环境下,供应链行业中的头部公司展现出强大的市场竞争力和盈利能力,俨然成为行业中的一朵朵“金花”。本报告将深入探讨物流行业中大宗供应链的最新发展趋势,并重点分析行业...

    jinhua.rar_金花

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

    金花关键词工具5.5.1

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

Global site tag (gtag.js) - Google Analytics