J'essaie de réaliser mon premier projet en Java après avoir appris les bases, alors je m'excuse pour ce qui est probablement une question débutant complète. J'ai cherché de l'aide toute l'après-midi, et mon code commence à avoir l'air désordonné et brisé. J'essaye de créer un rouleau de dés qui roule un certain nombre de d10, puis vérifie combien sont au nombre de 7 ou plus et les compte comme des succès. Si aucun des rouleaux n'est un succès, je veux qu'il affiche "Botch". Après quelques recherches, j'ai trouvé que créer une ArrayList et partir de là était (ce qui me semble être) la meilleure option. Mais je suis coincé depuis un certain temps, avec différentes erreurs et problèmes à venir, et chaque fois que j'en prends une, le code devient plus confus et mon objectif semble plus loin. Mon copain a dit "bienvenue à la programmation" et a suggéré que je demande à la communauté.Vérifier si les valeurs stockées dans une ArrayList sont supérieures à un nombre
Voici ce que je travaille avec:
import java.util.Scanner;
import java.util.ArrayList;
public class RollDie {
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
String numberOfDice;
// User input for number of dice to roll
System.out.print("How many dice? ");
numberOfDice = userInput.next();
System.out.println("Rolling " + numberOfDice + " dice!");
userInput.close();
Integer roll = 0;
int dice = Integer.parseInt(numberOfDice);
int sides = 10; // # of die sides
ArrayList<Integer> sux = new ArrayList<Integer>(); // Store results of roll
// print result
for(int d=0; d < dice; d++) {
// roll should be 1 through sides
roll = (int) (Math.random() * sides) + 1;
sux.add(roll);
}
System.out.println(sux);
// Count successes and print or check for botch
for(int s = 0; s < sux.size(); s++){
if(sux.get(roll) >= 7) {
s++;
System.out.println(s + " successes!");
} else {
System.out.println("BOTCH!");
break;
}
}
}
}
Tout imprime après la ArrayList sux est un gâchis. Je sais que la boucle for est mauvaise, je ne sais pas comment faire les choses correctement. La variable s ne semble pas à sa place ... Toute aide serait appréciée, et laissez-moi savoir si ce post est contre les normes pour la communauté de toute façon. Merci!
EDIT: Pour clarifier mes divagations, ma question est: comment vérifier si les nombres qui sont ajoutés à ArrayList après le roulement sont supérieurs ou égaux à 7 (ou n'importe quel nombre)?
_Si aucun des rouleaux sont un succès, je le veux pour afficher « BOTCH » _, cela contredit votre code, vous devriez plutôt prendre la 'System.out.println (« bâcler! »);' Out de la boucle et utiliser une variable de drapeau pour aider à identifier quand il est approprié de l'afficher. Il me semble que vous posez ** plus d'une ** question, s'il vous plaît envisager de modifier votre poste limitant ainsi à ** un ** problème spécifique. –
Merci pour la réponse et l'aide, je suppose que mon message est devenu un peu compliqué et gonflé au point d'être des questions multiples. – Zero