Anfänger spielen Janken-Spiele in Java

Es ist ungefähr einen Monat her, seit ich angefangen habe zu studieren, also habe ich ein Janken-Spiel geschrieben, während ich es durchgesehen habe. Ich konnte relativ schnell ein Programm nur mit der Hauptmethode schreiben, Es fiel mir schwer, etwas zu machen, das objektorientiert zu sein schien. Ich lerne selbst und denke, dass es viele Dinge zu tun gibt.

Code

Körper

Main.java


package janken;

public class Main {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        final String errorException = "Bitte geben Sie die richtige Nummer ein.";
        final String errorMessage = "Bitte geben Sie eine Zahl von 0 bis 2 oder 99 ein.";
        final String exitMessage = "Fertig";
		final String menuMessage = "0:Goo 1:Choki 2:Par 99:Ende";
		Player you = new Player();
		Player enemy = new Player();
		
		for(;;) {
		    System.out.println(menuMessage);
		    try {
		    	you.jankenNum = new java.util.Scanner(System.in).nextInt();	
			    enemy.jankenNum = new java.util.Random().nextInt(3);
			    if(you.jankenNum == 99) {
			    	//Ende
			    	System.out.println("");
			    	System.out.println(exitMessage);
			    	System.out.println("");
			    	break;
			    } else if(you.jankenNum < 0 | you.jankenNum > 2) {
			    	//Wenn eine falsche Nummer eingegeben wird ...
			    	System.out.println("");
			    	System.out.println(errorMessage);
			    	System.out.println("");
			    } else {
			    	//Aufruf der Kampfmethode.
			    	Battle result = new Battle();
			    	result.battle(you, enemy);
			    }
			    
		    } catch(java.util.InputMismatchException error) {
		    	//Wenn ein nicht numerischer Wert eingegeben wird ...
		    	System.out.println("");
		    	System.out.println(errorException);
		    	System.out.println("");
		    }
	    }
    }
}

Spieler

Player.java


package janken;

public class Player {
	//Enthält die Anzahl der Gewinne und Verluste des Spielers. Definiert die Hände von Janken, Sieg und Niederlage usw.
    int jankenNum;
    final String goo = "Schmiere";
    final String choki = "Choki";
    final String par = "Par";
    int win; int lose; int draw;
    
    String Hand() {
    	//Wandle Spielernummern in Janken's Hände um.
		switch(this.jankenNum) {
		case 0:
		    return this.goo;
		case 1:
		    return this.choki;
		case 2:
		    return this.par;
		default:
			return null;
		}
	}
    
    void board(int win, int lose, int draw) {
    	//Zeigen Sie die Anzahl der Gewinne und Verluste an.
    	System.out.println("Win:" + this.win + " Lose:" + this.lose + " Draw:" + this.draw);
    }
}

Schlacht

Battle.java


package janken;

public class Battle {
	//Entscheide über den Sieg oder die Niederlage.
	final String aiko = "Aiko";
	final String kachi = "Sieg";
	final String make = "Verlieren";
	
	void battle(Player pc1, Player pc2) {
		//Entscheiden Sie, ob Sie zwischen Spielern gewinnen oder verlieren möchten.
		int result = (pc1.jankenNum - pc2.jankenNum +3) % 3;
	    switch(result) {
	    //Gewinnen oder verlieren wird aus den Händen des anderen entschieden und als Punktzahl gespeichert. Ergebnisse anzeigen.
	    case 0:
	    	System.out.println("");
	    	System.out.println(pc1.Hand() + " VS " + pc2.Hand());
	    	System.out.println(aiko);
	    	pc1.draw += 1; pc2.draw += 1;
	    	pc1.board(pc1.win, pc1.lose, pc1.draw);
	    	System.out.println("");
	    	break;
	    case 1:
	    	System.out.println("");
	    	System.out.println(pc1.Hand() + " VS " + pc2.Hand());
	    	System.out.println(make);
	    	pc1.lose += 1; pc2.win += 1;
	    	pc1.board(pc1.win, pc1.lose, pc1.draw);
	    	System.out.println("");
	    	break;
	    case 2:
	    	System.out.println("");
	    	System.out.println(pc1.Hand() + " VS " + pc2.Hand());
	    	System.out.println(kachi);
	    	pc1.win += 1; pc2.lose += 1;
	    	pc1.board(pc1.win, pc1.lose, pc1.draw);
	    	System.out.println("");
	    	break;
	    }
    }
}

Ich bin zufrieden, weil es vorerst so funktioniert hat. Es ist ziemlich schwierig darüber nachzudenken, wie man es teilt.

Recommended Posts

Anfänger spielen Janken-Spiele in Java
[Für Anfänger] Führen Sie Selenium auf Java aus
Janken in Java
Janken Spiel Java-Praxis
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Java-Debug-Ausführung [für Java-Anfänger]
[Java] Grundlegende Aussage für Anfänger
Java für Anfänger, Daten verstecken
Java-Anwendung für Anfänger: Stream
[Für Anfänger] Mindestbeispiel für die Anzeige von RecyclerView in Java
[Für Anfänger] Erläuterung von Klassen, Instanzen und Statik in Java
Java für Anfänger, Ausdrücke und Operatoren 1
Java für Anfänger, Ausdrücke und Operatoren 2
Janken-Spiel
Altersschätzspiel mit Java gemacht
Einstellungen für das SSL-Debugging in Java
[Für Java-Anfänger] Informationen zur Ausnahmebehandlung
Java Janken
Klassen und Instanzen Java für Anfänger
Ein Janken-Spiel für zwei Spieler mit Java, das zwischen Threads konkurriert
[Für Anfänger] Mindestbeispiel zum Aktualisieren von RecyclerView mit DiffUtils in Java
Erste Schritte für tiefes Lernen in Java
Wichtige Punkte für die Einführung von gRPC in Java
Lernen Sie aus "Na und", den Grundlagen von Java [für Anfänger]
[Für Anfänger] Unterschied zwischen Java und Kotlin
[Für Anfänger] So debuggen Sie mit Eclipse
Für JAVA-Lernen (2018-03-16-01)
Partisierung in Java
Änderungen in Java 11
2017 IDE für Java
Ich habe EX25 des AtCoder Programming Guide für Anfänger (APG4b) in Java geschrieben.
Umfangsrate in Java
[Java] [Für Anfänger] So fügen Sie Elemente direkt in ein zweidimensionales Array ein
Java für Anweisung
FizzBuzz in Java
[Für Anfänger] Ich habe versucht, DBUnit mit Eclipse zu verwenden
ChatWork4j für die Verwendung der ChatWork-API in Java
Techniken zum Lesen von Java-Quellcode in Eclipse
[Für Anfänger] Ich habe versucht, JUnit 5 mit Eclipse zu verwenden
Lösung für NetBeans 8.2 funktioniert nicht in Java 9-Umgebung
Eine Sammlung einfacher Fragen für Java-Anfänger
Stellen Sie mit vim die Popup-Anzeige für die Java-Sprache ein.
[Einführung in Java] Grundlagen der Java-Arithmetik (für Anfänger)
Verwenden wir Java New FileIO! (Einführung für Anfänger)
[Java-Anfängerangst] In Junit implementierter schwer zu testender Code
Vergleichen Sie die PDF-Ausgabe in Java für Snapshot-Tests
Aktivieren / Deaktivieren von SNI in Java für jede Kommunikation
Punkte, die bei Java beachtet werden müssen, sind gleich
[Java] für Anweisung, während Anweisung
Lesen Sie JSON in Java
Machen Sie einen Blackjack mit Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
[Für Anfänger] DI ~ Die Grundlagen von DI und DI im Frühjahr ~