1111

package bao;

import java.util.Arrays;

public class a1 {
// 设计一副牌Poker的外部类和一张牌Card的内部类。
// (1)Poker类中定义私有成员花色数组、点数数组以及一副牌的数组属性,提供构造方法(创建并初始化一副牌的数组),
// 随机洗牌方法shuffle(Math.random()获取[0,1)的随机数;
// 获取[n,m)的随机数公式为Math.random()*(m-n)+n)和发牌方法deal。
// (2)Card类中定义花色和点数属性,提供打印信息方法。
// (3)定义测试类并在main()方法中创建一副牌Poker对象,并调用shufle()进行洗牌,调用deal()进行发牌。

public class Card {
// 定义一个新的Card类。(内部类)

private String Suite;// 定义一个私有化的字符串类型的花色变量。

private String Face;// 定义一个私有化的字符串类型的点数变量。

public Card(String Suite, String Face) {
// 定义一个公共的含有参数的Card方法。
this.Suite = Suite;
this.Face = Face;

}

public String toString() {
// 定义一个可以返回扑克牌花色和点数的方法。
return Suite + Face;

}

}

private static String[] Suites = { "♠", "♦", "♣", "♥"};//定义一个私有化的花色的字符串数组
private static String[] Suitess = {""};//定义一个私有化的空花色的字符串数组
private static String[] Facesa={"🃏","🃏"};//定义一个新数组用来存储大小王
private static String[] Faces = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"
// 定义一个私有化的牌面的字符串数组
};

public Card[] Cards;
// 定义一个公共的Card数组,名称叫Cards。

public void poker() {
// 定义一个扑克牌的构造方法。
Cards = new Card[54];// 创建一个Cards数组,并且规定Cards数组的长度为52.

for (int i = 0; i < Suites.length; i++) {
// 定义一个外部for循环,用来排列扑克牌的花色。
for (int j = 0; j < Faces.length; j++) {
// 定义一个内部for循环,用来排列扑克牌的牌面点数。
/* int a = 0;
a++;
// 定义一个新的变量,用来表示卡牌的序数。
Cards[a] = new Card(Suites[i], Faces[j]);
// 这里的打印功能是用来检验是否可以创建出所有的扑克牌
System.out.print(Cards[a]);
a在内循环中所以只能到13次 外循环是四次所以只能重新赋值执行四次
♠2♠3♠4♠5♠6♠7♠8♠9♠10♠J♠Q♠K♠A
♦2♦3♦4♦5♦6♦7♦8♦9♦10♦J♦Q♦K♦A
♣2♣3♣4♣5♣6♣7♣8♣9♣10♣J♣Q♣K♣A
♥2♥3♥4♥5♥6♥7♥8♥9♥10♥J♥Q♥K♥A
*/
Cards[i * 13 + j] = new Card(Suites[i], Faces[j]);//0-12 13-24...51
}

}
Cards[52] = new Card(Suitess[0], Facesa[0]);
Cards[53] = new Card(Suitess[0], Facesa[1]);

}

public void say() {
for (int i = 0; i < 54; i++) {
System.out.print(Cards[i]);
}
System.out.println();
}

public void shuffle() {
int q = Cards.length;
for (int i = 0; i < q; i++) {
int num = (int) (Math.random() * q);
Card temp = Cards[num];
Cards[num] = Cards[i];
Cards[i] = temp;

}
}

public void deal(Card[] Cards) {
System.out.println(Arrays.toString(Cards));
}

public static void main(String[] args) {
a1 p = new a1();
System.out.println("洗牌前:");
p.poker();
p.say();
System.out.println("洗牌后:");
p.shuffle();
p.say();

}

}

 

 

 

posted @ 2022-03-27 16:15  麦当劳在逃鸡块  阅读(182)  评论(0)    收藏  举报