Ceci est le premier message. J'ai créé une application Janken qui est écrite de différentes manières.
Période de création: 2 jours Langue: Java Environnement: MacOS, terminal Éditeur de texte: Atom
C'est un jeu opéré par des commandes. Les règles sont les suivantes.
――Trois jeux
L'écran réel ressemble à ceci.
C'est une classe de combat.
Janken.java
package jankenapp;
public class Janken {
static String[] handList = {"Goo","Choki","Par"};
static void startMessage() {
System.out.println("--------------------");
System.out.println("Jouons à Janken! C’est trois matchs!");
}
static void endMessage() {
System.out.println("Merci beaucoup! Jouons encore!");
System.out.println("--------------------");
}
public static void main(String[] args) {
Player player = new Player();
CPU cpu = new CPU();
Judge judge = new Judge();
//Message d'ouverture
startMessage();
for (int i = 1; i <= 3; i++) {
System.out.println("【" + i + "Rond]");
//Le processeur crée des mains au hasard
cpu.setHand();
//Le joueur entre les mains
player.setHand();
// Player,Afficher la main du processeur
System.out.println("· Ta main:" + handList[player.getHand()]);
System.out.println("· Ma main:" + handList[cpu.getHand()]);
//Jugement
judge.judgement(cpu.getHand(), player.getHand());
} //Fin de répétition
//Voir les résultats
judge.result();
//Remarques de clôture
endMessage();
}
}
J'utilise Scanner pour obtenir la main sous forme de chaîne et la numériser avec une instruction switch.
Player.java
package jankenapp;
import java.util.*;
public class Player {
int hand;
public void setHand() {
System.out.print("Veuillez entrer l'un des "Goo", "Choki" et "Par". >");
Scanner sc = new Scanner(System.in);
String inputHand = sc.nextLine();
switch(inputHand) {
case "Goo":
hand = 0;
break;
case "Choki":
hand = 1;
break;
case "Par":
hand = 2;
break;
default:
System.out.println("J'ai fait une erreur, alors j'ai fini ...");
}
}
public int getHand() {
return hand;
}
}
La méthode aléatoire est utilisée pour décider de la main au hasard.
CPU.java
package jankenapp;
import java.util.*;
public class CPU {
int hand;
public void setHand() {
double rand = Math.random() * 3;
hand = (int)rand;
}
public int getHand() {
return this.hand;
}
}
C'est une classe du jugement de victoire ou de défaite et du résultat du match. La méthode de jugement consiste à quantifier chaque main et à la calculer par (main du joueur CPU +3)% 3. Le nombre de victoires, de pertes et de nuls du joueur est compté et le résultat est affiché dans la déclaration if.
Judge.java
Package jankenapp;
public class Judge {
int judge;
int win;
int lose;
int even;
public void judgement(int cpuHand, int playerHand) {
judge = (cpuHand - playerHand + 3 ) % 3;
switch(judge) {
case 0:
System.out.println("C'est Aiko!");
even++;
break;
case 1:
System.out.println("Vous gagnez!");
win++;
break;
case 2:
System.out.println("Tu as perdu!");
lose++;
break;
default:
}
System.out.println("--------------------");
}
public void result() {
System.out.println("[Résultat de la victoire ou de la défaite]");
System.out.println("gagner:" + win + "Fois");
System.out.println("Perdant:" + lose + "Fois");
System.out.println("Aiko:" + even + "Fois");
System.out.println("");
if (win > lose) {
System.out.println("Ce jeu est à vous! Félicitations!");
} else if (win < lose) {
System.out.println("Ce jeu est votre perte! Ne t'en fais pas!");
} else {
System.out.println("Ce jeu est un match nul!");
}
}
}
Je suis autodidacte, donc je suis désolé s'il y a des parties disgracieuses. Je vous serais reconnaissant si vous pouviez me donner des conseils.
Merci d'avoir parcouru jusqu'au bout.
【référence】 Une petite application de l'algorithme Janken (J'ai fait référence à la formule du jugement.)
Postscript (8/23) J'ai remarqué que même si je fais une erreur dans l'entrée, la valeur par défaut sera affichée. Je vais prendre des mesures.
Recommended Posts