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.
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("");
}
}
}
}
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);
}
}
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