[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können

Einführung

Im Jahr 2018 berührte ich verschiedene Sprachen auf halbem Weg und fühlte die Leere, dass ich verstehen konnte, was ich tun wollte, aber ich konnte nichts machen, das von mir selbst funktioniert, also konzentrierte ich mich darauf, nur Java / Kotlin zu lernen. ..

Ich habe mein Bestes versucht, um die Objektorientierung zu verstehen, aber sie ist subtil. ..

Übrigens ist es ein Spaghetti-Code.

Was ich gemacht habe

Wie bei gewöhnlichen Janken gewinnt derjenige mit den meisten Punkten in fünf Spielen.

Der Nachteil ist, dass es unpraktisch ist, weil Sie nicht wissen, was der PC ausgegeben hat. ..

**Ich fühle mich so. ** ** **

console.


Gib deinem Spieler einen Namen
Anfänger
Kämpfe als Anfänger
[Janken starten]

[1. Runde]
===============
stone    :   0
scissors :   1
paper    :   2
===============
Bitte hier eingeben
1
----------------
Choki (Anfänger) gegen Goo
----------------
Anfänger verloren
:
:
:
:
[5. Runde]
===============
stone    :   0
scissors :   1
paper    :   2
===============
Bitte hier eingeben
2
----------------
Par(Anfänger)  vs Par
----------------
Es ist eine Zeichnung

[Ende von Janken]
==================================
Ergebnis: [Unentschieden]
==================================

Was mir bewusst war (meine eigene Objektorientierung)

  1. Schreiben Sie zuerst die gesamte Verarbeitung in die Datei `` `Main.java```.
  2. Die Teile, die zu Teilen verarbeitet werden können, werden zu einer Methode zusammengefügt. (Es ist besser, die Anzahl in Main so weit wie möglich zu reduzieren)
  3. Wo Sie die Klasse teilen können, teilen Sie sie in Klassen

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 {
		
		//Player-Einstellungen
		Player p = new Player();
	    
		//Janken-Verarbeitung
		Player.jankenbuttle();
	
		//Ergebnisanzeige
		result();


	}
	
	

	public static void result() {
		System.out.println("");
		System.out.println("[Ende von Janken]");
		System.out.println("==================================");
		if(Player.pcWinCount > Player.playerWinCount) {
			System.out.println("Ergebnis: [PC gewonnen]");
		}else if(Player.pcWinCount < Player.playerWinCount) {
			System.out.println("Ergebnis:【"+Player.playername+"Gewonnen]");
		}else {
			System.out.println("Ergebnis: [Unentschieden]");
		}
		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("Gib deinem Spieler einen Namen");
		Scanner name = new Scanner(System.in);
	    playername = name.nextLine();
	    
	    System.out.println(playername+"Kämpfe als");
	}
	
	public static void jankenbuttle() throws IOException {
		System.out.println("[Janken starten]");

//Starten Sie Janken
		for(int i = 1;i <= 5; i++) {
		System.out.println("");	
		System.out.println("【"+i+"Runden]");
		
		System.out.println("===============");
		System.out.println("stone    :   0");
		System.out.println("scissors :   1");
		System.out.println("paper    :   2");
		System.out.println("===============");
		
//PC Janken Hand
		Random r = new Random();
		int pcNum = r.nextInt(3);
		
		System.out.println("Bitte hier eingeben");
		
//Spielerhand
		Scanner s = new Scanner(System.in);
		int playerNum = s.nextInt();
		
//Wenn der Spieler gewinnt
		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+"Herr.)vs goo");
			}else if(pcNum == 1) {
				System.out.println("");
				System.out.println("Schmiere("+playername+"Herr.)vs choki");
			}else {
				System.out.println("");
				System.out.println("Choki("+playername+"Herr.)vs Park");
			}
			System.out.println(playername+"Gewonnen");
				
			
//Wenn der Spieler verliert
		}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) gegen Goo");
				System.out.println("----------------");
			}else if(pcNum == 1) {
				System.out.println("----------------");
				System.out.println("Par("+playername+"Herr.)vs choki");
				System.out.println("----------------");
			}else {
				System.out.println("----------------");
				System.out.println("Schmiere("+playername+"Herr.)vs Park");
				System.out.println("----------------");
			}
			pcWinCount++;
			System.out.println(playername+"Hat verloren");
		}else {
			if(pcNum == 0) {
				System.out.println("----------------");
				System.out.println("Schmiere("+playername+"Herr.)  vs Schmiere");
				System.out.println("----------------");
			}else if(pcNum == 1) {
				System.out.println("----------------");
				System.out.println("Choki("+playername+"Herr.)  vs Choki");
				System.out.println("----------------");
			}else {
				System.out.println("----------------");
				System.out.println("Par("+playername+"Herr.)  vs Par");
				System.out.println("----------------");
			}
			System.out.println("Es ist eine Zeichnung");
			
		}
		
		
		}
	}
	
}

javainterface.java


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

Einfallsreichtum

Der Punkt, an dem Sie den Spielernamen bei jedem Start von Janken festlegen können

Das ist der Teil.

console.


Gib deinem Spieler einen Namen
->Anfänger
Kämpfe als Anfänger

Ich habe versucht, einen Namen in das Argument des Konstrukts zu schreiben, aber ich konnte ihm einen Namen geben, aber es würde sich nicht ändern, wenn ich ihn nicht im Quellcode geschrieben hätte, also habe ich mein Bestes versucht.

Ich muss härter arbeiten.

Referenz

https://www.youtube.com/watch?v=FsRHdL_r0pE Warum Sie keine objektorientierte Entwicklung durchführen können

Recommended Posts

[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich habe versucht, Java mit einer Reihe zu lernen, die Anfänger klar verstehen können
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe versucht, eine Web-API zu erstellen, die mit Quarkus eine Verbindung zur Datenbank herstellt
[Einführung in Java] Ich habe versucht, das Wissen zusammenzufassen, das ich für wesentlich halte
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Java Ich habe versucht, einen einfachen Block zu brechen
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Ich habe versucht, Tomcat so einzustellen, dass das Servlet ausgeführt wird.
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe versucht, Java in einem Mac-Terminal auszuführen
Ich habe versucht, mit Javafx ein einfaches Spiel zu machen ① "Lass uns Glücksspiel finden" (unvollendet)
Ich habe versucht, Log4j2 auf einem Java EE-Server zu verwenden
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Ich habe versucht, ein einfaches Spiel mit Javafx zu machen ① "Lass uns Glücksspiel finden" (unvollendete Version ②)
Eine Geschichte, nach der ich süchtig war, als ich einen Schlüssel bekam, der automatisch auf MyBatis ausprobiert wurde
Ich habe versucht, ein Tool zum Vergleichen von Amazon-Produktpreisen auf der ganzen Welt mit Java, der Amazon Product Advertising API und der Currency API (29.01.2017) zu erstellen.
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe versucht, TabLayout unter Android eine Trennlinie hinzuzufügen
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
[Anfänger] Versuchen Sie, mit Java ein einfaches RPG-Spiel zu erstellen ①
Vier Reihen mit Schwerkraft, die auf der Konsole gespielt werden können
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich habe versucht, die Beispielanwendung gemäß der Idee des Buches "Micro Service Architecture" in einen Mikrodienst zu verwandeln.
Ich wollte nur eine reaktive Eigenschaft in Java erstellen
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe versucht, Java Optional und Guard-Klausel koexistieren zu lassen
Hier sind einige Artikel, auf die sich Anfänger in der Programmierung bezogen haben.
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe ein Rätsel ausprobiert, das nur von den unteren 10% der schlechten Ingenieure gelöst werden kann
Eingabe in die Java-Konsole
So erstellen Sie ein Schlüsselpaar von ecdsa in einem Format, das von Java gelesen werden kann
Wie gehe ich mit dem Typ um, den ich 2 Jahre lang über das Schreiben eines Java-Programms nachgedacht habe?
Ich habe ein "Sunshine Ikezaki-Spiel" gemacht, das ich auf Twitter in Java gesehen habe.
Mechanismus zum Konvertieren in eine Sprache, die der Browser erkennen kann
Ich möchte Swipeback auf einem Bildschirm verwenden, der XLPagerTabStrip verwendet
Sondervortrag über Multiskalensimulation: Ich habe versucht, den 5. zusammenzufassen
Ich habe versucht, eine Spring MVC-Entwicklungsumgebung auf einem Mac zu erstellen
[Unity] Ich habe mit NWPathMonitor ein natives Plug-In UniNWPathMonitor erstellt
Logik zum Zeichnen eines Kreises auf der Konsole mit ASCII-Grafik
Ich habe versucht, die Fehlermeldung beim Ausführen von Eclipse (Java) zu übersetzen.
Sondervortrag über Multi-Scale-Simulation: Ich habe versucht, den 8. zusammenzufassen
Ich habe versucht, eine Android-Anwendung mit MVC zu erstellen (Java)