(JAVA練習)撲克牌隨機發牌系統
阿新 • • 發佈:2020-12-24
技術標籤:java
題目
撲克牌隨機發牌系統,除去大王小王
解答
package modeal4;
import java.util.Scanner;
public class Zuoye3 {
public static void main(String[] args) {
// 撲克牌隨機發牌系統
// 判斷輸入數字是否符合規則
int player;
int card;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入玩家數和每位玩家手牌數");
player = sc.nextInt();
card = sc.nextInt();
if (player > 52 || player < 1) {
System.out.println("請輸入正確玩家數");
}
if (player * card > 52) {
System.out.println("發牌總數不能多於牌總數");
}
/*
* 定義牌的陣列,行標為花色,列標為大小 0為紅桃,1為黑桃,2為方片,3為梅花
*/
int[][] a = new int[4][13];
for ( int b = 0; b < 4; b++) {
for (int c = 0; c < 13; c++) {
a[b][c] = 0;
}
}
// 隨機發牌
for (int players = 1; player > 0; player--, players++) {
System.out.print("第" + players + "位玩家的牌為:");
for (int C = 0; C < card;) {
int i = (int) (Math.random() * 4);// 花色
int j = (int) (Math.random() * 13);// 數字
if (a[i][j] != -1) {
a[i][j] = -1;
C++;
// 花色
if (i == 0) {
System.out.print("紅桃");
}
if (i == 1) {
System.out.print("黑桃");
}
if (i == 2) {
System.out.print("方片");
}
if (i == 3) {
System.out.print("梅花");
}
// JQK
if ((j + 1) < 11) {
System.out.print((j + 1) + " ");
}
if ((j + 1) == 11) {
System.out.print("J" + " ");
}
if ((j + 1) == 12) {
System.out.print("Q" + " ");
}
if ((j + 1) == 13) {
System.out.print("K" + " ");
}
}
}
System.out.println();
}
}
}
執行結果
請輸入玩家數和每位玩家手牌數
2
26
第1位玩家的牌為:黑桃9 黑桃K 方片5 方片Q 方片8 方片1 梅花10 黑桃3 紅桃K 紅桃J 紅桃4 梅花8 黑桃6 梅花6 方片7 梅花K 紅桃5 黑桃10 黑桃5 梅花J 黑桃J 方片2 紅桃2 方片3 紅桃1 黑桃1
第2位玩家的牌為:梅花9 梅花2 黑桃Q 紅桃7 紅桃8 梅花1 方片10 梅花7 方片9 紅桃9 梅花Q 梅花3 方片J 方片6 方片K 黑桃7 紅桃10 紅桃Q 黑桃4 紅桃6 紅桃3 黑桃8 方片4 梅花4 梅花5 黑桃2