Datenbank

  • GM 7

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hi, ich kann mir denken, dass jetzt einige sagen werden, dass der Game Maker eher da ist zum Spiele machen und man für Datenbänke lieber richtige Programmiersprachen wählen sollte, aber das Problem ist, ich kann keine richtige Programmiersprache und deshalb wollte ich fragen ob es mit dem Game Maker möglich ist, eine Datenbank zu erstellen, so ähnlich stelle ich mir das vor:

    Es gibt mehrere Punkte, aus denen die Datenbank besteht, die man mit den Ordnern auf seiner Festplatte vergleichen kann, in die kommen mehrere Daten, d.h. zum Beispiel Adressen oder Vokabeln.
    Und dann kann man auf diese Punkte klicken und dann wird man nach den zufälligen Daten abgefragt, um genau zu sein: Ich möchte dass ich da meine Schulvokabeln eintrage und diese dann gespeichert werden und wenn ich dann auf den Punkt klicke, dass ich dann in einer zufälligen Reihenfolge abgefragt werde.

    Ich denk mal schon, dass das irgendwie möglich ist, die Frage ist nur wie aufwendig und wie kompliziert.
    Die Vokabeln könnte man ja in Dateien speichern, denke ich mal.

    Aber ich weiß leider nicht, wie ich so etwas umsetzen kann.

    Kann mir das jemand bitte erklären und wenns geht, so simpel wie möglich.


    Danke,
    Gruß Gamer.
    Gruß Gamer
  • Ein simples Beispiel.
    Du erstellst eine Textdatei und schreibst da deine Vokabeln rein, pro Zeile Original und Übersetzung, getrennt durch einen Strichpunkt.
    zB:

    vokabeln.txt

    Quellcode

    1. Auge;eye
    2. Nase;nose
    3. Mund;mouth
    Dann erstellst du noch ein Objekt, das du in einem neuen Room platzierst.
    Create Event:

    GML-Quellcode

    1. txt="";
    2. length=0;
    3. if (file_exists("vokabeln.txt")) { // wenn es die Datei gibt
    4. file=file_text_open_read("vokabeln.txt"); // dann öffne sie
    5. txt=file_text_read_string(file); // und lese die erste Zeile
    6. do // wiederholen
    7. {
    8. question[length]=string_copy(txt,1,string_pos(";",txt)-1); //schreib den ersten Teil der Zeile in ein Array
    9. answer[length]=string_copy(txt,string_pos(";",txt)+1,1000); // schreib den zweiten Teil der Zeile in ein zweites Array
    10. file_text_readln(file); // Spring zur nächsten Zeile
    11. length+=1; // Die Anzahl der Vokabeln ist nun um 1 größer
    12. txt=file_text_read_string(file); // lies die nächste Zeile
    13. }
    14. until (txt==""); // wiederholen abbrechen, wenn die nächste Zeile leer ist
    15. file_text_close(file); // Datei wieder brav schließen
    16. } else {
    17. show_message("Fehler beim lesen der Datei");
    18. }
    Alles anzeigen
    Global mouse left pressed:

    GML-Quellcode

    1. if (length>0) { // falls Vokabeln existieren
    2. zufall=random(length-1); // wähle ein zufälliges aus
    3. show_message(question[zufall]); // und zeige sie...
    4. show_message(answer[zufall]); // ...nacheinander
    5. }
    Einige meiner Spiele:
  • Hey, vielen Dank :thumbsup: , das ist wirklich sehr simpel und das gute, ich versteh den Code sogar, hab das Global Left Pressed jetzt so erweitert, dass die Vokabel nicht nur gezeigt sondern abgefragt wird:

    GML-Quellcode

    1. if (length>0) {
    2. zufall=random(length-1);
    3. if get_string(question[zufall],"") == answer[zufall]
    4. {show_message("Richtig");}
    5. else
    6. {show_message("Leider Falsch, richtige Antwort: " + answer[zufall]);}
    7. }


    Das mit den versch. Punkten, wie ich es oben hoffentlich verständlich erklärt habe, bekomm ich denk ich mal selber hin, nur was mich noch stört:
    Es kann sein, dass Vokabeln manchmal 3mal hintereinander abgefragt werden, es soll besser so sein:

    Alle Vokabeln aus einem Punkt, also aus einem array in diesem Fall hier sollen in einer zufälligen Reihenfolge abgefragt werden, aber keines soll doppelt vorkommen.
    Leider weiß ich nicht genau wie ich das lösen soll, ich hoffe ihr könnt mir da auch noch helfen.
    Gruß Gamer
  • Dann lösch die Elemente doch einfach aus den Arrays:

    GML-Quellcode

    1. if (length>0) {
    2. zufall=random(length-1);
    3. if get_string(question[zufall],"") == answer[zufall]
    4. {show_message("Richtig");}
    5. else
    6. {show_message("Leider Falsch, richtige Antwort: " + answer[zufall]);}
    7. for (i=floor(zufall); i<length-1; i+=1)
    8. {
    9. question[i]=question[i+1]; // verschiebe alle folgenden...
    10. answer[i]=answer[i+1]; //... Elemente eins nach links
    11. }
    12. length-=1; // und kürze die Länge um 1
    13. }
    Alles anzeigen
    Einige meiner Spiele:
  • Du kannst sobald length 0 ist, ein neues Objekt erstellen, dann werden die Daten neu geladen:

    EDIT: ich habe noch eine Wiederholung der Frage erlaubt.

    GML-Quellcode

    1. geschafft=false;
    2. tmp="";
    3. if (length>0)
    4. {
    5. zufall=floor(random(length));
    6. do
    7. {
    8. tmp=get_string(question[zufall],tmp); // Antwort zwischenspeichern
    9. if (tmp == answer[zufall])
    10. {
    11. show_message("Richtig");
    12. geschafft=true;
    13. }
    14. else if (tmp == "")
    15. {
    16. show_message("Richtig wäre gewesen:" +answer[zufall]);
    17. geschafft=true;
    18. }
    19. else
    20. {
    21. show_message("Leider Falsch! Korrigiere deine Antwort. Wenn du das Wort überspringen willst, lösche deine Antwort!");
    22. }
    23. } until (geschafft==true)
    24. for (i=zufall; i<length-1; i+=1)
    25. {
    26. question[i]=question[i+1]; // verschiebe alle folgenden...
    27. answer[i]=answer[i+1]; //... Elemente eins nach links
    28. }
    29. length-=1; // und kürze die Länge um 1
    30. }
    31. else
    32. {
    33. instance_create(x,y,object_get_name(id));
    34. instance_destroy();
    35. }
    Alles anzeigen
    Einige meiner Spiele:
  • Das ist dann doch sogar noch leichter. Dann kannst du die Richtig/Falsch-Frage einfach nochmal in Falsch abfragen:

    GML-Quellcode

    1. tmp="";
    2. if (length>0)
    3. {
    4. zufall=floor(random(length));
    5. tmp=get_string(question[zufall],tmp); // Antwort zwischenspeichern
    6. if (tmp == answer[zufall])
    7. {
    8. show_message("Richtig");
    9. }
    10. else
    11. {
    12. show_message("Leider Falsch! Du hast noch einen Versuch!");
    13. tmp=get_string(question[zufall],tmp);
    14. if (tmp == answer[zufall])
    15. {
    16. show_message("Richtig");
    17. }
    18. else
    19. {
    20. show_message("Leider Falsch!");
    21. }
    22. }
    23. for (i=zufall; i<length-1; i+=1)
    24. {
    25. question[i]=question[i+1]; // verschiebe alle folgenden...
    26. answer[i]=answer[i+1]; //... Elemente eins nach links
    27. }
    28. length-=1; // und kürze die Länge um 1
    29. }
    30. else
    31. {
    32. instance_create(x,y,object_get_name(id));
    33. instance_destroy();
    34. }
    Alles anzeigen
    Einige meiner Spiele: