Heim Java JavaErste Schritte Implementieren Sie ein einfaches Pokerspiel mit Java

Implementieren Sie ein einfaches Pokerspiel mit Java

Sep 18, 2020 pm 04:56 PM
java

Implementieren Sie ein einfaches Pokerspiel mit Java

Poker-Minispiel:

(Empfohlenes Tutorial: Java-Kurs)

Einführung in das Spiel: Definieren Sie fünf Personen, die ein Pokerspiel spielen. Das Gameplay besteht darin, dass 5 Personen aus einem Kartenspiel ohne König auswählen oder König. Es werden jeweils 4 Karten gezogen, und es gibt vier Kartentypen: ♥, ♣, ♠ und ♦. Die Größe der Karten reicht von 1 bis 13. (Der Einfachheit halber werden hier nur 1-5 genommen).

1. Welcher Spieler auch immer das Pik-♠A auf der Hand hat, der Spieler gewinnt.

package poker;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.concurrent.Callable;
public class Game {
 public static void main(String[] args) {
        //定义5名玩家,使用List
        List<Player> playerList=new ArrayList<>();
        playerList.add(new Player("于美人"));
        playerList.add(new Player("小婷子"));
        playerList.add(new Player("小晨子"));
        playerList.add(new Player("小艾"));
        playerList.add(new Player("小珍子"));
        //定义扑克牌顺序表
        List<Card> cardList=new ArrayList<>();
        //初始化扑克牌
        initializeCards(cardList);
        System.out.println(cardList);
        //调用collections下的shuffle(洗牌)方法
        //进行洗牌
        Collections.shuffle(cardList);
        //System.out.println("抽牌前,牌组中的牌:");
        System.out.println(cardList);
        //发牌
        int n=2;//每名玩家发几张牌
        for(int i=0;i<n;i++){//一共发n轮牌
            for(Player player:playerList){//每名玩家一次抽牌
                Card card=cardList.remove(0);//从牌组中,抽一张牌出来
                player.cardList.add(card);//把这张牌放到当前玩家的手中
            }
        }
        System.out.println("现在牌组中剩余的牌:");
        System.out.println(cardList);
        System.out.println("交换牌之前:");
      for(Player player:playerList){
            System.out.printf("玩家[%s]的手牌是: %s%n",player.name,player.cardList);
        }
        //要找的牌,方法1
        Card toFoundCard=new Card("♠",1);
        for(Player player:playerList){
            for(Card card:player.cardList){
                //比较每张牌和要找的是否为同一张牌
                if(card.equals(toFoundCard)){
                    System.out.println(player.name+"获胜");
                    return;
                }
            }
        }
        System.out.println("无人获胜");
 }
 //要找的牌,方法2
        Card toFoundCard2=new Card("♠",1);
       for(Player player:playerList){
            if(player.cardList.contains(toFoundCard)) {
                System.out.println(player.name + "获胜");
                return;
            }
          }
    private static void initializeCards(List<Card> cards){
        for(String suit:new String[]{"♠","♥","♦","♣"}){
            for(int rank=1;rank<=5;rank++){
                Card card=new Card(suit,rank);
                //把扑克牌放入牌组中
                cards.add(card);
            }
        }
    }

2. Lassen Sie jeden Spieler der Reihe nach eine Karte aus der Hand seines nächsten Spielers ziehen und dann nach ♠A suchen.

//添加打印手牌的方法
public static void printPlayerHandCard(List<Player> playerList){
        for(Player player:playerList){
            System.out.printf("玩家[%s]的手牌是:%s%n",player.name,player.cardList);
        }
    }
    //集体实现交换的过程
         //交换牌
        //每名玩家随机抽取下家的一张牌
        Random random=new Random();
        for(int i=0;i<playerList.size();i++){
            Player currentPlayer=playerList.get(i);
            //下家就是按照前后关系的下一个,最后一名玩家抽取第0个
            Player nextPlayer=playerList.get(i!=playerList.size()-1?i+1:0);

            //要取的牌的下标
            int toDrawIndex=random.nextInt(nextPlayer.cardList.size());
            //取牌
            Card drawCard=nextPlayer.cardList.remove(toDrawIndex);
            //放入当前玩家的手中
            currentPlayer.cardList.add(drawCard);

        }
        System.out.println("交换牌之后:");
        printPlayerHandCard(playerList);

3. Yu Meiren ist die Gottheit des Glücksspiels, sie hat die Fähigkeit, Karten zu ändern: Sobald sie kein ♠A auf der Hand hat, kann sie die erste Karte in ♠A ändern. (Vor dem Kartentausch besteht die Möglichkeit, einmal zu wechseln; nach dem Kartentausch besteht die Möglichkeit, einmal zu wechseln)

Card toFoundCard=new Card("♠",1);
        //已知于美人的下标为0
        Player 于美人=playerList.get(0);
        if(!于美人.cardList.contains(toFoundCard)){
            于美人.cardList.set(0,toFoundCard);
        }
        System.out.println("于美人第一次发功:");
        printPlayerHandCard(playerList);
        System.out.println("交换牌之后:");
        printPlayerHandCard(playerList);
        //此处交换牌过程省略。。。。。。。。。。。。。。
        if(!于美人.cardList.contains(toFoundCard)){
            于美人.cardList.set(0,toFoundCard);
        }
        System.out.println("于美人第二次发功:");
        printPlayerHandCard(playerList);

Definieren Sie eine neue Spielerklasse:

package poker;

import java.util.ArrayList;
import java.util.List;

public class Player {

    public List<Card> cardList=new ArrayList<>();
    public String name;
    public Player(String name){
        this.name=name;
    }
}

Definieren Sie eine Spielkartenklasse:

package poker;
import java.util.Objects;
public class Card {
    public String suit;//花色
    public int rank;//分值
    //构造方法
    public Card(String suit,int rank){
        this.rank=rank;
        this.suit =suit;
    }
    @Override
    public String toString() {
        return String.format("[%s%d]",suit,rank);
    }
    //重写比较相等的方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Card card = (Card) o;
        return rank == card.rank &&
                Objects.equals(suit, card.suit);
    }
}

Hinweis:

(1) Um die Überschreibung der Vergleichsgleichheitsmethode neu zu definieren.

(2) Achten Sie auf die Schreibweise der foreach-Methode.

Verwandte Empfehlungen: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonImplementieren Sie ein einfaches Pokerspiel mit Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Schreiben effektiver PHP -Kommentare Schreiben effektiver PHP -Kommentare Jul 18, 2025 am 04:44 AM

Kommentare können nicht nachlässig sein, da sie die Gründe für die Existenz des Codes und nicht die Funktionen erklären möchten, z. B. die Kompatibilität mit alten Schnittstellen oder Einschränkungen von Drittanbietern, sonst können Personen, die den Code lesen, nur auf Vermutungen angewiesen. Die Bereiche, die kommentiert werden müssen, umfassen komplexe bedingte Urteile, spezielle Fehlerbehandlungslogik und vorübergehende Bypass -Beschränkungen. Eine praktischere Möglichkeit, Kommentare zu schreiben, besteht darin, Einzelzeilen-Kommentare auszuwählen oder Kommentare basierend auf der Szene zu blockieren. Verwenden Sie Dokumentblock Kommentare, um Parameter zu erläutern und Werte zu Beginn von Funktionen, Klassen und Dateien zurückzugeben, und halten Sie die Kommentare aktualisiert. Für eine komplexe Logik können Sie dem vorherigen eine Zeile hinzufügen, um die Gesamtabsicht zusammenzufassen. Verwenden Sie gleichzeitig keine Kommentare zum Versiegelungscode, sondern verwenden Sie Versionsteuerungswerkzeuge.

Verbesserung der Lesbarkeit mit Kommentaren Verbesserung der Lesbarkeit mit Kommentaren Jul 18, 2025 am 04:46 AM

Der Schlüssel zum Schreiben guter Kommentare besteht darin, "warum" zu erklären, anstatt nur "was getan wurde", um die Lesbarkeit des Codes zu verbessern. 1. Kommentare sollten logische Gründe erklären, wie z. B. Überlegungen für die Wertauswahl oder -verarbeitung; 2. Verwenden Sie Absatzanmerkungen für eine komplexe Logik, um die Gesamtidee von Funktionen oder Algorithmen zusammenzufassen. Fegen regelmäßig Kommentare beibehalten, um die Konsistenz mit dem Code zu gewährleisten, irreführend und gegebenenfalls veraltete Inhalte zu löschen. V.

Tipps zum Schreiben von PHP -Kommentaren Tipps zum Schreiben von PHP -Kommentaren Jul 18, 2025 am 04:51 AM

Der Schlüssel zum Schreiben von PHP -Kommentaren liegt in der Klärung des Zwecks und der Spezifikationen. Kommentare sollten "Warum" und nicht "was getan" erklären, um Redundanz oder zu Einfachheit zu vermeiden. 1. Verwenden Sie ein einheitliches Format wie Docblock (/*/) für Klassen- und Methodenbeschreibungen, um die Lesbarkeit und die Kompatibilität der Werkzeuge zu verbessern. 2. Betonen Sie die Gründe für die Logik, z. B. warum JS -Sprünge manuell ausgeben müssen. 3. Fügen Sie eine Übersichtsbeschreibung vor komplexem Code hinzu, beschreiben Sie den Prozess in Schritten und helfen Sie, die Gesamtidee zu verstehen. V. Gute Anmerkungen können die Kommunikationskosten senken und die Effizienz der Code -Wartung verbessern.

PHP -Entwicklungsumgebung Setup PHP -Entwicklungsumgebung Setup Jul 18, 2025 am 04:55 AM

Der erste Schritt besteht darin, das integrierte Umgebungspaket XAMPP oder MAMP auszuwählen, um einen lokalen Server zu erstellen. Der zweite Schritt besteht darin, die entsprechende PHP -Version entsprechend den Projektanforderungen auszuwählen und mehrere Versionen zu konfigurieren. Der dritte Schritt besteht darin, VSCODE oder PHPSTORM als Editor auszuwählen und mit Xdebug zu debuggen. Darüber hinaus müssen Sie Komponist, PHP_CODESNIFFER, PHPUNIT und andere Tools installieren, um die Entwicklung zu unterstützen.

Effektives PHP -Kommentar Effektives PHP -Kommentar Jul 18, 2025 am 04:33 AM

Der Schlüssel zum Schreiben von PHP -Kommentaren ist klar, nützlich und prägnant. 1. Kommentare sollten die Absicht hinter dem Code erläutern, anstatt nur den Code selbst zu beschreiben, z. B. den logischen Zweck komplexe bedingte Urteile zu erklären. 2. Fügen Sie Kommentare zu Schlüsselszenarien wie magische Werte, alte Codekompatibilität, API -Schnittstellen usw. hinzu, um die Lesbarkeit zu verbessern. 3. Vermeiden Sie doppelte Codeinhalte, halten Sie ihn präzise und spezifisch und verwenden Sie Standardformate wie PHPDOC. 4. Die Kommentare sollten synchron mit dem Code aktualisiert werden, um die Genauigkeit zu gewährleisten. Aus der Sicht anderer sollten gute Kommentare angesehen werden, die Kosten des Verständnisses senken und zu einem Codes verstehen, das Navigationsgerät versteht.

PHP -Kommentarsyntax PHP -Kommentarsyntax Jul 18, 2025 am 04:56 AM

Es gibt drei allgemeine Möglichkeiten, PHP-Kommentare zu verwenden: Einzeilen-Kommentare sind geeignet, um die Codelogik kurz zu erklären, z. B. // oder # für die Erläuterung der aktuellen Zeile. Multi-Line-Kommentare /*...*/ eignen sich für eine detaillierte Beschreibung der Funktionen oder Klassen; Dokumentieren Sie Kommentare DocBlock beginnen mit /**, um Eingabeaufforderungsinformationen für die IDE bereitzustellen. Wenn Sie es verwenden, sollten Sie Unsinn vermeiden, weiterhin synchron aktualisieren und keine Kommentare verwenden, um Codes für lange Zeit zu blockieren.

PHP -Vergleich Operatoren PHP -Vergleich Operatoren Jul 18, 2025 am 04:57 AM

PHP -Vergleichsbetreiber müssen auf die Typ -Conversion -Probleme aufmerksam machen. 1. Verwendung == nur zu vergleichen, um Werte zu vergleichen, und die Typumwandlung wird durchgeführt, wie z. B. 1 == "1" ist wahr; 2. Verwendung ===, um den gleichen Wert zu benötigen wie der Typ, wie z. B. 1 === "1" ist falsch; 3. Größenvergleich kann für Werte und Zeichenfolgen wie "Apple" verwendet werden

PHP -Kommentare verstehen PHP -Kommentare verstehen Jul 18, 2025 am 04:24 AM

PHP -Kommentare sind Teile des Code, die zur Interpretation von Logik, Tag -Aufgaben oder vorübergehend Code verwendet werden und nicht vom Server ausgeführt werden. Zu den Kernfunktionen gehören: 1. Verbesserung der Lesbarkeit des Codes, das das schnelle Verständnis anderer und zukünftiges Selbst erleichtert; 2. unterstützt zwei Formate: Einzelzeilen-Kommentare (// oder #) und Mehrzeilen-Kommentare (//); 3.. Common verwendet Deckfunktionsbeschreibungen, komplexe logische Erklärungen, Todo -Markierungen und Deaktivierungscode während des Debuggens; 4. Effektive Kommentare sollten doppelten Code vermeiden, die Gründe und nicht die Operationen erläutern, ihn präzise halten und bei Bedarf Versionsunterlagen hinzufügen, wodurch die Effizienz der Code -Wartung erheblich verbessert wird.

See all articles