package com.sgh;
import java.util.Arrays;
import java.util.Random;
import org.junit.Test;
/**
* 牛牛算法
* jqk10,表示10牛,共5张牌,其中3张之和为10,,20,30,剩余之和与10取余就是多少牛
* @author Administrator
*
*/
public class Taurus {
private int temp,n,cardsTotal;//n表示jqk 10的个数,cow表示牛,cardsTotal表示牌总和
private int cow = -1;//默认没有牛
private int[] card = new int[5];//5个牌
private int[] random = new int[5];//5个随机数
//模拟52张牌
private final int[] cards = /*new int[]*/{1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13};
//随机产生5张牌
@Test
public int[] getCard(){
Random rd = new Random();
for(int i=0;i<5;i++){
temp = random[i] = rd.nextInt(52);//随机生成0到51个int
for(int j=0;j<i;j++){
if(temp == random[j]) continue;//重复则重新随机
// if(temp == 52) continue;//数组下标从0开始,只有51
}
}
System.out.println("随机数:"+Arrays.toString(random));
//取牌
for(int i=0;i<random.length;i++){
card[i] = cards [random[i]];
if(card[i]>=10) n++;
}
//给card排序
Arrays.sort(card);
//倒序
int[] card1 = new int[5];
for(int i=0;i<card.length ;i++){
card1[i] = card[4-i];
}
print(card1);
return card1;
}
//判断牛几方法
private int getCow(int[] card){
for(int i=0;i<card.length;i++){
/*if(card[i]>=10){
cardsTotal +=10;
}else*/
cardsTotal +=card[i];
}
System.out.println("cardsTatoal="+cardsTotal);;
//根据jqk10个数分情况讨论
switch(n){
case 0://一张都没用
for(int i=0;i<4;i++ ){
for(int j=1;j<5;j++ ){
if((cardsTotal-card[i]-card[j])%10==0){
cow = (card[i]+card[j])%10;
}
}
}
return cow;
case 1://有一张jqk10的情况,剩余4张中有3张之和要被10整除
for(int j=0;j<5;j++ ){
if((cardsTotal-card[0]-card[j])%10==0){
cow = (cardsTotal-card[0])%10;
}
}
return cow;
case 2://有2张jqk10的情况,剩余3张中有2张之和等于10或者剩余3张之和为10
for(int i=n;i<4;i++){
for(int j=n+1;j<5;j++ ){
if((card[i]+card[j])==10 ||(cardsTotal-card[i]-card[j])%10 == 0){
for(int k=0;k<n;k++){
cardsTotal-=card[k];
}
cow = cardsTotal%10;
}
}
}
return cow;
default://有3,4,5张jqk10的情况
for(int i=0;i<n;i++){
cardsTotal -= card[i];
}
cow = cardsTotal%10;
return cow;
}
}
//打印方法
private void print(int[] card) {
for(int i=0;i<card.length;i++){
if(card[i]==13) System.out.print("K"+" ");
if(card[i]==12) System.out.print("Q"+" ");
if(card[i]==11) System.out.print("J"+" ");
if(card[i]<=10)System.out.print(card[i]+" ");
}
}
public static void main(String[] args) {
Taurus ts = new Taurus();
int[] card =ts.getCard();
int cow = ts.getCow(card);
System.out.println();
System.out.println(cow);
}
}
相关推荐
牛牛算法java版,包含牛牛算法 结算配置自定义等,里面有测试类
包含牛牛算法 结算配置自定义等,里面有测试类,包含牛牛算法 结算配置自定义等,里面有测试类包含牛牛算法 结算配置自定义等,里面有测试类包含牛牛算法 结算配置自定义等,里面有测试类包含牛牛算法 结算配置自定义等,里面有测试类
java实现牛牛游戏源代码
package com.zyy.java; import java.util.List; public class Bull { private static CreatPlayers cplayers; private static CreatPoker cpoker; private static Shuffle shuffle; private static SendPoker ...
Java模拟三公,出牌发牌及牌型
Java模拟三公,出牌发牌及列出所有牌型按从大到小排序.
纸牌游戏 java逻辑_Java 纸牌游戏 牛牛 逻辑代码 实现
packageyan.study.game.puke;importcn.yan.study.utils.YanStrUtils;importcn.yan.study.utils.cache.ConcurrentHashMapCacheUtils;importjava.util.*;public classNiuNiuGame {/***获取一手牌的牛*/public staticNiuResult...
牛客网算法练习--[编程题]迷路的牛牛 java实现
今天开始练习一下算法和mysql等题目,增加一下自己的算法能力。 链接:https://www.nowcoder.com/questionTerminal/fc72d3493d7e4be883e931d507352a4a?toCommentId=6159662 来源:牛客网 [编程题]迷路的牛牛 热度指数:43429 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 算法知识视频讲解 牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有.
牛客网算法练习--[编程题]牛牛的闹钟 java实现
题目描述 牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时间起床 输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含一个正整数,表示闹钟的数量N(N<=100)。 接下来的N行每行包含两个整数,表示这个闹钟响起的时间为Hi(0<=A<24)时Mi(0<=B<60)分。 接下来的一行包含一个整数,表示从起床算起他需要X(0<=X<=
TH58 牛牛排队
按照牛牛的策略,每个门口外的排队人数随着时间的变化的结果为[10,10]→[9,9]→[8,8]→[7,7]→[6,6]→[5,5]→[4,4]→[3,3]→[2,2]→[1,1]→[0,0]按照牛牛的策略,每个门口外的排队人数随着时间的变化的结果为[2,3,2,0]→[1,2,1,0]→[0,1,0,0],当牛牛走到第3个门时,刚好没有人排队,所以牛牛最后可以从第3个门进去。现在给你门的数量n,和每个门外排队的人的数量,如果按照牛牛的策略,那么牛牛最终会在哪个门进去吃饭呢?
消消乐java算法_Java算法题——牛牛消消乐
Java算法题——牛牛消消乐今天做算法题,遇到了这个题目,随后想把自己的想法写出来。题目是:“曾经有两次消除的机会摆在我面前,我却没有珍惜……”牛牛回忆道。牛牛正在玩一款全新的消消乐游戏。这款游戏的主体是由一列列的方块构成,牛牛的目标就是要尽量消除这些方块。每次操作,牛牛可以选择某个高度 x ,将所有高度大于等于 x 的那些列全部消除 x 个方块,随后方块会下落,以填补消除造成的空白。牛牛这一局的...
Java-牛客-牛牛组队-3月21
牛牛组队 题目描述: import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while(scanner.hasNextInt()){ int n= scanner.nextInt(); int [] a=new int[n*3];
JAVA 牛牛逻辑
java牛牛游戏逻辑实现 ,从创建房间-创建玩家-创建扑克牌-洗牌-发牌-比较大小(判断牛的类型 添加倍率)得到赢的玩家和倍率
添加字符(牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。)
添加字符 题目描述 牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。 而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,羊羊就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。 牛牛可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问牛牛对A串添加完字符之后,不相等的位数最少有多少位? 输入描述: 第一行为字符串A,第二行为字符串B,A的场地小于等于B的长度,B的长度小于等于50.字符均为
【算法题】牛牛的背包问题(分治)
包中够少种零食放法 背包容量为w。一共有n袋零食,第i袋零食体积为v[i]。 总体积不超过背包容量的情况下,一共有多少种零食放法?(总体积为0也算一种放法)。使用分治方法求解。
Java——公牛母牛小游戏(完整代码详细解析)
目录前言一、游戏规则二、详细解析三、完整代码猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的4个数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。如正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中
java swing开发窗体程序开发(一)GUI编程
Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代码式GUI编程。java的好处就是通用性强,跨平台,这个java窗体程序做好之后,哪都可以用。然而C#的winform只能运行在有.net框架上 的平台,然而.net支持最好的,也就只有windows...
斗牛java主程序设计_Java swing中制作斗牛游戏如何牛点
雷晓东NANA2019.01.08采纳率:63%等级:39已帮助:98296人进口的java.awt.BorderLayout;进口java.awt.event.MouseEvent中;进口java.awt.event.MouseListener;进口javax.swing.JButton中;进口javax.swing.JFrame中;公共类隐藏显示扩展的JFrame {/ **** /私...
Java实现牛牛的水杯
牛牛口渴了,要喝10升水才能解渴,但现在只有一个深h厘米,底面半径是r厘米的水杯,牛牛最少要喝多少杯水才能解渴。 水杯的体积公式是π×h×72,其中π取3.14,h和r是整数。
消消乐游戏算法java_Java算法题——牛牛消消乐
import java.util.*;public classSolution {/*** 返回两次操作后,数组元素之和的最小值*@paramnums int整型一维数组 这你你需要操作的数组*@returnlong长整型*/public long minimumValueAfterDispel (int[] nums) {//write code hereArrays.sort(nums);lo...
Java 纸牌游戏 牛牛 逻辑代码 实现
源代码链接package yan.study.game.puke; import cn.yan.study.utils.YanStrUtils; import cn.yan.study.utils.cache.ConcurrentHashMapCacheUtils; import java.util.*; public class NiuNiuGame { /** * 获...
5600




被折叠的 条评论
为什么被折叠?



