[JAVA] Ich möchte eine Methode aufrufen und die Nummer zählen

Das Ergebnis, das ich an die Konsole ausgeben möchte, lautet wie folgt

Willkommen beim Blackjack! Ihre erste Karte ist Herz Q. Die erste Karte des Dealers ist ein Diamant A. Ihre zweite Karte ist ein Herz A. Die zweite Karte des Dealers ist ein Geheimnis Ihr aktueller Punkt ist 11 Ziehst du eine Karte? Ja: y oder Nein: n

―――――――――――――――――――――――――――― Ich möchte die Methode verwenden, um den Teil der Nummer 1, 2, 3 des Spielers zu machen ...

Die aktuelle Situation ist wie folgt

Willkommen beim Blackjack! Ihre 0. Karte ist das Q des Herzens Die erste Karte des Dealers ist ein Diamant A. Ihre 0. Karte ist A of Heart Die zweite Karte des Dealers ist ein Geheimnis Ihr aktueller Punkt ist 11 Ziehst du eine Karte? Ja: y oder Nein: n

Ich werde den Quellcode setzen

package blackjack;

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

public class MainGame {

	public static void main(String[] args) {
		System.out.println("Willkommen beim Blackjack!");

		List<Integer> deck = new ArrayList<Integer>(52);

		Deck.shuffleDeck(deck); //Rufen Sie die Methode auf

		//Mischkarten zeigen. Für Devac
		//		for(Integer i : deck) {
		//	            System.out.println(i);
		//	        }

		List<Integer> player = new ArrayList<>(); //Erstellen Sie die Handliste eines Spielers
		List<Integer> dealer = new ArrayList<>(); //Erstellen Sie eine Händlerhandliste

		//Der Spielerhändler zieht zwei Karten
		player.add(deck.get(0));
		dealer.add(deck.get(1));
		player.add(deck.get(2));
		dealer.add(deck.get(3));

		//Punkte in der Hand des Spielers / Dealers anzeigen
		System.out.println("Ihre"
				+ Player.getPlayerHands() + "Die erste Karte ist"
				+ Deck.toDescription(player.get(0)));
		System.out.println("Die erste Karte des Dealers ist"
				+ Deck.toDescription(dealer.get(0)));
		System.out.println("Ihre"
				+ Player.getPlayerHands() + "Die erste Karte ist"
				+ Deck.toDescription(player.get(1)));
		System.out.println("Die zweite Karte des Dealers ist ein Geheimnis");

		//Sammeln Sie Spieler- und Dealer-Punkte
		int playerPoint = Deck.sumPoint(player);
		int dealerPoint = Deck.sumPoint(dealer);

		System.out.println("Ihr aktueller Punkt ist"
				+ playerPoint + "ist");

		//Phase, in der der Spieler eine Karte zieht
		while (true) {
			System.out.println("Ziehst du eine Karte? Ja:y or No:n");
			//Akzeptiert Tastatureingaben und weist sie der Variablen str zu

			Scanner scan = new Scanner(System.in);
			String str = scan.next();

			if ("n".equals(str)) {
				break;
			} else if ("y".equals(str)) {
				//Füge deiner Hand 1 Karte vom Stapel hinzu
				player.add(deck.get(Deck.deckCount));

				//Ein Deck und eine Hand vorrücken
				Deck.deckCount++;
				Player.setPlayerHands(Player.getPlayerHands() + 1);

				System.out.println("Ihre"
						+ Player.getPlayerHands() + "Die erste Karte ist"
						+ Deck.toDescription(player.get(Player.getPlayerHands() - 1)));
				playerPoint = Deck.sumPoint(player);
				System.out.println("Die aktuelle Summe ist" + playerPoint);
				//Spieler Burst Check
				if (Deck.isBusted(playerPoint)) {
					System.out.println("Leider platzte es. Der Dealer gewinnt.");
					return;
				}
			} else {
				System.out.println("Ihre Eingabe ist"
						+ str + "ist. Geben Sie y oder n ein.");
			}
		}

		//Phase zum Ziehen von Karten, bis der Dealer 17 oder mehr auf der Hand hat
		while (true) {
			//Brechen Sie, wenn Sie 17 oder mehr auf der Hand haben
			if (dealerPoint >= 17) {
				break;
			} else {
				//Füge deiner Hand 1 Karte vom Stapel hinzu
				dealer.add(deck.get(Deck.deckCount));
				//Ein Deck vorrücken
				Deck.deckCount++;

				//Berechnen Sie die Gesamtpunkte des Händlers
				dealerPoint = Deck.sumPoint(dealer);
				//Händler Burst Check
				if (Deck.isBusted(dealerPoint)) {
					System.out.println("Der Händler ist geplatzt. Du gewinnst!");
					return;

				}
			}
		}

		//Punkte vergleichen
		System.out.println("Ihr Punkt ist" + playerPoint);
		System.out.println("Der Punkt des Händlers ist" + dealerPoint);

		if (playerPoint == dealerPoint) {
			System.out.println("Es ist eine Zeichnung.");
		} else if (playerPoint > dealerPoint) {
			System.out.println("Gewonnen!");
		} else {
			System.out.println("hat verloren···");
		}

	}

}
package blackjack;

import java.util.Collections;
import java.util.List;

public class Deck {

	static int deckCount; //Definieren Sie eine Variable deckCount, die den Fortschritt des Decks aufzeichnet

	//Eine Methode, um einen Wert in das Deck zu setzen und ihn zu mischen
	public static void shuffleDeck(List<Integer> deck) {
		//1 auf der Liste-Ersetzen Sie 52 Seriennummern
		for (int i = 1; i <= 52; i++) {
			deck.add(i);
		}
		//Mische dein Deck
		Collections.shuffle(deck);
	}

	//Methode zur Berechnung der aktuellen Gesamtpunkte
	public static int sumPoint(List<Integer> list) {
		int sum = 0;
		for (int i = 0; i < list.size(); i++) {
			sum = sum + toPoint(toNumber(list.get(i)));
		}
		return sum;
	}

	//Eine Methode, die die Anzahl der Decks durch die Anzahl der Karten ersetzt
	private static int toNumber(int cardNumber) {
		int number = cardNumber % 13;
		if (number == 0) {
			number = 13;
		}
		return number;
	}

	//Methode J, die die Seriennummer des Decks in Punkte für die Punkteberechnung umwandelt/Q/K ist 10
	public static int toPoint(int num) {
		if (num == 11 || num == 12 || num == 13) {
			num = 10;
		}
		return num;

	}

	//Eine Methode, die die Anzahl der Decks durch die (Rang-) Zeichenfolge von (soo) ersetzt.
	public static String toDescription(int cardNumber) {

		String rank = toRank(toNumber(cardNumber));
		String suit = toSuit(cardNumber);

		return suit + "von" + rank;

	}

	//Methode zur Umwandlung der Kartennummer in Rang (A.,J,Q,K usw.)
	private static String toRank(int number) {
		switch (number) {
		case 1:
			return "A";

		case 11:
			return "J";

		case 12:
			return "Q";

		case 13:
			return "K";

		default:
			String str = String.valueOf(number);
			return str;
		}

	}

	//Eine Methode, um die Anzahl der Decks durch Ruß zu ersetzen
	private static String toSuit(int cardNumber) {
		switch ((cardNumber - 1) / 13) {
		case 0:
			return "Verein";

		case 1:
			return "Diamant";

		case 2:
			return "Herz";

		case 3:
			return "Spaten";

		default:
			return "Ausnahme";
		}
	}

	//Eine Methode, um festzustellen, ob Ihre Hand platzt
	public static boolean isBusted(int point) {
		if (point <= 21) {
			return false;
		} else {
			return true;
		}
	}

}
package blackjack;

public class Player extends Deck {

	private static int playerHands; //Definieren Sie die Variable playerHands, die die Anzahl der Karten auf der Hand des Spielers aufzeichnet

	public static int getPlayerHands() {
		return playerHands;
	}

	public static void setPlayerHands(int playerHands) {
		Player.playerHands = playerHands;
	}



}

Ich habe es im Internet nachgeschlagen, aber ich habe die Grenze gespürt. .. .. Bitte bringen Sie mir bei, wenn Sie möchten.

Recommended Posts

Ich möchte eine Methode aufrufen und die Nummer zählen
Ich möchte eine Methode einer anderen Klasse aufrufen
Ich möchte die Hauptmethode mit Reflektion aufrufen
[Ruby] Ich möchte einen Methodensprung machen!
Ich möchte das Argument der Annotation und das Argument der aufrufenden Methode an den Aspekt übergeben
[Grober Kommentar] Ich möchte die Zupfmethode heiraten
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Ich möchte rekursiv die Oberklasse und die Schnittstelle einer bestimmten Klasse erhalten
[Java] Ich möchte ein Byte-Array in eine Hexadezimalzahl konvertieren
Ich möchte Tomcat auf den Server bringen und die Anwendung starten
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe versucht, die Methode zu erklären
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich möchte eine andere Desinfektionsmethode als Ansicht verwenden.
[Rubiy] Ich möchte mit der Split-Methode ein Array aus einer Zeichenfolge erstellen. Und umgekehrt.
Ich möchte dem select-Attribut einen Klassennamen geben
Ich möchte eine Liste des Inhalts einer Zip-Datei und ihrer unkomprimierten Größe erhalten
Ich möchte nur dem Poster Bearbeitungs- und Löschberechtigungen erteilen
Methode, um die Anzahl der Jahre zu addieren und das Monatsende zu erhalten
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich möchte ein schönes build.gradle schreiben
Ich wollte der Methode @VisibleForTesting hinzufügen
Ich war süchtig nach der Rollmethode
Wenn Sie eine Methode in RSpec verspotten möchten, sollten Sie die Methode allow für mock und die Singleton-Methode verwenden.
[Active Admin] Ich möchte die Standardverarbeitung zum Erstellen und Aktualisieren anpassen
[Ruby] Ich möchte nur den Wert des Hash und nur den Schlüssel extrahieren
[Spring Boot] Ich bin auf einen Methodenaufruf-Count-Test gestoßen (Spock-Framework)
Ich möchte die Anzahl der Foto-AC-Downloads grafisch darstellen [MySQL-Ring-Kooperation] ~ Codierung von 10 Zeilen pro Tag ~
Ich möchte den Inhalt der Absicht var_dump
Ich möchte eine Datei mit Ruby im Internet herunterladen und lokal speichern (mit Vorsicht).
Ich möchte eine einfache Wiederholung einer Zeichenkette schreiben
Wenn Sie die Methode außerhalb verwenden möchten
Ich möchte eine Struktur für die Ausnahmebehandlung entwerfen
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte den Wert in Ruby erhalten
[JDBC ③] Ich habe versucht, mithilfe von Platzhaltern und Argumenten Eingaben über die Hauptmethode vorzunehmen.
[Java] Ich möchte die Differenz zum Datum berechnen
Ich möchte eine TraceId in das Protokoll einbetten
Ich habe eine Methode entwickelt, um nach Premium Friday zu fragen
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich möchte ein kleines Symbol in Rails verwenden
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte eine bestimmte Datei mit WatchService überwachen
Ich möchte eine Funktion in der Rails Console definieren
So verspotten Sie einen Super-Methodenaufruf in PowerMock
Ich möchte Bildschirmübergänge mit Kotlin und Java machen!
Ich möchte in RSpec auf einen GoogleMap-Pin klicken