Einfaches Quiz programmieren?

5 Antworten

Ich würde die Bilder Nummerieren und dann eine und für jedes Bild eine Textdatei mit der Lösung anlegen. Die Lösung und das Bild haben die gleiche Nummer als Namen.

Dann lässt du dir eine zufällige Zahl ausgeben und liest das Bild wie auch die Textdatei mit dieser Nummer ein. Dann einfach die Eingabe mit der Lösung vergleichen.

Außerdem würde ich noch ein boolean Array anlegen der die Länge der Anzahl an Bildern hat. Wenn eine Flagge richtig identifiziert würde, die entsprechende Nummer im Array auf true setzten und bei dem nächsten Bild abfragen, ob das Bild bereits verwendet wurde.


gogogo  31.12.2019, 14:36

Welche Oberfläche (UI) empfiehlst du? Java FX oder HTML?

0
Blombenkobolt  31.12.2019, 14:38
@gogogo

Ich nehme gerne Java Swing. Da kannst du dann in Eclipse ein Plugin installieren und musst dann nicht das Fenster über Code erstellen, sondern hast einen Windowbuilder.

0
gogogo  31.12.2019, 14:40
@Blombenkobolt

Danke. Mit Java habe ich keine richtige Erfahrung mit UIs. Der Name sagt mir aber was, aber nicht mehr.

Eclipse kenne ich gut.

0
VeryBestAnswers  31.12.2019, 14:53
@gogogo

Wenn du noch keine Erfahrung mit Java hast, würde ich dir davon abraten, Java FX oder Java Swing zu verwenden. Mit JavaScript geht es einfacher und benötigt weniger Vorkenntnisse.

0
Blombenkobolt  31.12.2019, 14:56
@VeryBestAnswers

Mit Java Swing kann man aber spätere Projekte erheblich besser gestalten. Außerdem ist Java Swing mit einem Windowbuilder kinderleicht. Vielleicht ist der Code für die Technik, also das Quiz an sich, komplizierter, aber ob man Java oder Javascript lernt macht auch nicht eine sehr großen Unterschied, wenn man die Zukunft bedenkt. Also später Projekte.

0
VeryBestAnswers  31.12.2019, 15:05
@Blombenkobolt

Ich möchte jetzt nicht vom Thema abkommen und eine Debatte über die Relevanz verschiedener Frameworks lostreten; ich denke nur, dass für einen Programmieranfänger, der bloß ein einfaches Quiz programmieren will, JavaScript mehr als ausreicht und die Grundlagen einfach zu erlernen sind. Auch hat JavaScript den Vorteil, dass es direkt im Browser ausführbar ist, sogar auf dem Handy.

Für größere Projekte bevorzuge ich übrigens TypeScript, Kotlin oder Rust :)

1
gogogo  31.12.2019, 15:10
@VeryBestAnswers

Das sehe ich auch so. Java als Anfänger und gleich mit UI finde ich etwas zu viel, weil der erste Erfolg so lange dauert.

0
gogogo  31.12.2019, 15:13
@Blombenkobolt

Na, Java ist viel viel mehr als JavaScript.

Das dauert lange, bis man den Gedankenansatz dahinter verstanden hat.

Der Prototype von JavaScript und die MapsStruktur für alle Objekte finde ich für den Anfang schon schwer genug, aber noch lernbar.

0

Hast du schon eine Programmiersprache und eine Oberfläche ausgesucht?

Da ich wenig Erfahrung mit aktuellen Oberflächen habe, würde ich das in einem Browser machen und dann JavaScript und/oder PHP nehmen.


Myzzel 
Fragesteller
 31.12.2019, 14:27

Ich selber habe keine Programmierkentnisse, und jetzt ist die Frage ob das möglich ist?

0
gogogo  31.12.2019, 14:28
@Myzzel

Ja, beispielsweise in einer HTML Datei, in der auch in JavaScript programmiert wird.

Die Bilder liegen im selben Verzeichnis wie die html Datei.

0
Blombenkobolt  31.12.2019, 14:31
@Myzzel

Ja, ist es. Ich würde dir das Buch 'Java ist auch eine Insel' empfehlen. Das gibt es kostenlos online auf Rheinwerk.

1

Du kannst eine Lösung relativ einfach mit Processing programmieren (einiges Lernmaterial zu Processing findest du auch hier, nutze des Weiteren die Referenz zum Nachschlagen spezifischer Funktionen).

Voraussetzung ist allerdings, dass du dich zuerst mit dieser beschäftigst. Themen wie Variablen, Arrays, Verzweigungen, Schleifen oder Funktionen sollten im Folgenden bekannt sein, bevor du mit dem Quiz beginnst. Dies gilt übrigens unabhängig von der Programmiersprache, die du wählst.

Tipps für die Umsetzung:

1) Gib deinen Bildern zunächst jeweils den Namen, der später auch bei Klick angezeigt werden soll. Das macht es später einfacher, Daten zu assoziieren.

2) Mit dieser Funktion:

File[] listFiles(String directoryPath) {
  File file = new File(directoryPath);
  return file.isDirectory() ? file.listFiles() : null;
}

// usage:
File[] files = listFiles("some/path/to/images");

if (files != null) {
  // do something ...
}

lassen sich alle Dateien eines Ordners auslesen. Sie werden in einem Array abgelegt, der Dateipfad von einer Datei lässt sich via getPath-Methode ermitteln.

3) Die Dateiendung kannst du vom Dateinamen mit String-Funktionen abtrennen:

String getFilename(File file) {
  String filename = file.getName();
  int lastDot = filename.lastIndexOf(".");
  return filename.substring(0, lastDot);
}

4) Um ein zufälliges Bild zu bekommen, kannst du einen Zufallsindex aus dem Files-Array ermitteln lassen. Wie das geht, wird bereits in der Referenz gezeigt. Um zu vermeiden, dass ein Bild doppelt angezeigt wird, solltest du dir die bereits gezogenen Indizes in einem separaten Array merken. Wenn ein neuer Index ermittelt wird, dann sollte geprüft werden, ob er schon im separaten Array vorliegt. Wenn ja, wird die Prozedur wiederholt.

5) Ob die Maus geklickt wurde oder nicht, lässt sich mit mouseClicked prüfen. Du könntest Bild und Text in jedem Fall rendern, nur für letzteres nutzt du eine globale Variable, die die Füllfarbe des Textes bestimmt. Diese könnte zwischen für einen Farbwert von weiß und schwarz wechseln.

Wenn du schon Programmiererfahrung hast, sollte das nicht mehr als ein paar Stunden dauern, zu programmieren. Am einfachsten geht es sicherlich mit HTML/JavaScript. Wenn du dich noch in HTML oder JavaScript einarbeiten musst, dauert es natürlich länger.

In Java ist es genauso möglich, dafür solltest du dich aber gut mit Java Swing oder JavaFX auskennen.

Was willst du letztendlich mit dem Quiz machen? Falls du es in JavaScript programmierst, ist das Quiz eine Website. Die kannst du auf einen Server hochladen und einfach als Link teilen. Java-Anwendungen muss man erst herunterladen, und u.U. die Java-Runtime installieren.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
Hat da jemand eine Idee wie man sowas programmieren kann?

Auf was genau wilslt Du raus? Welche Programmiersprachen sich anbieten oder suchst Du (halb-)fertige Scripte?


Myzzel 
Fragesteller
 31.12.2019, 14:26

Ich selber habe keine Programmierkentnisse, und jetzt ist die Frage ob das möglich ist?

0