Heim  >  Artikel  >  Java  >  So implementieren Sie einfache Misch- und Handelsfunktionen in Java

So implementieren Sie einfache Misch- und Handelsfunktionen in Java

WBOY
WBOYnach vorne
2023-05-10 20:22:041045Durchsuche

Code-Idee

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.

Code-Implementierung

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.

Die Java-Datei von Poker abstrahiert eine Spielkarte.

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+"}";
    }
}

Die Java-Datei des Spiels implementiert die Funktionen zum Mischen und Austeilen von Karten.

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 = {"♥","♣","♦","♠"};

Erstellen Sie ein Spielkartenspiel.

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;
    }

So implementieren Sie einfache Misch- und Handelsfunktionen in JavaShuffle

public class Test {
    public static void main(String[] args) {
        Game game = new Game();
        List<Poker> poker = game.buyPoker();
    }
}

Ähnlich machen wir einen Test.

So implementieren Sie einfache Misch- und Handelsfunktionen in JavaWir sehen: Unsere Mischfunktion ist implementiert und die Reihenfolge der generierten Spielkarten ist jedes Mal anders.

Austeilen der Karten

Hier erstellen wir ein zweidimensionales Array, um die Hände der drei Spieler zu speichern.

	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

Poker.java

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(List 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 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen