Faisons un exercice simple en utilisant les connaissances que nous avons acquises jusqu'à présent.
Veuillez vous référer à l'organigramme et implémenter "Janken qui ne donne que du goo" et assurez-vous de mettre en œuvre le programme que vous gagnez.
Veuillez vous référer à cette page pour le jugement de gain ou de perte de Janken.
Veuillez remplacer "Janken qui produit uniquement de la glu" par Janken qui produit uniquement du choki.
Veuillez remplacer "Janken qui donne seulement Goo" par un Janken normal qui donne autre chose que Goo. Cependant, dans ce cas, ne répétez pas et ne sortez pas "Aiko" en conséquence.
Permettez à vos mains de saisir des valeurs en externe et d'afficher les résultats de chaque match. Créez un programme Janken qui ne se terminera pas tant que vous n'aurez pas gagné. Affichez également le nombre de fois qu'il a fallu gagner à la fin.
Janken.java
package janken;
public class Gudake {
public static void main(String[] args) {
//Variables qui ne changent pas une fois définies"final"Ajoutez pour en faire une constante. ・ ・ ・ ①
final int GUU=0;
final int CHOKI=1;
final int PA=2;
//Définissez vos propres mains et celles de l'ennemi ... ②
int myHand=PA;
int enemyHand=CHOKI;
//Expression conditionnelle
//Vaut-il mieux séparer cette expression conditionnelle en termes de code? ③
if(((myHand-enemyHand)%3)==2) {
System.out.println("Vous gagnez");
}else {
System.out.println("Ça ne devrait pas être le cas");
}
}
}
Commentaire)
À propos de l'ensemble du programme Comme vous pouvez le voir dans l'organigramme, cette fois, nous ne considérerons que le cas de gagner ou de perdre. Veuillez mettre en œuvre selon les spécifications sans être lié par ce bon sens.
①
Appliquez des nombres à goo, choki et par. Si vous ne l'appliquez pas, le programme fonctionnera, mais lorsque d'autres le liront, vous ne saurez pas à quoi se réfère chaque numéro. Les nombres qui sont significatifs mais dont vous ne savez pas à quoi ils font référence sont appelés nombres magiques </ font>, et si vous écrivez de cette façon, vous continuerez à vous plaindre.
Les valeurs de goo, choki et par cette fois ne seront pas modifiées, donc ajoutez final
devant le type pour en faire une constante </ b>.
Si vous en faites une constante, vous ne pouvez pas réécrire la valeur. Veuillez le réécrire comme un essai.
Contrairement aux variables, les constantes sont écrites en toutes les lettres majuscules </ b>.
② Réglez votre propre main et la main de l'ennemi. Écrivez les variables en caractères chameau (mélangez la casse comme le dos de chameau). Cette fois, vous pouvez écrire un solide dans le code source.
③ Faites un jugement de condition. La valeur est calculée en minutes if, mais fondamentalement, il n'est pas bon de mettre la formule de calcul directement dans la formule conditionnelle ... Cependant, cette fois, il s'agit d'un exemple de code jetable avec une seule branche. .. ..
Changez simplement ʻenemyHand = GU dans 1-1 en ʻenemyHand = CHOKI
.
Si vous n'avez pas fait les constantes goo, choki et par, vous oublierez quel nombre correspond à quel mouvement, mais si vous les rendez constants comme cette fois, il sera plus facile de modifier le programme.
Janken.java
package janken;
import java.util.Random;
public class Janken {
public static void main(String args[]) {
final int GUU=0;
final int CHOKI=1;
final int PA=2;
int myHand=CHOKI;
//Placez au hasard la main de l'adversaire. ・ ・ ・ ①
Random roundom = new Random(2);
int enemyHand=roundom.nextInt(3);
//Lorsque vous écrivez avec if ... ②
//Calculez à l'avance les conditions de victoire et de défaite ... ③
int winningResult=((myHand-enemyHand)%3);
if(winningResult==0){
System.out.println("Je suis Aiko");
}else if (winningResult==1) {
System.out.println("je perd");
}else {
System.out.println("Gagner");
}
//Lieu d'écriture avec interrupteur ・ ・ ・ 4
switch((myHand-enemyHand)%3){
case 0:
System.out.println("Je suis Aiko");
break;
case 1:
System.out.println("je perd");
break;
case 2:
System.out.println("Gagner");
break;
}
}
}
À propos de ce programme C'est un ciseau à papier-pierre normal, mais attention à ne pas le répéter dans ce cas. Il y a des victoires, des défaites et des aiko, et il y a 3 modèles de jugement.
①
J'ai utilisé Random roundom = new Random (2);
lors de la génération de nombres aléatoires. Si vous calculez avec java random
, etc., de nombreux exemples de programmes vont sortir, alors allons-y. Il existe de nombreuses parties en java qui peuvent faire ce que vous voulez faire sur une seule ligne, alors recherchez-les comme il convient et utilisez-les.
② Il existe trois modèles de ramification, de victoire, de perte et d'aiko, mais java ne peut répondre qu'à des questions oui non. Pensons au flux pour que le problème oui non puisse couvrir 3 modèles.
③ La condition est jugée plusieurs fois afin de se diviser en 3 modèles. Vous pouvez écrire la formule de jugement séparément dans la partie if, mais si la formule de jugement est incorrecte, le nombre de corrections augmentera. Supprimons la formule de jugement en dehors du fait qu'un bogue se produira dans le programme.
④ Dans ce cas, il peut être plus facile d'écrire avec switch que d'utiliser if. Je décrirai également le cas du branchement avec un interrupteur.
Il semble qu'il soit nécessaire d'écrire à partir de l'organigramme, et c'est un peu difficile, je vais donc l'ajouter si demandé. .. ..
Recommended Posts