“Simon dit” en java
"Simon Says" est un jeu de mémoire où "Simon" génère une séquence de 10 caractères (R, G, B, Y) et l'utilisateur doit répéter la séquence.
Créer une boucle qui compare les deux chaînes de caractères commençant à partir de l'index 0.
Pour chaque match, d'ajouter un point à userScore. Sur un décalage, à la sortie de la boucle à l'aide d'une instruction break.
Ex: modèles suivants donnent un userScore de 4:
simonPattern: R, R, G, B, R, Y, Y, B, G, Y
userPattern: R, R, G, B, B, R, Y, B, G, Y
import java.util.Scanner;
public class SimonSays {
public static void main (String [] args) {
String simonPattern = "";
String userPattern = "";
int userScore = 0;
int i = 0;
userScore = 0;
simonPattern = "RRGBRYYBGY";
userPattern = "RRGBBRYBGY";
/* Your solution goes here */
char s;
char u;
for (i=0;i<=10;i++) {
s = simonPattern.charAt(i);
u = userPattern.charAt(i);
if (s == u) {
userScore = userScore + 1;
continue;
}
}
System.out.println("userScore: " + userScore);
return;
}
}
Et le système dit:
Runtime error (commonly due to an invalid array/vector access, divide by 0, etc.).
Pourquoi mon code ne fonctionne pas?
Vous devez vous connecter pour publier un commentaire.
Au lieu de dur-la programmation de la longueur de votre Chaîne (simplement parce qu'avant, vous devriez avoir le doigt compté et vous trompe peut-être), vous pouvez utiliser
for (int i=0; i < simonPattern.length(); i++)
Heureux de codage
Edit: mais il pourrait alse générer une Exception, comme userPattern pourrait être plus petit que simonPattern. Vous pouvez le vérifier en
}
L'erreur est ici:
Changement dans
Votre chaîne est de longueur = 10.
for (i=0;i<=10;i++) {
exécutera 11 fois (0 à 10) et vous n'avez que 10 éléments dans vos cordes. La modification de la ligne defor (i=0;i<10;i++) {
va exécuter bon nombre de fois et ne devraient pas jeter des exceptions.