[JAVA] Je veux appeler une méthode et compter le nombre

Le résultat que je souhaite afficher sur la console est le suivant

Bienvenue au Blackjack! Votre première carte est Heart Q La première carte du croupier est un diamant A Votre deuxième carte est un cœur A La deuxième carte du croupier est un secret Votre point actuel est 11 Tirez-vous une carte? Oui: oui ou non: n

―――――――――――――――――――――――――― Je veux utiliser la méthode pour faire la partie du numéro du joueur 1, 2, 3 ...

La situation actuelle est la suivante

Bienvenue au Blackjack! Votre 0ème carte est le Q du cœur La première carte du croupier est un diamant A Votre 0ème carte est A of Heart La deuxième carte du croupier est un secret Votre point actuel est 11 Tirez-vous une carte? Oui: oui ou non: n

Je mettrai le code source

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("Bienvenue au Blackjack!");

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

		Deck.shuffleDeck(deck); //Appelez la méthode

		//Afficher les cartes mélangées. Pour devac
		//		for(Integer i : deck) {
		//	            System.out.println(i);
		//	        }

		List<Integer> player = new ArrayList<>(); //Créer la liste des mains d'un joueur
		List<Integer> dealer = new ArrayList<>(); //Créer la liste des mains d'un concessionnaire

		//Le croupier joueur tire deux cartes
		player.add(deck.get(0));
		dealer.add(deck.get(1));
		player.add(deck.get(2));
		dealer.add(deck.get(3));

		//Afficher les points dans la main du joueur / croupier
		System.out.println("Votre"
				+ Player.getPlayerHands() + "La première carte est"
				+ Deck.toDescription(player.get(0)));
		System.out.println("La première carte du croupier est"
				+ Deck.toDescription(dealer.get(0)));
		System.out.println("Votre"
				+ Player.getPlayerHands() + "La première carte est"
				+ Deck.toDescription(player.get(1)));
		System.out.println("La deuxième carte du croupier est un secret");

		//Points cumulés des joueurs et des revendeurs
		int playerPoint = Deck.sumPoint(player);
		int dealerPoint = Deck.sumPoint(dealer);

		System.out.println("Votre point actuel est"
				+ playerPoint + "est");

		//Phase au cours de laquelle le joueur pioche une carte
		while (true) {
			System.out.println("Tirez-vous une carte? Oui:y or No:n");
			//Accepte l'entrée au clavier et l'assigne à la variable str

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

			if ("n".equals(str)) {
				break;
			} else if ("y".equals(str)) {
				//Ajoutez 1 carte du deck à votre main
				player.add(deck.get(Deck.deckCount));

				//Avancez d'un deck et d'une main
				Deck.deckCount++;
				Player.setPlayerHands(Player.getPlayerHands() + 1);

				System.out.println("votre"
						+ Player.getPlayerHands() + "La première carte est"
						+ Deck.toDescription(player.get(Player.getPlayerHands() - 1)));
				playerPoint = Deck.sumPoint(player);
				System.out.println("Le total actuel est" + playerPoint);
				//Vérification de l'éclatement du joueur
				if (Deck.isBusted(playerPoint)) {
					System.out.println("Malheureusement, il a éclaté. Le croupier gagne.");
					return;
				}
			} else {
				System.out.println("Votre contribution est"
						+ str + "est. Entrez y ou n.");
			}
		}

		//Phase pour piocher des cartes jusqu'à ce que le croupier en ait 17 ou plus en main
		while (true) {
			//Pause si vous en avez 17 ou plus en main
			if (dealerPoint >= 17) {
				break;
			} else {
				//Ajoutez 1 carte du deck à votre main
				dealer.add(deck.get(Deck.deckCount));
				//Avancer d'un pont
				Deck.deckCount++;

				//Calculez le total des points du concessionnaire
				dealerPoint = Deck.sumPoint(dealer);
				//Vérification de l'éclatement du concessionnaire
				if (Deck.isBusted(dealerPoint)) {
					System.out.println("Le croupier a éclaté. Vous gagnez!");
					return;

				}
			}
		}

		//Comparer les points
		System.out.println("Votre point est" + playerPoint);
		System.out.println("Le point du concessionnaire est" + dealerPoint);

		if (playerPoint == dealerPoint) {
			System.out.println("C'est un tirage au sort.");
		} else if (playerPoint > dealerPoint) {
			System.out.println("A gagné!");
		} else {
			System.out.println("perdu···");
		}

	}

}
package blackjack;

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

public class Deck {

	static int deckCount; //Définir un deckCount variable qui enregistre la progression du deck

	//Une méthode pour mettre une valeur dans le deck et le mélanger
	public static void shuffleDeck(List<Integer> deck) {
		//1 sur la liste-Remplacez 52 numéros de série
		for (int i = 1; i <= 52; i++) {
			deck.add(i);
		}
		//Mélangez votre deck
		Collections.shuffle(deck);
	}

	//Méthode pour calculer le total actuel des points
	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;
	}

	//Une méthode qui remplace le nombre de jeux par le nombre de cartes
	private static int toNumber(int cardNumber) {
		int number = cardNumber % 13;
		if (number == 0) {
			number = 13;
		}
		return number;
	}

	//Méthode J qui convertit le numéro de série du deck en points pour le calcul du score/Q/K est 10
	public static int toPoint(int num) {
		if (num == 11 || num == 12 || num == 13) {
			num = 10;
		}
		return num;

	}

	//Une méthode qui remplace le nombre de decks par la chaîne (rank) de (soo)
	public static String toDescription(int cardNumber) {

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

		return suit + "de" + rank;

	}

	//Méthode pour convertir le numéro de carte en rang (A,J,Q,K etc.)
	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;
		}

	}

	//Une méthode pour remplacer le nombre de ponts par de la suie
	private static String toSuit(int cardNumber) {
		switch ((cardNumber - 1) / 13) {
		case 0:
			return "club";

		case 1:
			return "diamant";

		case 2:
			return "cœur";

		case 3:
			return "bêche";

		default:
			return "Exception";
		}
	}

	//Une méthode pour déterminer si votre main éclate
	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; //Définir la variable playerHands qui enregistre le nombre de cartes dans la main du joueur

	public static int getPlayerHands() {
		return playerHands;
	}

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



}

J'ai cherché sur Internet, mais j'ai senti la limite. .. .. S'il vous plaît, apprenez-moi si vous le souhaitez.

Recommended Posts

Je veux appeler une méthode et compter le nombre
Je veux appeler une méthode d'une autre classe
Je veux appeler la méthode principale en utilisant la réflexion
[Ruby] Je veux faire un saut de méthode!
Je veux passer l'argument d'Annotation et l'argument de la méthode d'appel à aspect
[Commentaire approximatif] Je veux épouser la méthode du pluck
Je souhaite ajouter une fonction de suppression à la fonction de commentaire
Je veux obtenir récursivement la superclasse et l'interface d'une certaine classe
[Java] Je souhaite convertir un tableau d'octets en un nombre hexadécimal
Je veux amener Tomcat sur le serveur et démarrer l'application
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
J'ai essayé d'expliquer la méthode
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Je souhaite utiliser la méthode de désinfection autre que View.
[Rubiy] Je veux créer un tableau à partir d'une chaîne de caractères avec la méthode split. Et vice versa.
Je veux donner un nom de classe à l'attribut select
Je veux obtenir une liste du contenu d'un fichier zip et sa taille non compressée
Je souhaite accorder des autorisations de modification et de suppression uniquement à l'affiche
Méthode pour additionner le nombre d'années et obtenir la fin du mois
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
Je veux écrire un joli build.gradle
Je voulais ajouter @VisibleForTesting à la méthode
J'étais accro à la méthode du rouleau
Si vous souhaitez simuler une méthode dans RSpec, vous devez utiliser la méthode allow pour mock et la méthode singleton.
[Administrateur actif] Je souhaite personnaliser le traitement de création et de mise à jour par défaut
[Ruby] Je souhaite extraire uniquement la valeur du hachage et uniquement la clé
[Spring Boot] Je suis tombé sur un test du nombre d'appels de méthode (framework Spock)
Je veux représenter graphiquement le nombre de téléchargements de photos AC [coopération en anneau MySQL] ~ Codage de 10 lignes par jour ~
Je veux var_dump le contenu de l'intention
Je souhaite télécharger un fichier sur Internet en utilisant Ruby et l'enregistrer localement (avec prudence)
Je veux écrire une simple répétition d'une chaîne de caractères
Lorsque vous souhaitez utiliser la méthode à l'extérieur
Je souhaite concevoir une structure pour la gestion des exceptions
Je veux tronquer après la virgule décimale
Je veux obtenir la valeur en Ruby
[JDBC ③] J'ai essayé d'entrer à partir de la méthode principale en utilisant des espaces réservés et des arguments.
[Java] Je souhaite calculer la différence par rapport à la date
Je veux intégrer n'importe quel TraceId dans le journal
J'ai fait une méthode pour demander la prime vendredi
Je veux juger la gamme en utilisant le diplôme mensuel
Je veux utiliser une petite icône dans Rails
Je veux connaître la réponse de l'application Janken
Je souhaite afficher le nom de l'affiche du commentaire
Je souhaite utiliser le mode sombre avec l'application SWT
Je souhaite surveiller un fichier spécifique avec WatchService
Je souhaite définir une fonction dans la console Rails
Comment se moquer d'un appel de super méthode dans PowerMock
Je veux faire des transitions d'écran avec kotlin et java!
Je veux cliquer sur une broche GoogleMap dans RSpec