hey
hätte nochmal ne frage, ich beschäftige mich grade noch mit den sql Sachen, das wwird leider aber noch ein wenig brauchen wahrscheinlich. ich hab jetzt das mit dem collections.shuffle probiert und es mischt das auch aber nun kommen fragen doppelt vor. ich dachte die Liste würde einfach nur durchgeschüttelt werden und dann sollte ja keine doppeltvorkommen oder??
Beiträge von maxb
-
-
danke
Der zweite Link ist exakt das was ich gesucht habe... Warum habe ich das nicht gefunden?
Das Tutorial zu der SQL Datenbank lese ich mir gerade durch und werde es dann auch probieren.
Vielen Dank !!!!
Sobald ich Probleme bekomme (was wahrscheinlich nicht zu lange geht ) melde ich mich wieder -
Okay danke werd's mir später mal anschauen
-
okay danke, das mit dem Flag wusste ich nicht.
Wo kriege ich die Informationen am besten her? -
länger...
Mein nächstes projektwäre eben die Fragen in eine SQL Datenbank zu schreiben -
Okay danke,
Ich will eigentlich den ersten Weg weiss aber nicht wie,
Ich hab das mit ein paar Beispielen aus dem Internet probiert, hab aber das Problem das ich einen Integer Wert brauche und im Internet hab ich nur Int[] Werte gefunden.... -
Danke für deine Kommentare erstmal,
Dass in der Fragen.add das in der Klammer fehlt war mir schon klar.
Normal steht in der Klammer dort "aktuelle frage" und ganz oben gebe ich aktuelle frage den Wert 0. Wie du schon gesagt hast erhöhe ich den Wert mit dem onclick nach jeder Frage um 1. Meine Idee war jetzt in Zeile 60, deshalb ist dort auch eine lerrezeile, eine zufallszahl zwischen 1 und 7 (weil ich 7 Fragen hab) zuerstellen. Diese zufallszahl sollte dann in die Klammer, jede Zahl darf aber das es keine Wiederholungen gibt nur einmal vorkommen. Diese Funktion die mir die zufallszahl ohne wiederholung erstellt ist aber mein Problem, da ich das mit dem überprüfen ob die Zahl schon vorgekommen ist nicht hinkriege. Den Index aktuelle Frage wollte ich einfach nur noch in der onclick Methode aufrufen und in der Methode jewels um 1 erhöhen sodass ich wenn 5 Fragen gestellt werden sollen einfach als maximal Wert 5 eingeben kann.
So war mein Plan zu mindestens . Ich war mir jetzt nicht sicher ob du das auchsosiehst? Wenn du das so mit deinen comments gemeint hast sorry, verstehe das in deinem letzten Comment nicht.
Würdest mir echt helfen wenn du mir einen Lösungsweg in einfachen Worten erklären könntest. Wenn ich jetzt komplett deine Comments ingnoriert habe sorry, aber verliere dort ein bisschen den Überblick, sonst schreib einfach nochmal die nummer in welchem Comment das richtige steht.
Vielen Dank nochmal für deine Antworten -
sorry hatte nicht verstanden was du mit <> meinst, hier jetzt also hoffentlich richtig
Java
Alles anzeigenpackage maxbaeren.quiz; import android.app.Activity; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.annotation.RequiresApi; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.Random; import java.util.stream.Collectors; import java.util.ArrayList; import java.util.List; public class Spiel3 extends Activity implements View.OnClickListener{ Button buttonAntwort1, buttonAntwort2, buttonAntwort3, buttonAntwort4; TextView textViewFragenanzeige, tVScore; int aktuelleFrage = 0; int punkte = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_spiel5); buttonAntwort1 = (Button) findViewById(R.id.btn1); buttonAntwort2 = (Button) findViewById(R.id.btn2); buttonAntwort3 = (Button) findViewById(R.id.btn3); buttonAntwort4 = (Button) findViewById(R.id.btn4); textViewFragenanzeige = (TextView) findViewById(R.id.tvF); tVScore = (TextView) findViewById(R.id.tvS); buttonAntwort1.setOnClickListener(this); buttonAntwort2.setOnClickListener(this); buttonAntwort3.setOnClickListener(this); buttonAntwort4.setOnClickListener(this); Frageladen(); } private void Frageladen(){ Fragen fragenC = new Fragen(); ArrayList fragen = fragenC.getFragen(); String[] frage = (String[]) fragen.get(); textViewFragenanzeige.setText(frage[0]); int zufallszahl = (int) (Math.random()*8+1); switch (zufallszahl) { case 1: buttonAntwort1.setText(frage[1]); buttonAntwort2.setText(frage[2]); buttonAntwort3.setText(frage[3]); buttonAntwort4.setText(frage[4]); break; case 2: buttonAntwort1.setText(frage[1]); buttonAntwort2.setText(frage[3]); buttonAntwort3.setText(frage[4]); buttonAntwort4.setText(frage[2]); break; case 3: buttonAntwort1.setText(frage[2]); buttonAntwort2.setText(frage[3]); buttonAntwort3.setText(frage[4]); buttonAntwort4.setText(frage[1]); break; case 4: buttonAntwort1.setText(frage[2]); buttonAntwort2.setText(frage[4]); buttonAntwort3.setText(frage[1]); buttonAntwort4.setText(frage[3]); break; case 5: buttonAntwort1.setText(frage[3]); buttonAntwort2.setText(frage[4]); buttonAntwort3.setText(frage[1]); buttonAntwort4.setText(frage[2]); break; case 6: buttonAntwort1.setText(frage[3]); buttonAntwort2.setText(frage[1]); buttonAntwort3.setText(frage[2]); buttonAntwort4.setText(frage[4]); break; case 7: buttonAntwort1.setText(frage[4]); buttonAntwort2.setText(frage[1]); buttonAntwort3.setText(frage[2]); buttonAntwort4.setText(frage[3]); break; case 8: buttonAntwort1.setText(frage[4]); buttonAntwort2.setText(frage[2]); buttonAntwort3.setText(frage[3]); buttonAntwort4.setText(frage[1]); break; } tVScore.setText("Punkte: " + punkte); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn1: if (frageAuswerten(buttonAntwort1.getText().toString())){ punkte ++; } if (aktuelleFrage >= 2) { Intent intent = new Intent(this, Ende.class); intent.putExtra("Punkte", punkte); startActivity(intent); }else{ aktuelleFrage++; Frageladen(); } break; case R.id.btn2: if (frageAuswerten(buttonAntwort2.getText().toString())){ punkte ++; } if (aktuelleFrage >= 2) { Intent intent = new Intent(this, Ende.class); intent.putExtra("Punkte", punkte); startActivity(intent); }else{ aktuelleFrage++; Frageladen(); } break; case R.id.btn3: if (frageAuswerten(buttonAntwort3.getText().toString())){ punkte ++; } if (aktuelleFrage >= 2) { Intent intent = new Intent(this, Ende.class); intent.putExtra("Punkte", punkte); startActivity(intent); }else{ aktuelleFrage++; Frageladen(); } break; case R.id.btn4: if (frageAuswerten(buttonAntwort3.getText().toString())){ punkte ++; } if (aktuelleFrage >= 2) { Intent intent = new Intent(this, Ende.class); intent.putExtra("Punkte", punkte); startActivity(intent); }else{ aktuelleFrage++; Frageladen(); } break; } } private boolean frageAuswerten (String btnText) { boolean frage = false; Fragen fragenC = new Fragen(); ArrayList fragen = fragenC.getFragen(); String [] speicher = (String[]) fragen.get(aktuelleFrage); if (speicher[1].equals(btnText)){ frage = true; } return frage; } }
mein obenbeschriebenes problem ist in zeile 60.
hier wäre noch die klasse fragenJava
Alles anzeigenpackage maxbaeren.quiz; import java.util.ArrayList; public class Fragen { ArrayList<String[]> fragen; public Fragen() { fragen = new ArrayList<>(7); //zahl gibt an wi viele fragen es geben kann fragenlistefullen(); } private void fragenlistefullen() { String[] frage1 = new String[5]; frage1[0] = "Frage 1"; frage1[1] = "Richtig"; frage1[2] = "g"; frage1[3] = "f"; frage1[4] = "d"; String[] frage2 = new String[5]; frage2[0] = "Frage 2"; frage2[1] = "Richtig"; frage2[2] = "g"; frage2[3] = "f"; frage2[4] = "d"; String[] frage3 = new String[5]; frage3[0] = "Frage 3?"; frage3[1] = "Richtig"; frage3[2] = "g"; frage3[3] = "f"; frage3[4] = "d"; String[] frage4 = new String[5]; frage4[0] = "Frage 4?"; frage4[1] = "Richtig"; frage4[2] = "a"; frage4[3] = "d"; frage4[4] = "k"; String[] frage5 = new String[5]; frage5[0] = "Frage 5?"; frage5[1] = "Richtig"; frage5[2] = "g"; frage5[3] = "f"; frage5[4] = "d"; String[] frage6 = new String[5]; frage5[0] = "Frage 6?"; frage5[1] = "Richtig"; frage5[2] = "g"; frage5[3] = "f"; frage5[4] = "d"; String[] frage7 = new String[5]; frage5[0] = "Frage 7?"; frage5[1] = "Richtig"; frage5[2] = "g"; frage5[3] = "f"; frage5[4] = "d"; fragen.add(0, frage1); fragen.add(0, frage2); fragen.add(0, frage3); fragen.add(0, frage4); fragen.add(0, frage5); fragen.add(0, frage6); fragen.add(0, frage7); } public ArrayList<String[]> getFragen() { return fragen; } }
ich hoffe jetzt ist es richtig und danke schonmal für deine mühe
-
Hey
Danke für eure Antworten.
Das hier wäre der ganze Code, die Bilder sind zwar nicht ganz aktuell aber in der klasse Fragen und Spiel dürfte sich nicht viel verändert haben.
https://drive.google.com/open?…bcg1YpY2C2Bv7BWo3ueA7f1uK -
hey erstmal,
Ich hab in letzter Zeit angefangen mit Android Studio, mein erstes Projekt ist eine "quizapp" welche ich mithilfe eines YouTube Tutorials erstellt habe. Das funktioniert jetzt auch alles und ich probiere seit letzter Woche das Quiz zu erweitern. Bis jetzt hat das auch geklappt aber ich bin nun einem Punkt wo ich einfach nicht mehr weiterkomme....
Bisher werden die Fragen immer in der gleichen Reihenfolge gestellt was natürlich langweilig ist. Meine "idee" war es jetzt also die Fragen zufällig zu Stellen. Dazu habe ich im Internet mich informiert und bin auf das lottoproblem gestossen. Aus einem topf von Zahlen(bei mir die fragen) werden eine bestimmte Anzahl von Kugeln gezogen(soviel wie Fragen gestellt werden) und jede Kugel (also frage) kann nur einmal gestellt werden, weil jede Zahl nur einmal im topf ist. Dazu habe ich auch viele Programme gefunden und ausprobiert aber funktioniert hat es nie.
https://drive.google.com/open?…l7jqkNo8qOA5kxlWvr6wpLSwm
Das hier ist ein Teil meines Programmes und in die Funktion frageladen dort wo die Zeile frei ist, müsste nun die funktion(heisst das so?) In welcher die zufahlszahl bestimmt werden würde. In die Zeile darunter in Fragen.get müsste in die Klammer die zufahlszahl. Zurzeit (so funktioniert es auch) steht dort aktuelle Frage, was ich weiter oben mit aktuelle Frage = 0 definiert habe und weiter unten erhöht sich der Wert von aktuelle Frage nach jeder frage um 1.
Ich habe keine Ahnung ob man versteht was ich meine aber wenn es jemand bis hierhin geschafft hat und meint mir helfen zur können würde ich mich freuen <3