[JAVA] Ich habe die Serverseite des Online-Kartenspiels gemacht made

Letztes Mal hier

Erstellen Sie eine Deck-Klasse

Ja, diesmal werde ich endlich ein Deck machen. Lassen Sie uns die Papierbündelschnittstelle, die wir das letzte Mal erstellt haben, fest verwenden.

Machen Sie zuerst eine Klasse

public class Deck{
    private Stack<Card> deck = new Stack();
}

Ja, wir haben ein Deck.

Das ist ein Witz, aber jetzt haben wir eine Deck-Klasse mit Karten als Stapel. Java Stack ist übrigens eine Unterklasse von List.

Da das Deck im Grunde nur von oben herausgenommen wird, habe ich den Stapel anstelle des Arrays oder der linearen Liste verwendet.

Implementieren Sie CardSheaf.

public class Deck implements CardSheaf {

    private Stack<Card> deck = new Stack<>();

    public Deck(List<Card> deck) {
        this.deck.addAll(deck);
    }

    public Deck(Card... deck) {
        this.deck.addAll(Arrays.asList(deck));
    }

    @Override
    public int indexOf(Card card) {
        return CardSheaf.indexOf(deck, card);
    }

    //Die CardSheaf-Klasse bietet keine Standardimplementierung von cardSize, daher haben wir sie implementiert.
    //Rufen Sie einfach die Anzahl der Elemente ab.
    @Override
    public int cardSize() {
        return deck.size();
    }

    @Override
    public void addCard(Card card) {
        CardSheaf.addCard(deck, card);
    }

    @Override
    public void removeCard(Card card) {
        CardSheaf.removeCard(deck, card);
    }

    @Override
    public void removeCard(int index) {
        CardSheaf.removeCard(deck, index);
    }

    @Override
    public Card find(int number, Card.Mark mark) {
        return CardSheaf.find(deck, number, mark);
    }

    @Override
    public int indexOf(int number, Card.Mark mark) {
        return CardSheaf.indexOf(deck, number, mark);
    }

    @Override
    public Card getCard(int index) {
        return CardSheaf.getCard(deck, index);
    }

    @Override
    public Card takeCard(int index) {
        return CardSheaf.takeCard(deck, index).getValue();
    }
}

In der Deck-Klasse wird die statische Methode von CardSheaf unverändert verwendet, da die Karte als Liste behandelt wird.

Definieren Sie die erforderlichen Methoden für Deck

import java.util.*;

public class Deck implements CardSheaf {

    private Stack<Card> deck = new Stack<>();

    /**
     *Initialisieren Sie das Deck mit den Karten in der Liste.
     * @param deck Eine Liste aller Karten, die Sie zuerst in Ihr Deck legen möchten
     */
    public Deck(List<Card> deck) {
        this.deck.addAll(deck);
    }

    /**
     *Initialisieren Sie das Deck mit den Karten im Array.
     * @param deck Eine Reihe aller Karten, die Sie zuerst in das Deck legen möchten
     */
    public Deck(Card... deck) {
        this.deck.addAll(Arrays.asList(deck));
    }

    //Abkürzung
    /**
     *Nimm die oberste Karte des Decks heraus.
     */
    public Card take_top() {
        return deck.pop();
    }

    /**
     *Wird verwendet, um den ersten Angriff zu Beginn des Spiels zu beurteilen.
     * @return Die oberste Karte im Deck
     */
    public Card first_step() {
        return this.take_top();
    }

    /**
     *Ziehe eine Karte.
     * @return Die oberste Karte im Deck
     */
    public Card draw() {
        return this.take_top();
    }

    /**
     *Wird bei Beschädigung aufgerufen.
     * @return Die oberste Karte im Deck
     */
    public Card damage() {
        return this.take_top();
    }

    /**
     *Mische das Deck.
     */
    public void shuffle() {
        Collections.shuffle(deck);
    }

    /**
     *Bestimmen Sie, ob sich Karten im Deck befinden.
     * @Geben Sie true zurück, wenn sich Karten im Deck befinden, andernfalls false
     */
    public boolean hasCard() {
        return cardSize() > 0;
    }
}

Das war's für diese Zeit.

Nächstes Mal

Recommended Posts

Hat die Serverseite des Online-Kartenspiels gemacht ⑤
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Ich habe ein Docker-Image für die japanische Version von SDAPS erstellt
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Ich habe im Frühjahr einen Restful-Server und -Client erstellt.
Eine kurze Erklärung eines Labyrinthspiels, das in Java für Cousins der Grundschule erstellt wurde
Ich habe versucht, eine japanische Version der Automatik-Mail von Rails / devise zu erstellen
Erstellt die Serverseite eines Online-Kartenspiels [Inhaltsverzeichnis]
Ich habe eine Chat-App erstellt.
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
Eine Geschichte über die Verbindung zu einem CentOS 8-Server mit einem alten Ansible
Ich habe ein Juwel gemacht, um den Text des Org-Modus in Qiita zu posten
Ich habe ein Tool erstellt, um den Unterschied zwischen CSV-Dateien auszugeben
Ich habe eine shopify App @java erstellt
Ich habe eine einfache Empfehlungsfunktion erstellt.
Ich habe eine Anmerkung in Java gemacht.
Ich habe eine passende App erstellt (Android App)
Ich habe ein Tool zur Generierung von package.xml erstellt.
[Android] Ich habe eine Schrittzähler-App erstellt.
[Ruby] Ich habe einen einfachen Ping-Client erstellt
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Taschenrechner-App für Android erstellt
Ich habe ein neues Java-Bereitstellungstool erstellt
Ich habe eine Janken App mit Android gemacht
Ein einfaches Beispiel für das MVC-Modell
Lerne Java mit Progate → Ich werde es erklären, weil ich selbst ein einfaches Spiel gemacht habe
Rails6 Ich möchte ein Array von Werten mit einem Kontrollkästchen erstellen
Ich habe ein Beispiel erstellt, wie ein Delegat in Swift UI 2.0 mit MapKit geschrieben wird