- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在java中创建一个洗牌器,通过执行进出洗牌来执行“完美洗牌”(将牌分成两半并交错每张牌,然后再重复一次)。我有以下代码来执行随机播放。
public class Shuffle {
private static final int shuffleCount = 2;
private static final int valueCount = 52;
public static void main(String[] args){
System.out.println("Result of " + shuffleCount + "perfect shuffles" );
int[] value1 = new int[valueCount];
for (int i = 0; i < value1.length; i++){
value1[i] = i;
}//ends valueCount for loop
for (int j = 1; j <= shuffleCount; j++){
riffleShuffle(value1);
System.out.println(" " + j +":\n");
for(int k = 0; k < value1.length; k++){
System.out.println(" " + value1[k]);
}
System.out.println();
}//ends shuffleCount for loop
System.out.println();
}
public static void riffleShuffle(int[] value){
int[] temp = new int[value.length];
int startFirst = 0;
int startSecond = value.length / 2;
for (int i = 0; i < value.length; i+=2){
temp[i] = value[startFirst];
temp[i+1] =value[startSecond] ;
startFirst ++;
startSecond ++;
}
for (int i =0; i< value.length; i++)
value[i] = temp[i];
}
}
我正在尝试将其实现到我的套牌类中,因此它不会洗牌数字 0-52,而是洗牌一副牌。我的套牌类如下所示;
public class Deck {
private List<Card> cards;
private int size;//number of cards in deck
public Deck(String[] faces, String[] suits, int[] values){
cards = new ArrayList<Card>();
for(String suit: suits)
for(int value = 0; value < values.length && value < faces.length; value++){
Card a = new Card(faces[value], suit, values[value]);
cards.add(a);
}
size = cards.size();
shuffle();
}//ends deck
public boolean isEmpty(){
return cards.isEmpty() && size == 0;
}//ends isEmpty
public int size(){
return cards.size();
}//ends size
public void shuffle(){
for (int i = cards.size() - 1; i > 0; i--){
int pos = 0;
Card a = cards.remove(pos);
cards.add(i, a);
}
}//ends shuffle
public Card deal(){
size --;
Card a = cards.get(size);
return a;
}//ends Card deal
@Override
public String toString(){
String deck_rtn = "\nsize = " + size + "\n\nUndealt cards: \n\n";
for(int k = size -1; k >= 0; k--){
deck_rtn = deck_rtn + cards.get(k);
if (k != 0){
deck_rtn = deck_rtn + ", ";
}//ends first if
if ((size - k) % 2 == 0) {
deck_rtn = deck_rtn + "\n";
}//ends second if
}
deck_rtn = deck_rtn + "\nDealt cards: \n";
for (int k = cards.size() - 1; k >= size; k--){
deck_rtn = deck_rtn + cards.get(k);
if (k != size){
deck_rtn = deck_rtn + ", ";
}
if ((k - cards.size()) % 2 ==0){
deck_rtn = deck_rtn + ", ";
}
}
deck_rtn = deck_rtn + "\n";
return deck_rtn;
我发现我的问题源于尝试将其实现到我的套牌类中的洗牌方法中。
public void shuffle(){
for (int i = cards.size() - 1; i > 0; i--){
int pos = 0;
Card a = cards.remove(pos);
cards.add(i, a);
}
}//ends shuffle
有人有什么想法吗?非常感谢所有帮助,谢谢。附言。我试图尽可能避免使用快速集合类方法,我对 java 很陌生,并且想在使用集合类之前首先完全理解事物。
最佳答案
我不确定你所说的完美洗牌是什么意思。 java的Collections.shuffle方法有什么问题吗?
List<Card> cards = new ArrayList<>(52);
Collections.shuffle(cards);
关于java - 创建一个 Java 洗牌程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397518/
这是一个面试问题。请给一些提示: 使用 vector 实现一个方法,洗一副牌。 public class Card { private int value; Card(int v) {
我非常是 C++ 的新手,我还没有完全理解基本概念,但我的教授希望我们编写一个算法来洗牌和展示一副纸牌和一副牌需要表示为二维数组。 但是我在模拟一副纸牌时遇到了麻烦! #include #inclu
我想用 php 创建随机桥牌的集合。我认为我可以将一副有序的纸牌编码为下面的字符串 $deal(考虑到大写和小写时,我喜欢它有 52 个字母)。我发现了 php 函数 str_shuffle。所以我想
我想随机重新排序矩阵 A 的行以生成另一个新矩阵。如何在 R 中做到这一点? 最佳答案 使用 sample()以(伪)随机顺序生成行索引并使用 [ 重新排列矩阵. ## create a matrix
我计划在 android-Java 上开发一个简单的纸牌游戏,在我的应用程序中,我洗牌,所以我想知道将我的牌组存储在数组或堆栈中的最佳方法是什么..?堆栈的唯一问题是我不知道如何对其进行洗牌。 最佳答
我正在尝试创建一种方法,使用 Arraylist 随机打乱基元数组。我想知道 .get(); 方法是否是在我的 Arraylist 上使用的正确方法,在 for 循环中的普通数组上它只是 array[
我是 C++ 的新手,但是,我正在尝试创建一些盐和胡椒噪音。它几乎完成了,只是在这之间我想洗牌一个整数数组,无论我做什么,无论我使用什么洗牌功能,我总是得到令人讨厌的“从这里需要”,它没有告诉我任何事
我被要求编写一个程序(主要是一个方法)来洗牌。我编写了以下程序: public class Deck { //////////////////////////////////////// // Dat
我已经看到其他与此相关的话题,但似乎没有一个能回答我的问题。我尝试在 vector 上使用 shuffle() 函数,但我一直收到错误消息: deck_of_cards.cpp:34:5: error
是否与sort 一致导致更随机的数组或者是 sort这里只是浪费? use List::Util qw(shuffle); @random1 = shuffle sort keys %vocables
首先,这个问题是从 this 中摘下来的问题。我这样做是因为我认为这部分比较长问题的子部分更大。如有冒犯,请见谅。 假设您有一个生成随机性的算法。现在你如何测试它?或者更直接地说 - 假设您有一个洗牌
我正在制作一个配对游戏,其中有 8 个 ImageView 和 4 个不同的图像。我想知道页面何时加载是否可以交换 ImageView 的位置? 让每张图片的顺序每次都变? 最佳答案 试试这个:
我正在制作一款纸牌游戏,需要在游戏开始前洗牌。通过在将数组插入数据库之前对其进行混洗,可以毫无问题地完成此操作。然而,在游戏开始后,有些情况下玩家需要洗牌。我想到的唯一方法是重新洗牌后重新插入套牌,但
我正在运行一个网站,其中用户导航子目录的唯一方式是通过随机页面(类似于维基百科的随机页面功能)。我已经实现了调用随机页面的代码并且它工作正常,但我想尽量减少在 onclick 执行后再次调用同一页面的
我想用一个条件打乱一个 2d Numpy 数组。例如,仅随机播放非零值。 import numpy as np a = np.arange(9).reshape((3,3)) a[2,2] = 0 #
我将如何获取 RLMArray 并对其进行洗牌,以便 RLMArray 中的当前项目是随机的。 我已经查看了 RLMArray 的文档,但是我没有看到对其进行洗牌的好方法。 最佳答案 你最好的选择可能
在我的 Qt c++ 应用程序中,我有一个包含一组 QString 值的 QStringList!我想随机播放(任意更改 QStringList 中 QString 的位置)。 perl中是否有任何默
我知道它是如何工作的,但我在排序和配对方面仍然有问题,这样我才能确定获胜者。 将它们配对(配对是具有相同值(value)的卡片。)例如,红心 A 和黑桃 A 组成一对。然后我数那些对。拥有最高对子的手
我有一组这样的 div: 我需要在点击其中一个红色 div 时随机播放它们,但点击的 div 应该始终与黄色 div 交换。 fiddle here $('.box-red').click(funct
// deck of cards // below are initializations #include #include #include using namespace std; int
我是一名优秀的程序员,十分优秀!