Um die Karten auszuteilen und zu mischen, müssen wir zunächst die Spielkarten einer anderen Farbe und Zahl zuordnen und dann die Karten zufällig mischen Die Reihenfolge der Spielkarten wird festgelegt, dann werden die Karten ausgeteilt, und jeder verteilt die gleiche Anzahl an Spielkarten gleichmäßig.
Wir erstellen hier ein Poker-Paket, um unsere Poker-bezogenen Kurse zu verpacken. Erstellen Sie drei Java-Dateien im Poker-Paket: Die Poker-Datei wird zum Generieren von Spielkarten, einschließlich Farben und Punkten, verwendet. Die Game-Datei wird zum Implementieren der Funktionen zum Erstellen eines Satzes von Spielkarten, zum Mischen und Austeilen von Karten sowie zur Testdatei verwendet wird von uns getestet.
package poker; public class Poker { //扑克牌的点数 private int rank; //扑克牌的花色 private String suit; //创建构造方法 public Poker(int rank, String suit) { this.rank = rank; this.suit = suit; } //以下这些方法我们今天暂时用不上 public int getRank() { return rank; } public void setRank(int rank) { this.rank = rank; } public String getSuit() { return suit; } //重写toString方法 @Override public String toString() { return "{ "+rank+" "+suit+"}"; } }
Erstellen Sie Mitgliedsvariablen von String-Arrays, die Farben speichern.
Diese Farben können nicht geändert werden und sind nur derzeit verfügbar. Das ist möglich Wird in der Klasse verwendet, daher verwenden wir direkt die
private statische endgültige Änderung, um die Sicherheit zu gewährleisten.
private static final String[] suit = {"♥","♣","♦","♠"};
Wir verwenden ein Array, um die Spielkarten zu speichern Fehler können rechtzeitig entdeckt werden.
public List<Poker> buyPoker() { List<Poker> pokers = new ArrayList<>(); for (int i = 0; i < 4; i++) { for (int j = 1; j <=13 ; j++) { Poker poker = new Poker(j,suit[i]); pokers.add(poker); } } return pokers; }
Shuffle
public class Test { public static void main(String[] args) { Game game = new Game(); List<Poker> poker = game.buyPoker(); } }
Wir sehen: Unsere Mischfunktion ist implementiert und die Reihenfolge der generierten Spielkarten ist jedes Mal anders.
Austeilen der Karten
public void shuffle(List<Poker> poker) { for (int i = poker.size()-1; i > 0 ; i--) { Random random = new Random(); int index = random.nextInt(i); swap(poker,i,index); } } //创建私有方法来实现交换 private void swap(List<Poker> pokers,int i,int j) { Poker tmp = pokers.get(i); pokers.set(i,pokers.get(j)); pokers.set(j,tmp); }
Gesamtfunktionsimplementierung
public List<List<Poker>> game(List<Poker> pokers) { List<List<Poker>> hand = new ArrayList<>(); List<Poker> hand1 = new ArrayList<>(); List<Poker> hand2 = new ArrayList<>(); List<Poker> hand3 = new ArrayList<>(); hand.add(hand1); hand.add(hand2); hand.add(hand3); for (int i = 0; i < 3; i++) { //我们这里测试每人分发五张 for (int j = 0; j < 5; j++) { //我们默认每次从下标为0的位置分发,并且分发一次就移除这个下表为0的扑克牌, //移除之后,它后面的数字也会自动补齐到0位置 Poker tmp = pokers.remove(0); hand.get(i).add(tmp); } } return hand; }
Game.java
public class Poker { private int rank; private String suit; public Poker(int rank, String suit) { this.rank = rank; this.suit = suit; } public int getRank() { return rank; } public void setRank(int rank) { this.rank = rank; } public String getSuit() { return suit; } @Override public String toString() { return "{ "+rank+" "+suit+"}"; } }
Test.java
import java.util.ArrayList; import java.util.List; import java.util.Random; public class Game { private static final String[] suit = {"♥","♣","♦","♠"}; public List<Poker> buyPoker() { List<Poker> pokers = new ArrayList<>(); for (int i = 0; i < 4; i++) { for (int j = 1; j <=13 ; j++) { Poker poker = new Poker(j,suit[i]); pokers.add(poker); } } return pokers; } //洗牌 public void shuffle(Listpoker) { for (int i = poker.size()-1; i > 0 ; i--) { Random random = new Random(); int index = random.nextInt(i); swap(poker,i,index); } } private void swap(List pokers,int i,int j) { Poker tmp = pokers.get(i); pokers.set(i,pokers.get(j)); pokers.set(j,tmp); } public List > game(List
pokers) { List > hand = new ArrayList<>(); List
hand1 = new ArrayList<>(); List hand2 = new ArrayList<>(); List hand3 = new ArrayList<>(); hand.add(hand1); hand.add(hand2); hand.add(hand3); for (int i = 0; i < 3; i++) { for (int j = 0; j < 5; j++) { Poker tmp = pokers.remove(0); hand.get(i).add(tmp); } } return hand; } }
Das obige ist der detaillierte Inhalt vonSo implementieren Sie einfache Misch- und Handelsfunktionen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!