java编程实现模拟洗牌
时间: 2023-12-20 20:59:01 浏览: 45
以下是Java编程实现模拟洗牌的代码:
```
import java.util.*;
public class ShuffleCards {
public static void main(String[] args) {
// 初始化牌堆
List<Integer> cards = new ArrayList<>();
for (int i = 1; i <= 52; i++) {
cards.add(i);
}
// 洗牌
Collections.shuffle(cards);
// 输出结果
System.out.println(cards);
}
}
```
这里使用了Java集合框架中的List和Collections类。List是一个有序的集合,可以用来存储牌堆中的牌;Collections类中的shuffle方法可以随机打乱List中的元素。最后,将洗好的牌堆输出即可。
相关问题
java 模拟洗牌发牌
好的,可以为您提供一个简单的 Java 代码段来模拟洗牌和发牌过程:
```java
import java.util.ArrayList;
import java.util.Collections;
public class ShuffleAndDealCards {
public static void main(String[] args) {
// 创建一个包含所有牌的 ArrayList
ArrayList<String> cards = new ArrayList<>();
String[] suits = {"♥", "♠", "♣", "♦"};
String[] values = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
for (String suit : suits) {
for (String value : values) {
cards.add(value + suit);
}
}
// 打印出所有牌
System.out.println("所有牌:");
System.out.println(cards);
// 洗牌过程
Collections.shuffle(cards);
// 打印出洗好的牌
System.out.println("洗好的牌:");
System.out.println(cards);
// 发牌过程(假设有四个玩家)
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> player4 = new ArrayList<>();
for (int i = 0; i < cards.size(); i++) {
switch (i % 4) {
case 0:
player1.add(cards.get(i));
break;
case 1:
player2.add(cards.get(i));
break;
case 2:
player3.add(cards.get(i));
break;
case 3:
player4.add(cards.get(i));
break;
}
}
// 打印出四个玩家手中的牌
System.out.println("玩家1 的牌:");
System.out.println(player1);
System.out.println("玩家2 的牌:");
System.out.println(player2);
System.out.println("玩家3 的牌:");
System.out.println(player3);
System.out.println("玩家4 的牌:");
System.out.println(player4);
}
}
```
这个代码段会创建一个包含所有牌的 ArrayList,然后使用 Collections.shuffle() 方法来洗牌。接着,使用一个 for 循环将牌分给四个玩家。最后,打印出四个玩家手中的牌。
用JAVA编程实现抽奖模拟
好的,以下是一个简单的用JAVA编写的抽奖模拟代码:
import java.util.Random;
public class LotterySimulation {
public static void main(String[] args) {
int[] prizes = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 奖品列表
int[] counts = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 奖品数量
int total = 0; // 总奖品数量
for (int count : counts) {
total += count;
}
Random random = new Random();
for (int i = 0; i < 10; i++) { // 抽10次奖
int index = random.nextInt(total); // 随机生成一个奖品索引
int sum = 0;
for (int j = 0; j < prizes.length; j++) {
sum += counts[j];
if (index < sum) { // 找到对应的奖品
System.out.println("第" + (i + 1) + "次抽奖,获得了" + prizes[j] + "号奖品");
counts[j]--; // 奖品数量减1
total--; // 总奖品数量减1
break;
}
}
}
}
}
这段代码实现了一个简单的抽奖模拟,奖品列表和奖品数量可以根据实际情况进行修改。