自己写的抽牌程序
java语言程序设计第十版(Introduce to java 10th) 第七章
7.4 Case Study: Deck of Cards
<pre name="code" class="java">package chapter7;
public class DeckOfCards {
static String[] suits = { "方片", "黑桃", "红桃", "梅花" };
static String[] ranks = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
public static void main(String[] args) {
int[][] k = null;
k = faPai(4);
System.out.println("打印出抽出的序列");
print(k, 4, 2);
System.out.println("打印出抽出的牌");
printPai(k, 4);
}
public static int[][] faPai(int n) {
int j = 1;// 记录抽了几张牌
int[][] pai = new int[n][2];
// 抽第一张牌
pai[0][0] = chouHua();
pai[0][1] = chouShu();
while (j < n) {
for (int i = 0; i < j; i++) {
while ((pai[j][0] == 0) || pai[j][0] == pai[i][0] && pai[j][1] == pai[i][1]) {
pai[j][0] = chouHua();
pai[j][1] = chouShu();
i = 0;
}
}
j++;
}
return pai;
}
public static int chouHua() {
return (int) (Math.random() * 4);
}
public static int chouShu() {
return (int) (Math.random() * 13);
}
public static void print(int[][] k, int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(k[i][j] + "\t");
}
System.out.println();
}
}
public static void printPai(int[][] k, int n) {
for (int i = 0; i < n; i++) {
int a = k[i][0];
int b = k[i][1];
System.out.printf(suits[a] + " " + ranks[b]);
System.out.println();
}
}
}
<pre name="code" class="java">package chapter7;
public class DeckOfCards {
static String[] suits = { "方片", "黑桃", "红桃", "梅花" };
static String[] ranks = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
public static void main(String[] args) {
int[][] k = null;
k = faPai(4);
System.out.println("打印出抽出的序列");
print(k, 4, 2);
System.out.println("打印出抽出的牌");
printPai(k, 4);
}
public static int[][] faPai(int n) {
int j = 1;// 记录抽了几张牌
int[][] pai = new int[n][2];
// 抽第一张牌
pai[0][0] = chouHua();
pai[0][1] = chouShu();
while (j < n) {
for (int i = 0; i < j; i++) {
while ((pai[j][0] == 0) || pai[j][0] == pai[i][0] && pai[j][1] == pai[i][1]) {
pai[j][0] = chouHua();
pai[j][1] = chouShu();
i = 0;
}
}
j++;
}
return pai;
}
public static int chouHua() {
return (int) (Math.random() * 4);
}
public static int chouShu() {
return (int) (Math.random() * 13);
}
public static void print(int[][] k, int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(k[i][j] + "\t");
}
System.out.println();
}
}
public static void printPai(int[][] k, int n) {
for (int i = 0; i < n; i++) {
int a = k[i][0];
int b = k[i][1];
System.out.printf(suits[a] + " " + ranks[b]);
System.out.println();
}
}
}