package com.test.game;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Card {
private static String[] colours = new String[]{"E", "L", "H", "S"};
private static String[] cardValues = new String[]{"7", "8", "9", "10", "B", "D", "K", "A"};
private String cardValue;
private String colour;
private Card(String cardValue, String colour) {
this.cardValue = cardValue;
this.colour = colour;
}
public String toString() {
return cardValue colour;
}
static void CardDeck() {
ArrayList<Card> cards = new ArrayList<Card>();
for (int i = 0; i < colours.length; i ) {
for (int j = 0; j < cardValues.length; j ) {
cards.add(new Card(cardValues[j], colours[i]));
}
}
System.out.println(cards);
}
static void Collections(ArrayList<Card> cards, int seed){
Collections.shuffle(cards, new Random(seed));
System.out.println(cards);
}
public static void main(String[] args) {
System.out.println();
}
}
package com.test.game;
import java.util.ArrayList;
import java.util.Random;
public class Game {
public static void main(String[] args) {
Card.CardDeck();
Card.Collections();
}
}
所以我現在正在開發一款紙牌游戲。第一個類CardDeck()在 Game 類中呼叫此方法的方法的幫助下創建一個包含卡片的陣列串列,并且作業得非常好。現在在 Method Collections() 中,這個陣列串列應該被打亂。這樣卡片的順序是隨機的。
因此我有兩個問題。首先是我洗牌的方式對嗎?我如何Collectinons()在另一個類中呼叫這個方法?由于它有引數,它不起作用。我發現了一些類似的問題,但它們并不適合我。(創建一個新實體)
有人可以幫忙嗎?
uj5u.com熱心網友回復:
而不是列印串列CardDeck(您應該重命名為cardDeck),只需回傳卡片組,以便呼叫者可以使用它:
static List<Card> cardDeck() {
ArrayList<Card> cards = new ArrayList<Card>();
for (int i = 0; i < colours.length; i ) {
for (int j = 0; j < cardValues.length; j ) {
cards.add(new Card(cardValues[j], colours[i]));
}
}
return cards;
}
然后,您可以將其傳遞給您的方法Collections(您應該將其重命名為shuffle):
static void shuffle(List<Card> cards, int seed){
Collections.shuffle(cards, new Random(seed));
}
并且不要在那里列印它:呼叫者之后總是可以列印它。
你的main方法變成:
public static void main(String[] args) {
List<Card> deck = Card.cardDeck();
Card.shuffle(deck, whatever);
System.out.println(deck);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/388312.html
