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.
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
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.. :/
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: '<>'.
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.