JAVA编写扎金花
import java.util.ArrayList;
import java.util.Random;
public class Cards {
static Random random = new Random();
static ArrayList<Integer> allCards = new ArrayList<Integer>() {
{
add(114);
add(113);
add(112);
add(111);
add(110);
add(109);
add(108);
add(107);
add(106);
add(105);
add(104);
add(103);
add(102);
add(214);
add(213);
add(212);
add(211);
add(210);
add(209);
add(208);
add(207);
add(206);
add(205);
add(204);
add(203);
add(202);
add(314);
add(313);
add(312);
add(311);
add(310);
add(309);
add(308);
add(307);
add(306);
add(305);
add(304);
add(303);
add(302);
add(414);
add(413);
add(412);
add(411);
add(410);
add(409);
add(408);
add(407);
add(406);
add(405);
add(404);
add(403);
add(402);
}
};
static int personOne[] = new int[3];
static int personTwo[] = new int[3];
public static void main(String[] args) {
deal();
int i = rank(personOne);
int j = rank(personTwo);
determine(i, j);
}
public static void deal() {
for (int i = 0; i < 3; i++) {
int k = random.nextInt(allCards.size());
personOne[i] = allCards.get(k);
allCards.remove(k);
}
System.out.print("玩家1的牌:");
change(personOne);
for (int i = 0; i < 3; i++) {
int k = random.nextInt(allCards.size());
personTwo[i] = allCards.get(k);
allCards.remove(k);
}
System.out.print("玩家2的牌:");
change(personTwo);
}
public static int rank(int person[]) {
int i = 0;
int huase1 = person[0] / 100;
int huase2 = person[1] / 100;
int huase3 = person[2] / 100;
int daxiao1 = person[0] - person[0] / 100 * 100;
int daxiao2 = person[1] - person[1] / 100 * 100;
int daxiao3 = person[2] - person[2] / 100 * 100;
int big = daxiao1 > daxiao2 ? daxiao1 : daxiao2;
int max = big > daxiao3 ? big : daxiao3;
int small = daxiao1 < daxiao2 ? daxiao1 : daxiao2;
int min = small < daxiao3 ? small : daxiao3;
int mid;
if (daxiao1 != max && daxiao1 != min) {
mid = daxiao1;
} else if (daxiao2 != max && daxiao2 != min) {
mid = daxiao2;
} else {
mid = daxiao3;
}
if (daxiao1 == daxiao2 && daxiao2 == daxiao3) {
i = 6;
System.out.println("豹子!");
} else if ((huase1 == huase2 && huase2 == huase3)
&& (max - min == 2 && daxiao1 != daxiao3 && daxiao2 != daxiao3 && daxiao1 != daxiao2)) {
i = 5;
System.out.println("同花顺!");
} else if (huase1 == huase2 && huase2 == huase3) {
i = 4;
System.out.println("同花!");
} else if (max - min == 2 && daxiao1 != daxiao3 && daxiao2 != daxiao3
&& daxiao1 != daxiao2) {
i = 3;
System.out.println("顺子!");
} else if ((daxiao1 == daxiao2) || (daxiao3 == daxiao2)
|| (daxiao1 == daxiao3)) {
i = 2;
System.out.println("对子!");
} else {
i = 1;
System.out.println("单张!");
}
return i;
}
public static int determine(int i, int j) {
if (i > j) {
System.out.println("玩家1获胜!");
} else if (i < j) {
System.out.println("玩家2获胜!");
} else if (i == j) {
int Onedaxiao1 = personOne[0] - personOne[0] / 100 * 100;
int Onedaxiao2 = personOne[1] - personOne[1] / 100 * 100;
int Onedaxiao3 = personOne[2] - personOne[2] / 100 * 100;
int Onebig = Onedaxiao1 > Onedaxiao2 ? Onedaxiao1 : Onedaxiao2;
int Onemax = Onebig > Onedaxiao3 ? Onebig : Onedaxiao3;
int Onesmall = Onedaxiao1 < Onedaxiao2 ? Onedaxiao1 : Onedaxiao2;
int Onemin = Onesmall < Onedaxiao3 ? Onesmall : Onedaxiao3;
int Onemid;
if (Onedaxiao1 != Onemax && Onedaxiao1 != Onemin) {
Onemid = Onedaxiao1;
} else if (Onedaxiao2 != Onemax && Onedaxiao2 != Onemin) {
Onemid = Onedaxiao2;
} else {
Onemid = Onedaxiao3;
}
int Twodaxiao1 = personTwo[0] - personTwo[0] / 100 * 100;
int Twodaxiao2 = personTwo[1] - personTwo[1] / 100 * 100;
int Twodaxiao3 = personTwo[2] - personTwo[2] / 100 * 100;
int Twobig = Twodaxiao1 > Twodaxiao2 ? Twodaxiao1 : Twodaxiao2;
int Twomax = Twobig > Twodaxiao3 ? Twobig : Twodaxiao3;
int Twosmall = Twodaxiao1 < Twodaxiao2 ? Twodaxiao1 : Twodaxiao2;
int Twomin = Twosmall < Twodaxiao3 ? Twosmall : Twodaxiao3;
int Twomid;
if (Twodaxiao1 != Twomax && Twodaxiao1 != Twomin) {
Twomid = Twodaxiao1;
} else if (Twodaxiao2 != Twomax && Twodaxiao2 != Twomin) {
Twomid = Twodaxiao2;
} else {
Twomid = Twodaxiao3;
}
if (Onemax > Twomax) {
System.out.println("玩家1获胜!");
} else if (Onemax < Twomax) {
System.out.println("玩家2获胜!");
} else if (Onemax == Twomax && Onemid > Twomid) {
System.out.println("玩家1获胜!");
} else if (Onemax == Twomax && Onemid < Twomid) {
System.out.println("玩家2获胜!");
} else if (Onemax == Twomax && Onemid == Twomid && Onemin > Twomin) {
System.out.println("玩家1获胜!");
} else if (Onemax == Twomax && Onemid == Twomid && Onemin < Twomin) {
System.out.println("玩家2获胜!");
} else {
System.out.println("玩家1和玩家2牌一样大!");
}
}
return 0;
}
public static void change(int person[]) {
String huase = null;
String daxiao = null;
for (int i = 0; i < 3; i++) {
int huaSe = person[i] / 100;
int daXiao = person[i] - person[i] / 100 * 100;
switch (huaSe) {
case 1:
huase = "黑桃";
break;
case 2:
huase = "红桃";
break;
case 3:
huase = "草花";
break;
case 4:
huase = "方块";
break;
}
switch (daXiao) {
case 14:
daxiao = "A";
break;
case 13:
daxiao = "K";
break;
case 12:
daxiao = "Q";
break;
case 11:
daxiao = "J";
break;
case 10:
daxiao = "10";
break;
case 9:
daxiao = "9";
break;
case 8:
daxiao = "8";
break;
case 7:
daxiao = "7";
break;
case 6:
daxiao = "6";
break;
case 5:
daxiao = "5";
break;
case 4:
daxiao = "4";
break;
case 3:
daxiao = "3";
break;
case 2:
daxiao = "2";
break;
}
System.out.print(huase + daxiao + " ");
}
System.out.println();
}
}