Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα, 

θελω να υλοποιησω ενα παιχνίδι ερωτησεων . εχω σκεφτει να κανω ενα hashmap με τις ερωτησεις και τις απαντησεις αλλα το προβλημα ειναι οτι δεν θα πρεπει ο χρηστης να τα δηλώνει αλλα ο δημιουργος του προγραμματος. απ την αλλη σκεφτηκα να κανω πινακα με ερωτηση και απαντηση αλλα δεν νομιζω να ειναι και σωστος τρόπος.τι μπορώ να κάνω?...helppp..

Δημοσ.

Φτιάξε μια κλάση QuizItem που να έχει μια μέθοδο getQuestion και μια getAnswer μετά γεμίζεις με QuizItems μια λίστα ή ένα πίνακα ή οτιδήποτε θέλεις

Δημοσ.

Άσχετα με την υλοποίηση , αν θές να είναι δυναμικό ή θα τα πάρεις απο βάση ή για να είναι πιο απλό απο αρχείο (excel, csv, properties file)

Δημοσ.

γι αρχη θα ειναι στην μνημη του προγραμματος. Θα πρεπει να εμφανιζονται οι ερωτηση με τις απαντησεις και ο χρηστης θα παταει πχ 1-4 και τοτε να επιστρεφεται αν απαντησε σωστα ή οχι...

Δημοσ.

Δεν μπορώ να καταλάβω τι ακριβώς πρόβλημα αντιμετωπίζεις πάνω στην υλοποίηση αλλά ούτε και βγάζω άκρη με το post σου.

 
Κάνε μια κλάση όπως αυτή(γενικά είναι κακή υλοποίηση, συνίσταται χρήση ArrayList κι όχι απλά Array) και στην συνέχεια, στην main σου, κάνε ένα ArrayList ή ένα HashMap με key-value έναν Integer για τον αριθμό της ερώτησης και την κλάση Question.
 
Για να τσεκάρεις αν η απάντηση του χρήστη είναι σωστή, σύγκρινε την με την getCorrectAnswer().
Δηλαδή  "myAnswer".equals(question.getCorrectAnswer());
import java.util.Random;

class Question {
    private String question;
    private String[] Answers = new String[4];
    private String choosed = "";
    
    public Question(String q, String a1, String a2, String a3, String a4) {
        question = q;
        Answers[0] = a1;
        Answers[1] = a2;
        Answers[2] = a3;
        Answers[3] = a4;
    }
    
    public String getQuestion() {
        return question;
    }
    
    public String getAnAnswer() {
    // Επιστρέφει μια τυχαία απάντηση σε κάθε κλήση της
    // Κάλεσε την 4 φορές για να πάρεις και τις 4 απαντήσεις
    // Σε τυχαία/διαφορετική σειρά κάθε φορά
        Random opt = new Random();
        boolean flag;
        int num, i;
        
        if(choosed.length() == 4) choosed = "";
        
        do {
            num = opt.nextInt(4);
            flag = false;
            for(i = 0; i < choosed.length(); i++) {
                if(Integer.parseInt(String.valueOf(choosed.charAt(i))) == num) flag = true;
            }
        } while(flag);
        choosed += num;
        return Answers[num];
    }
    
    public String getCorrectAnswer() {
    // Θεωρούμε ότι η σωστή απάντηση βρίσκεται πάντα στην πρώτη θέση
        return Answers[0];
    }
}

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...