仅进行牛一~牛九以及斗牛的判断
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* @author tom
* @version V1.0
* @Package PACKAGE_NAME
* @date 2023/2/21 8:54
* @Copyright © 网时代
*/
public class game {
public static void main(String[] args) {
//将牌型存入list集合 牌发完前不重复调用
List<String> pokerlist = PokerList();
//生成随机数 0- 51
Random random = new Random();
int index = 0;
int []card1 = new int [10];
if (pokerlist.size() < 5){
System.out.print("游戏结束,剩余"+pokerlist.size());
}else{
for (int i = 0; i < 10 ; i++) {
//循环十次发十张牌
index = random.nextInt(pokerlist.size());
String poker = pokerlist.get(index);
//String number = poker.substring(1);
//System.out.println(number + "!");
//System.out.println(poker + "!");
if(poker.length() == 2) {
char cardnumber = poker.charAt(1);
if(cardnumber!= 'A' && cardnumber!= 'K' && cardnumber !='Q' && cardnumber != 'J') {
card1[i] = cardnumber - '0';
}
else if(cardnumber == 'A') {
card1[i] = 1;
}
else {
card1[i] = 10;
}
}
else
card1[i] = 10;
//System.out.println(cardnumber + "!");
if (pokerlist.size() == 0 ) {
System.out.print("游戏结束牌已发完,剩余"+pokerlist.size());
}
System.out.print(poker+ " ");
pokerlist.remove(index);
}
}
// for(int i=0;i<10;i++) {
// System.out.print(card1[i] + " ");
// } 输出发出牌的点数
int result = BullJudge(card1);
if(result == 1)
System.out.print("player 2 win!");
else if (result == 2)
System.out.print("draw!");
else if(result == 3)
System.out.print("player 1 win!");
else if (result == 0)
System.out.print("No Bull and draw!");
}
//大小判断函数
public static int BullJudge(int []card) {
int player1 = 0,player2 = 0;
int playerone = -1 , playertwo = -1;
int x = 0;
for(int i=0;i<5;i++) {
player1 += card[i];
player2 += card[i+5];
}
for(int i=0; i<3;i++) {
int cardi = card[i];
for(int j=i+1;j<4;j++) {
int cardj = card[j];
for(int k = j+1;k<5 ;k++) {
int cardk = card[k];
int total = cardi + cardj + cardk;
if(total%10 ==0 && total >=10) {
int n=0;
if(player1 - total !=10 &&player1 - total !=20)
n= (player1 - total) %10;
else
n = 10;
// System.out.println("\n" + cardi +" "+cardj + " "+cardk+ " "+"1");
playerone = playerone < n ? n:playerone;
}
}
}
}
for(int i=5; i<8;i++) {
int cardi = card[i];
for(int j=i+1;j<9;j++) {
int cardj = card[j];
for(int k = j+1;k<10 ;k++) {
int cardk = card[k];
int total = cardi + cardj + cardk;
if(total%10 ==0 && total >=10) {
int n=0;
if(player2 - total !=10 &&player2 - total !=20)
n= (player2 - total) %10;
else
n = 10;
// System.out.println("\n" + cardi +" "+cardj + " "+cardk +" "+"2");
playertwo = playertwo < n ? n:playertwo;
}
}
}
}
System.out.println("\n" + playerone +" "+playertwo); //输出两名玩家的点数
if(playertwo > playerone) {
x=1;
return x;
}
else if(playerone == playertwo && playerone != -1 && playertwo != -1) {
x=2;
return x;
}
else if(playerone > playertwo) {
x=3;
return x;
}
return 0;
}
/***
* 初始化牌型
* @return pokerlist 牌型集合
*/
public static List<String> PokerList(){
//定义数字
String[] nums = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
//定义花色
String[] color = {"♠", "♥", "♣", "♦",};
//定义集合存入每张牌
List<String> pokerlist = new ArrayList<>();
//下标从0开始
int C = 0 ;
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < color.length; j++) {
String poker = color[j] + nums[i];
//指定下标存入牌型
pokerlist.add(C,poker);
//System.out.print(poker + " "); 输入牌型
C++ ;
}
//System.out.println();
}
return pokerlist;
}
}