一、需求
开发一副54张的纸牌,组成有:
四种花色:"♦","♣","♥","♠" 13个点数:"2","3","4","5","6","7","8","9","10","J","Q","K","A" 大小王:🃏👲
二、逻辑分析
制作扑克牌:
- 定义两个数组分别存储花色和点数
- 使用嵌套for循环对花色和点数进行拼接,并将拼接的数据赋值给扑克牌变量中
- 单独将大小王赋值给扑克牌变量
- 所有的数据全部存储到了扑克牌数组中,最后对数组进行遍历输出
洗牌:
- 对扑克牌数组进行for循环拿到一张纸牌A,使用随机数Random随机获取一张纸牌B
- 使用中间变量temp将两张纸牌进行互换
- for循环执行一轮以后每一张纸牌都与另外一张随机的纸牌进行了互换,则洗牌完成
- 使用遍历对扑克牌数组打印输出
三、功能代码
import java.util.Random;
public class PokerTest {
public static void main(String[] args) {
//1:用动态初始化的方式 定义一副扑克牌 长度为54
String[] pokerBox =new String[54];
//2:准备 花色 和 点数
// 扑克牌的花色 四种
String[] colors = {"♦","♣","♥","♠"};
//扑克牌点数 13种
String[] numbers = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
//组装牌?遍历点数 再遍历花色 点数和花色拼接,拼接之后存到数组的指定位置
//2.1 定义变量 index 表示 扑克牌的存储位置(索引)
int index = 0;
//2.2 先遍历点数 每个点数和不同花色进行拼接产生新的牌
for (int i = 0; i < numbers.length; i++) {
//i 遍历点数数组 的索引
String number = numbers[i];//获取点数 2 3 4 5 .....
for (int j = 0; j < colors.length; j++) { //j 遍历花色数组的索引
String color = colors[j];//取出的 "♦","♣","♥","♠"
//拼接一张牌
String card = color+number;//拼接牌
pokerBox[index] = card;//存到指定的位置
index++;//该下一个位置
}
}
//4*13=52 还少 小王 大王
pokerBox[index] = "🃏";
pokerBox[++index]= "👲";
// 3: 查看牌 遍历pokerbox
for (int i = 0; i < pokerBox.length; i++) {
System.out.print(pokerBox[i]+" ");
}
System.out.println();
System.out.println("------------洗牌操作-----------");
//4:洗牌 --- 打乱数组中元素的顺序 其实就是将牌面的位置交换!!!!
/*
洗牌思路
就是将牌的位置进行交换。
遍历扑克牌数组---依次完成交换
每次怎么交换呢?
当前位置 牌A
随机位置 牌B
交换位置 牌A 牌B
*/
Random random = new Random();
for (int i = 0; i < pokerBox.length; i++) {
// String cardA = pokerBox[i];
//随机获取一个索引 表示牌B的索引位置
int indexB = random.nextInt(pokerBox.length);//随机出一个位置
// pokerBox[indexB];
//cardA cardB 交换位置
String temp = pokerBox[i];//牌A
pokerBox[i] = pokerBox[indexB];//牌B
pokerBox[indexB] = temp;
}
System.out.println("---------------洗牌之后遍历---------------");
for (int i = 0; i < pokerBox.length; i++) {
System.out.print(pokerBox[i]+" ");
}
System.out.println();
}
}
四、执行效果
♦2 ♣2 ♥2 ♠2 ♦3 ♣3 ♥3 ♠3 ♦4 ♣4 ♥4 ♠4 ♦5 ♣5 ♥5 ♠5 ♦6 ♣6 ♥6 ♠6 ♦7 ♣7 ♥7 ♠7 ♦8 ♣8 ♥8 ♠8 ♦9 ♣9 ♥9 ♠9 ♦10 ♣10 ♥10 ♠10 ♦J ♣J ♥J ♠J ♦Q ♣Q ♥Q ♠Q ♦K ♣K ♥K ♠K ♦A ♣A ♥A ♠A 🃏 👲
----------------洗牌操作-----------------
----------------洗牌之后遍历-----------------
♥9 ♦A ♥7 ♠4 ♦2 ♣Q ♣6 ♠6 ♣K ♥J ♣9 ♦3 ♦4 ♦10 ♥2 ♦7 ♣5 ♥A ♦8 ♠9 ♥3 ♣4 ♣10 ♥10 ♠K ♠8 ♥8 ♣8 ♣A 👲 ♦5 ♦J ♠10 ♦K ♦9 ♣3 ♠5 ♣7 ♠7 ♥K ♥4 ♦6 🃏 ♥5 ♥6 ♠Q ♥Q ♣J ♠3 ♠A ♠J ♠2 ♣2 ♦Q

226

被折叠的 条评论
为什么被折叠?



