Memory Spiel
-
- Beiträge: 4
- Registriert: Fr 8. Sep 2017, 12:38
Memory Spiel
Hallo, also wir sollten im Unterricht ein Spiel programmieren.
Ich hatte mir vorgenommen Memory zu erstellen. Dabei kam nun das Problem auf, dass ich es nur durch if then anweisungen gemacht habe. Wenn zwei Kärtchen richtig gewählt wurden klappt es eigentlich. Aber wenn es falsch ist habe ich eine else angewandt, in diese geht der PC nun aber garnicht rein. Ich saß nun circa zwei Stunden davor und bin wahrscheinlich mittlerweile betriebsblind, ich hoffe ihr könnt mir helfen.
Habe die else erst mal nur an zwei Shapes probiert. Vielleicht könnt ihr euch ja mal durchwurschteln.
Ich hatte mir vorgenommen Memory zu erstellen. Dabei kam nun das Problem auf, dass ich es nur durch if then anweisungen gemacht habe. Wenn zwei Kärtchen richtig gewählt wurden klappt es eigentlich. Aber wenn es falsch ist habe ich eine else angewandt, in diese geht der PC nun aber garnicht rein. Ich saß nun circa zwei Stunden davor und bin wahrscheinlich mittlerweile betriebsblind, ich hoffe ihr könnt mir helfen.
Habe die else erst mal nur an zwei Shapes probiert. Vielleicht könnt ihr euch ja mal durchwurschteln.
- Dateianhänge
-
- u_memorie.pas
- (13.33 KiB) 189-mal heruntergeladen
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Memory Spiel
Kannst du mal bitte noch die .lfm und die .lpi Dateien anhängen?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 6207
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Memory Spiel
Am besten du bildest deine Karten in einer Array in dieser Art ab.
Somit kann man rech einfach in einer For-To-Schleife die Karten abfragen, und wen 2 mit dem Gleiche Wert aufgedeckt sind, kann Box.Visible die richtigen Paare ausblenden.
Die ToggleBox müsste man dynamisch erzeugen,.somit hast du am Ende ein recht übersichtlicher Code.
Code: Alles auswählen
type
TKarte = record
Wert: integer; // Bezeichnung der Karte
Box:TToggleBox; // Sichtbare Karten auf dem Bildschirm.
end;
TMemoryMatrix = array[0..7, 0..7] of TKarte;
var
MemoryMatrix: TMemoryMatrix;
Somit kann man rech einfach in einer For-To-Schleife die Karten abfragen, und wen 2 mit dem Gleiche Wert aufgedeckt sind, kann Box.Visible die richtigen Paare ausblenden.
Die ToggleBox müsste man dynamisch erzeugen,.somit hast du am Ende ein recht übersichtlicher Code.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 4
- Registriert: Fr 8. Sep 2017, 12:38
Re: Memory Spiel
Bei der .lpi beschwert er sich, da die Datei als möglicher Angriffsversuch identifiziert wurde.
Ja das mit den Feldern hab ich schon gelesen, jedoch hatten wir das im Unterricht noch nicht dran und sollen ausschließlich das verwenden was wir bereits hatten... deswegen ist das blöd..unser Lehrer hat auch schon versucht das Problem zu finden, doch hat das nichtmal nach zwei Stunden funktioniert.. Morgen ist allerletzte Abgabe und ich weiß mir echt nichtmehr zu helfen.. :/
Ja das mit den Feldern hab ich schon gelesen, jedoch hatten wir das im Unterricht noch nicht dran und sollen ausschließlich das verwenden was wir bereits hatten... deswegen ist das blöd..unser Lehrer hat auch schon versucht das Problem zu finden, doch hat das nichtmal nach zwei Stunden funktioniert.. Morgen ist allerletzte Abgabe und ich weiß mir echt nichtmehr zu helfen.. :/
- Dateianhänge
-
- u_memorie.lfm
- (3.49 KiB) 168-mal heruntergeladen
-
- Beiträge: 6207
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Memory Spiel
Bei der .lpi beschwert er sich, da die Datei als möglicher Angriffsversuch identifiziert wurde.
Virenscanner deaktivieren, die exe, wen vorhanden, dbg und den Ordner lib löschen, anschliessend dein ganzes project zippen, dann müsste es gehen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 286
- Registriert: Mi 16. Sep 2009, 14:15
- OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2
Re: Memory Spiel
kleeneluca hat geschrieben:.... Dabei kam nun das Problem auf, dass ich es nur durch if then anweisungen gemacht habe. Wenn zwei Kärtchen richtig gewählt wurden klappt es eigentlich. Aber wenn es falsch ist habe ich eine else angewandt, in diese geht der PC nun aber garnicht rein. ...
Also wenn else wirklich nicht aufgerufen wird, wäre mein Vorschlag, anstatt Else das Gegenteil von '=' zu versuchen: '<>'.
Code: Alles auswählen
if a=a then Button.Caption := 'Richtig';
if a<>a then Button.Caption := 'Falsch';
als Beispiel ... .
Lazarus 2.2.0 / FP 3.2.4
Re: Memory Spiel
Ich habe das Programm eben mal gestartet (als Projekt anbei, falls es noch jemand sonst testen will). Es fehlten ein paar Klammern, da es sich sonst gar nicht kompilieren lässt.
In welches "else" Statement springt er denn nicht rein (ich konnte hier keins entdecken. Der Debugger blieb immer enstprechend am Breakpoint stehen).
Beschreibe bitte nochmal genau, was du klickst und was dann deiner Meinung nach nicht geht.
In welches "else" Statement springt er denn nicht rein (ich konnte hier keins entdecken. Der Debugger blieb immer enstprechend am Breakpoint stehen).
Beschreibe bitte nochmal genau, was du klickst und was dann deiner Meinung nach nicht geht.
- Dateianhänge
-
- Memory.zip
- (3.35 KiB) 173-mal heruntergeladen
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;