![]() |
Delphi-Version: 5
Sammlung von Problemen
So, ich habe schon einige Zeit nach einem passenden Thema gesucht, aber keins gefunden.
Ich habe in Delphi ein kleines Projekt vor. Dabei sind aber einige Probleme Aufgetreten. 1) Ich habe rechts ein Highscore laufen, der sich während des Spiels immer wieder aktualisiert, ich will jedoch verhinden, dass wärend das Programm läuft und auch danach jemand etwas so eintippen kann. Gibt es dafür ein Befehl, oder eine Variante? 2) Ich brauche eine Art Stoppuhr. Hierbei will ich die Windows-Zeit auslesen lassen, beim Start und beim Ende und daraus die Differenz bilden. Jetzt weiß ich nicht, ob ich die Zeiten 2 mal auslesen kann und ein " - " dazwischen schreibe und die Differenz habe oder ob es doch anders und einfacher geht. 3) Der Highscore soll von einer Klasse insgesamt gebildet werden, also muss ich eine externe "Highscore-Datei" machen und dort immer wieder die Ergebnisse "hinschicken" und diese dann ordnen. Ist die Idee richtig und sinnvoll oder lieber doch anders? Ich bin ganz ehrlich. Ich habe noch keinen großen Schimmer wie ich es letztendlich aufbaue. Aber ich hoffe ihr helft mir ein wenig. :D Grüße Sertrain :) |
AW: Sammlung von Problemen
Zitat:
Zitat:
Zitat:
|
AW: Sammlung von Problemen
Hallo und schönen guten Abend,
vieleicht hilft Dir das weiter... ![]() Gruß Jens |
AW: Sammlung von Problemen
Zitat:
Danke Jens für den Link, ich probiere ihn später. :D Ich habe im Moment nur ein Problem ... also zumindest komme ich nicht weiter.
Code:
Also zur Erklärung. Oben sind meine Kontrollen, ob es lösbar ist. Da weiß ich noch nicht ob sich ne Funktion oder ne Prozedur besser eignet. Deshalb nicht so genau drauf achten, was da steht, da sie nur kontrollieren ob die Lösung zwischen 0-99 liegt, da es nur die Buttons zur auswahl gibt.
{---------------------------------------- Prozeduren ----------------------------------------}
function Kontrolle(loesung,ergebnis:integer):boolean; var richtig: boolean; begin If Loesung = Ergebnis then richtig:= true else richtig:= false; end; function KontrolleAddition(zahl1, zahl2: integer):boolean; var zahlgesadd: integer; begin zahlgesadd:= zahl1+zahl2; if zahlgesadd > 99 then loesbar:= false else loesbar:= true; end; procedure KontrolleSubtraktion; var zahlgessub: integer; begin zahlgessub:= zahl1 - zahl2; if zahlgessub < 0 then loesbar:= false else if zahlgessub > 99 then loesbar:= false else loesbar:= true; end; procedure KontrolleDivision; var zahlgesdiv: integer; begin zahlgesdiv:= zahl2*zahl1; if zahlgesdiv >15 then loesbar:= false else if zahlgesdiv < 0 then loesbar:= false else loesbar:= true; end; procedure KontrolleMultiplikation; var zahlgesmult: integer; begin zahlgesmult:= Zahl1* zahl2; if zahlgesmult > 99 then loesbar:= false else loesbar:= true; end; {--------------------------------------- Aufgaben ---------------------------------------} Procedure Aufgabe1; var a:integer; begin randomize; a:= random(4)+1; case a of 1: begin repeat begin zahl1:= random(99); zahl2:= random(99); end; until KontrolleAddition(zahl1, zahl2) = true; end; end; end; Wie auch immer. Meine erste Aufgabe, soll Ausgang für alle sein, also: zufallszahl von 1-4 ... 1= + 2= - 3= / 4= * damit ich eine zufällige rechenoperation habe. Danach will ich mit einer case of variante überprüfen, ob die ausgewürfelten zahlen für die operation lösbar sind, sonst nochmal neu würfeln bis es passt und dann die aufgabe in nem editfenster anzeigen. Ist es einigermaßen verständlich was ich vor habe? ^^:roll: |
AW: Sammlung von Problemen
Code:
Wenn ich den Code aufrufe kommts zum Absturz ... also des Programms. ;)
{---------------------------------------- Prozeduren ----------------------------------------}
function Kontrolle(loesung,ergebnis:integer):boolean; begin If Loesung = Ergebnis then richtig:= true else richtig:= false; end; function KontrolleAddition(zahl1, zahl2: integer):boolean; var zahlgesadd: integer; begin zahlgesadd:= zahl1+zahl2; if zahlgesadd > 99 then loesbar:= false else loesbar:= true; end; function KontrolleSubtraktion(zahl1, zahl2: integer):boolean; var zahlgessub: integer; begin zahlgessub:= zahl1 - zahl2; if zahlgessub < 0 then loesbar:= false else if zahlgessub > 99 then loesbar:= false else loesbar:= true; end; function KontrolleDivision(zahl1, zahl2: integer):boolean; var zahlgesdiv: integer; begin zahlgesdiv:= Zahl1 mod zahl2; if zahlgesdiv = 0 then loesbar:= true else loesbar:= false; end; function KontrolleMultiplikation(zahl1, zahl2: integer):boolean; var zahlgesmult: integer; begin zahlgesmult:= Zahl1* zahl2; if zahlgesmult > 99 then loesbar:= false else loesbar:= true; end; {--------------------------------------- Aufgaben ---------------------------------------} Procedure Aufgabe1; var a:integer; begin randomize; a:= random(4)+1; case a of 1: begin repeat begin zahl1:= random(100); zahl2:= random(100); end; until KontrolleAddition(zahl1, zahl2) = true; end; 2: begin repeat begin zahl1:= random(100); zahl2:= random(100); end; until KontrolleSubtraktion(zahl1, zahl2) = true; end; 3: begin repeat begin zahl1:= random(15); zahl2:= random(15); end; until Kontrollemultiplikation(zahl1, zahl2) = true; end; 4: begin repeat begin zahl1:= random(100); zahl2:= random(100); end; until KontrolleDivision(zahl1, zahl2) = true; end; end; end; Wo liegt der Fehler? |
AW: Sammlung von Problemen
In deinen Funktionen fehlt der Rückgabetyp. Diesen kannst du mit
Delphi-Quellcode:
setzen (eigentlich sollte der Compiler das melden :gruebel: ).
result := WasAuchImmer;
mfg |
AW: Sammlung von Problemen
Och ... na gucke mal einer schau :D Es funktioniert :D
Also der Anfang zumindest. ^^ Danke Patti.
Delphi-Quellcode:
Die Kontrollen klappen nicht. Die zu errechnende Zahl darf nie größer 99 oder kleiner 0 sein ... das sollen sie absichern, hab ich was vergessen?function Kontrolle(loesung,ergebnis:integer):boolean; begin If Loesung = Ergebnis then richtig:= true else richtig:= false; result:= richtig; end; function KontrolleAddition(zahl1, zahl2: integer):boolean; var zahlgesadd: integer; begin zahlgesadd:= zahl1+zahl2; if zahlgesadd > 99 then loesbar:= false else loesbar:= true; result:= loesbar; end; function KontrolleSubtraktion(zahl1, zahl2: integer):boolean; var zahlgessub: integer; begin zahlgessub:= zahl1 - zahl2; if zahlgessub < 0 then loesbar:= false else if zahlgessub > 99 then loesbar:= false else loesbar:= true; result:= loesbar; end; function KontrolleDivision(zahl1, zahl2: integer):boolean; var zahlgesdiv: integer; begin zahlgesdiv:= Zahl1 mod zahl2; if zahlgesdiv = 0 then loesbar:= true else loesbar:= false; result:= loesbar; end; function KontrolleMultiplikation(zahl1, zahl2: integer):boolean; var zahlgesmult: integer; begin zahlgesmult:= Zahl1* zahl2; if zahlgesmult > 99 then loesbar:= false else loesbar:= true; result := loesbar; end; |
AW: Sammlung von Problemen
Nicht umsonst steht in den Forenrichtlinien, die du auch gelesen haben solltest, dass man nur ein Thema pro Thread eröffnen soll. Dann kann man auch einen sinnvollen Beitragstitel erstellen und es geht auch nicht alles durcheinander im Thread. Deswegen mache ich hier zu und du erstellst bitte für jede Frage einen neuen Thread.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz