[Java] J'ai essayé de créer un jeu Janken que les débutants peuvent exécuter sur la console

introduction

En 2018, j'ai touché plusieurs langues à mi-chemin et j'ai ressenti le vide de pouvoir comprendre ce que je voulais faire mais je ne pouvais pas faire quelque chose qui fonctionne par moi-même, alors je me suis concentré sur l'étude uniquement de java / kotlin. ..

J'ai fait de mon mieux pour comprendre l'orientation des objets, mais c'est subtil. ..

Au fait, c'est un code spaghetti.

Ce que j'ai fait

Comme avec les ciseaux à papier-pierre ordinaires, celui qui a le plus de points en cinq matchs l'emporte.

L'inconvénient est que c'est gênant car vous ne savez pas ce que le PC a sorti. ..

**Je me sens comme cela. ** **

console.


Donnez un nom à votre joueur
Débutant
Combattez en tant que débutant
[Démarrage de Janken]

[1er tour]
===============
stone    :   0
scissors :   1
paper    :   2
===============
Veuillez entrer ici
1
----------------
Choki (débutant) vs Goo
----------------
Débutant perdu
:
:
:
:
[5e tour]
===============
stone    :   0
scissors :   1
paper    :   2
===============
Veuillez entrer ici
2
----------------
Par(Débutant)  vs Par
----------------
C'est un tirage au sort

[Fin de Janken]
==================================
Résultat: [Draw]
==================================

Ce dont j'étais conscient (ma propre orientation objet)

  1. Tout d'abord, écrivez tout le traitement dans le fichier Main.java```.
  2. Les pièces qui peuvent être transformées en pièces sont assemblées dans une méthode. (Il vaut mieux réduire le nombre dans Main autant que possible)
  3. Où vous pouvez diviser la classe, divisez-la en classes

Main.java



import java.io.IOException;
import java.util.Random;
import java.util.Scanner;

import org.ietf.jgss.Oid;
import org.omg.CORBA.PUBLIC_MEMBER;

public class Main implements jankeninterface{

	
	public static void main(String[] args) throws IOException {
		
		//Paramètres du joueur
		Player p = new Player();
	    
		//Traitement Janken
		Player.jankenbuttle();
	
		//Affichage des résultats
		result();


	}
	
	

	public static void result() {
		System.out.println("");
		System.out.println("[Fin de Janken]");
		System.out.println("==================================");
		if(Player.pcWinCount > Player.playerWinCount) {
			System.out.println("Résultat: [PC a gagné]");
		}else if(Player.pcWinCount < Player.playerWinCount) {
			System.out.println("résultat:【"+Player.playername+"A gagné]");
		}else {
			System.out.println("Résultat: [Draw]");
		}
		System.out.println("==================================");
	}
}

Player.java



import java.io.IOException;
import java.util.Random;
import java.util.Scanner;

public class Player {
	public static int playerWinCount = 0;
	public static String playername;
	public static int pcWinCount = 0;
	
	public Player() {
		// TODO Auto-generated constructor stub
		createName();
	}
	
	public static void createName() {
		System.out.println("Donnez un nom à votre joueur");
		Scanner name = new Scanner(System.in);
	    playername = name.nextLine();
	    
	    System.out.println(playername+"Combattez comme");
	}
	
	public static void jankenbuttle() throws IOException {
		System.out.println("[Démarrage de Janken]");

//Démarrer Janken
		for(int i = 1;i <= 5; i++) {
		System.out.println("");	
		System.out.println("【"+i+"Rond]");
		
		System.out.println("===============");
		System.out.println("stone    :   0");
		System.out.println("scissors :   1");
		System.out.println("paper    :   2");
		System.out.println("===============");
		
//La main de PC Janken
		Random r = new Random();
		int pcNum = r.nextInt(3);
		
		System.out.println("Veuillez entrer ici");
		
//La main du joueur
		Scanner s = new Scanner(System.in);
		int playerNum = s.nextInt();
		
//Si le joueur gagne
		if(pcNum == 0 && playerNum == 2 || 
		   pcNum == 1 && playerNum == 0 || 
		   pcNum == 2 && playerNum == 1 ) {
			playerWinCount++;
			if(pcNum == 0) {
				System.out.println("");
				System.out.println("Par("+playername+"M.)vs goo");
			}else if(pcNum == 1) {
				System.out.println("");
				System.out.println("Goo("+playername+"M.)vs choki");
			}else {
				System.out.println("");
				System.out.println("Choki("+playername+"M.)vs parc");
			}
			System.out.println(playername+"A gagné");
				
			
//Quand le joueur perd
		}else if(pcNum == 0 && playerNum == 1||
				 pcNum == 1 && playerNum == 2||
				 pcNum == 2 && playerNum == 0) {
			if(pcNum == 0) {
				System.out.println("----------------");
				System.out.println("Choki ("+playername+"San) contre Goo");
				System.out.println("----------------");
			}else if(pcNum == 1) {
				System.out.println("----------------");
				System.out.println("Par("+playername+"M.)vs choki");
				System.out.println("----------------");
			}else {
				System.out.println("----------------");
				System.out.println("Goo("+playername+"M.)vs parc");
				System.out.println("----------------");
			}
			pcWinCount++;
			System.out.println(playername+"Perdu");
		}else {
			if(pcNum == 0) {
				System.out.println("----------------");
				System.out.println("Goo("+playername+"M.)  vs Goo");
				System.out.println("----------------");
			}else if(pcNum == 1) {
				System.out.println("----------------");
				System.out.println("Choki("+playername+"M.)  vs Choki");
				System.out.println("----------------");
			}else {
				System.out.println("----------------");
				System.out.println("Par("+playername+"M.)  vs Par");
				System.out.println("----------------");
			}
			System.out.println("C'est un tirage au sort");
			
		}
		
		
		}
	}
	
}

javainterface.java


public interface jankeninterface {
	public static final int stone = 0;
	public static final int scissors = 1;
	public static final int paper = 2;
}

Ingéniosité

Le fait que vous pouvez définir le nom du joueur à chaque fois que Janken démarre

C'est la partie.

console.


Donnez un nom à votre joueur
->Débutant
Combattez en tant que débutant

J'ai essayé d'écrire un nom dans l'argument de la construction, mais je pourrais lui donner un nom, mais cela ne changerait pas si je ne l'écrivais pas dans le code source, alors j'ai fait de mon mieux.

Je dois travailler plus dur.

référence

https://www.youtube.com/watch?v=FsRHdL_r0pE Pourquoi vous ne pouvez pas faire de développement orienté objet

Recommended Posts

[Java] J'ai essayé de créer un jeu Janken que les débutants peuvent exécuter sur la console
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.
J'ai essayé d'apprendre Java avec une série que les débutants peuvent comprendre clairement
J'ai essayé de créer une fonction de connexion avec Java
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java
J'ai créé un client RESAS-API en Java
J'ai essayé de créer une API Web qui se connecte à DB avec Quarkus
[Introduction à Java] J'ai essayé de résumer les connaissances que j'estime essentielles
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
J'ai essayé de faire une authentification de base avec Java
java j'ai essayé de casser un simple bloc
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
J'ai créé un jeu Janken en Java (CLI)
J'ai essayé de configurer tomcat pour exécuter le servlet.
J'ai essayé de casser le bloc avec java (1)
J'ai essayé d'exécuter Java dans un terminal Mac
J'ai essayé de faire un jeu simple avec Javafx ① "Trouvons le jeu du bonheur" (inachevé)
J'ai essayé d'utiliser Log4j2 sur un serveur Java EE
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
J'ai essayé de faire un jeu simple avec Javafx ① "Trouvons le jeu du bonheur" (version inachevée ②)
Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
J'ai essayé de créer un outil de comparaison des prix des produits Amazon dans le monde entier avec Java, l'API Amazon Product Advertising, l'API Currency (29/01/2017)
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé d'ajouter une ligne de séparation à TabLayout sur Android
J'ai essayé de moderniser une application Java EE avec OpenShift.
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
J'ai essayé de résumer les bases de kotlin et java
[Débutant] Essayez de créer un jeu RPG simple avec Java ①
Quatre rangées avec gravité pouvant être jouées sur la console
Je veux faire une liste avec kotlin et java!
J'ai essayé de convertir l'exemple d'application en microservice selon l'idée du livre "Microservice Architecture".
Je voulais juste créer une propriété réactive en Java
Je veux créer une fonction avec kotlin et java!
J'ai essayé de faire coexister Java Optional et la clause de garde
Voici quelques articles auxquels les débutants en programmation se sont référés.
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai essayé un puzzle qui ne peut être résolu que par les 10% de mauvais ingénieurs
Entrée dans la console Java
Comment créer une paire de clés d'ecdsa dans un format lisible par Java
Comment gérer le type auquel j'ai pensé en écrivant un programme Java pendant 2 ans
J'ai fait un "Sunshine Ikezaki game" que j'ai vu sur Twitter en Java.
Mécanisme de conversion vers une langue que le navigateur peut reconnaître
Je souhaite utiliser le balayage arrière sur un écran qui utilise XLPagerTabStrip
Conférence spéciale sur la simulation multi-échelles: j'ai essayé de résumer le 5e
J'ai essayé de créer un environnement de développement Spring MVC sur Mac
[Unity] J'ai essayé de créer un plug-in natif UniNWPathMonitor en utilisant NWPathMonitor
Logique pour dessiner un cercle sur la console avec l'art ASCII
J'ai essayé de traduire le message d'erreur lors de l'exécution d'Eclipse (Java)
Conférence spéciale sur la simulation multi-échelles: j'ai essayé de résumer le 8
J'ai essayé de créer une application Android avec MVC maintenant (Java)