Memory Spiel

Für Dinge zum Forum, Kritik, Verbesserungsvorschläge, Umfragen und ähnliches.

Memory Spiel

Beitragvon kleeneluca » 27. Sep 2017, 13:19 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. :cry:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
kleeneluca
 
Beiträge: 4
Registriert: 8. Sep 2017, 11:38

Beitragvon m.fuchs » 27. Sep 2017, 13:25 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
m.fuchs
 
Beiträge: 1899
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.0, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Mathias » 27. Sep 2017, 16:05 Re: Memory Spiel

Am besten du bildest deine Karten in einer Array in dieser Art ab.
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. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3781
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon kleeneluca » 27. Sep 2017, 18:18 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.. :/
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
kleeneluca
 
Beiträge: 4
Registriert: 8. Sep 2017, 11:38

Beitragvon Mathias » 27. Sep 2017, 19:29 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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3781
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Erwin » 27. Sep 2017, 20:36 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 ... .
Win 7 / Lazarus 1.6 / FP 3.0.0 / x86_64-win64-win32/win64
Erwin
 
Beiträge: 138
Registriert: 16. Sep 2009, 13:15
OS, Lazarus, FPC: Xubuntu 16.04 / x86_64_linux-gtk 2 / L 1.6+dfsg-1 / FPC 3.0.0 | 
Nach oben

Beitragvon Michl » 27. Sep 2017, 20:44 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.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2241
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •

Zurück zu Allgemeines



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried