Delphi-PRAXiS
Seite 2 von 8     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Memory Programm (https://www.delphipraxis.net/184226-memory-programm.html)

KillerMary 16. Mär 2015 14:52

AW: Memory Programm
 
okay Freundin hat mir den Quelltext jetzt gesendet.
sie hat folgendes gemacht.

Code:
var
  FormAL: TFormAL;
  zaehler: integer;
implementation
uses UnitStart;
{$R *.dfm}
procedure TFormAL.Button2Click(Sender: TObject);
begin
formstart.show;
end;
procedure TFormAL.Image15Click(Sender: TObject);
begin
image15.visible:= false;
end;
.
. {die restlichen karten}
.
procedure TFormAL.FormCreate(Sender: TObject);
begin
If zaehler > 1 then
Zaehler := 0;
end;
end.

DeddyH 16. Mär 2015 15:00

AW: Memory Programm
 
Die Images beim Click verschwinden zu lassen, halte ich nicht für geschickt. Wenn es 16 Karten sind, braucht Ihr insgesamt 9 Bilder, nämlich 8 für die Paare und 1 für die Kartenrückseite. Beim Spielstart müssen dann alle Images natürlich die Rückseite anzeigen und erst beim Click werden sie "umgedreht", d.h. sie zeigen eins der anderen 8 Bilder an. Diese müssen ihnen erst einmal verteilt werden, und zwar so, dass alle 8 Bilder genau 2 Karten zugewiesen sind. Das wäre meiner Meinung nach der erste Schritt, den es umzusetzen gilt.

KillerMary 16. Mär 2015 16:33

AW: Memory Programm
 
Also wir haben uns das so gedacht. Man sucht sich ein Thema aus und eine Schwierigkeit.
So und dann öffnet sich ein Formular Mit den Karten. 8 Paare und über jeden Ist das "Deckblatt".
Und wenn man das anklickt ist das weg. So aber es muss ja wieder erscheinen wenn das Pärchen nicht passt.
Und das bekommen wir mit unserem Delphi wissen was wir in der schule erlernt haben nicht wirklich hin. .. deswegen dachte ich Wir bekommen hier ein wenig hilfe. Weil ansonsten ist das Programm fertig.
Nur das bereitet uns Kopfzerbrechen.
Wir wissen zu wenig über Delphi.

BadenPower 16. Mär 2015 16:37

AW: Memory Programm
 
Zitat:

Zitat von KillerMary (Beitrag 1293672)
Weil ansonsten ist das Programm fertig.

Dann zeig uns doch das Programm und nicht nur einen Schnipsel.

Dann können wir uns dort einlesen und exakt beantworten, was noch fehlt und wo es hingehört.

DeddyH 16. Mär 2015 16:52

AW: Memory Programm
 
Und man wechselt die Darstellung eines TImage am Einfachsten, indem man eine andere Grafik hineinlädt.

Sir Rufo 16. Mär 2015 17:09

AW: Memory Programm
 
Zitat:

Zitat von KillerMary (Beitrag 1293672)
Also wir haben uns das so gedacht. Man sucht sich ein Thema aus und eine Schwierigkeit.
So und dann öffnet sich ein Formular Mit den Karten. 8 Paare und über jeden Ist das "Deckblatt".
Und wenn man das anklickt ist das weg. So aber es muss ja wieder erscheinen wenn das Pärchen nicht passt.
Und das bekommen wir mit unserem Delphi wissen was wir in der schule erlernt haben nicht wirklich hin. .. deswegen dachte ich Wir bekommen hier ein wenig hilfe. Weil ansonsten ist das Programm fertig.
Nur das bereitet uns Kopfzerbrechen.
Wir wissen zu wenig über Delphi.

Dann lassen wir doch mal Delphi komplett vor der Tür stehen und überlegen uns, was da eigentlich passiert:

Da gibt es 8 Paare von irgendwas. Aber wie erkenne ich ein Paar, bzw. wie erkenne ich, wenn ich zwei Irgendwas habe, dass es ein Paar ist, diese also zusammengehören?

Nun, ich merke mir das am besten durch eine Zahl. Jedes Irgendwas bekommt eine Zahl. Jede Zahl wird genau zweimal vergeben. Da ich anhand dieser Zahl ein Paar identifizieren kann lege ich mal fest, dass das die PaarID ist.

Jedes Irgendwas kann entweder verdeckt (0), aufgedeckt (1) oder weg (2) sein. Das ist wohl der Status, also lege ich auch mal fest, dass das der Status ist.
idxPaarIDStatus
010
110
220
320
......
1480
1580
Mit so einer Liste könnte man ja allerhand anfangen.

Über die PaarID kann ich auf Gleichheit prüfen, über den Status kann ich prüfen ob die Karte gezogen werden kann und über den Status und PaarID kann ich das anzuzeigende Bild bestimmen.

Das ist doch schon die halbe Miete.

Jetzt wieder zurück zu Delphi, wie kann ich das abbilden?
Delphi-Quellcode:
type
  TCard = record
    PaarID: Integer;
    Status: Integer;
  end;

  TCardArray = array[0..15] of TCard;

const
  CARD_SHOWBACK = 0;
  CARD_SHOWFRONT = 1;
  CARD_INVISIBLE = 2;
Das mal so als Starthilfe

Catbytes 16. Mär 2015 17:57

AW: Memory Programm
 
Hi,

geht mal auf www.catbytes.de und zieht euch "Merk's Dir". Ist in Delphi 7 geschrieben (einfach aus Jux und Dollerei). Da gibt es ungefähr das, was ihr wollt (Schwierigkeitsgrade, verschiedene Motive etc.).

Ich gebe euch kein fertiges Programm, da ihr ja was lernen wollt ;) Aber kleine Codeschnipsel, wie ich dies und jenes umgesetzt habe, kann ich gerne geben.

Nicht wundern: Seite wurde das letzte mal 2008 oder so aktualisiert, da ich z.Z. nicht mehr wirklich zum programmieren komme.

Apropo: Das Programm keinesfalls "Memory" nennen. "Memory" ist ein geschützter Begriff und der Rechteinhaber klagt da gerne mal ;)

KillerMary 16. Mär 2015 19:00

AW: Memory Programm
 
Hey, danke erstmal an alle.


erstmal zu dir Badenpower.
ich kann dir das leider nicht komplett zeigen da es aus insgesamt aus viel zu vielen Formularen besteht.
und es geht mir nicht drum das ihr mir meine Aufgaben erledigt.
Ich versuche nur ne Lösung zu finden für das umdrehen von 2 karten. bei gleichem Bild bleiben sie offen bei verschiedenen Bildern müssen sie sich wieder umdrehen.

Sir Rufo, den Sinn so als Hintergrund ist uns mittlerweile plausibel.
der umsatz fällt und schwer, da ich persönlich sagen muss, unsere Lehrerin selbst nicht wirklich versteht was sie uns erklärt.. was schade ist. Nunja... da es ein einfach Informatikkurs ist, haben wir da nicht alles von Delphi erfahren.. und uns ist jetzt erst bewusst das das doch nicht so einfach ist wie wir dachten. Aber wir lernen ja auch daraus. Aber wir versuchen deine Starthilfe zu nutzen und fortzusetzen. Danke :))))

Catbytes. Ich muss sagen dein Programm ist schon nice & ahnung habt ihr alle. & wir wären überaus glücklich und zu tiefst dankebar wenn du uns ein paar schnipsel geben würdest vll auch mit erklärung damit wir wissen was wir gerade genau schreiben.
Wichtig ist uns jetzt erstmal das öffnen von 2 karten und das vergleichen & umdrehen.

Luckie 17. Mär 2015 00:23

AW: Memory Programm
 
Also wenn es nur um das Prinzip geht, dann sind Schaltflächen mit Zahlen am einfachsten. Dann fallen die ganzen grafischen Probleme weg. Auf meiner Webseite http://michael-puff.de/Programmierung/Delphi/Programme/ findet sich ein einfaches Memory. Die ganze Logik steckt in einer eigenen Klasse: MemoryCls.pas.

bcvs 17. Mär 2015 07:54

AW: Memory Programm
 
Zitat:

Zitat von KillerMary (Beitrag 1293672)
procedure TFormAL.Image15Click(Sender: TObject);
begin
image15.visible:= false;
end;

Zitat:

Zitat von KillerMary (Beitrag 1293672)
So und dann öffnet sich ein Formular Mit den Karten. 8 Paare und über jeden Ist das "Deckblatt".
Und wenn man das anklickt ist das weg. So aber es muss ja wieder erscheinen wenn das Pärchen nicht passt.
Und das bekommen wir mit unserem Delphi wissen was wir in der schule erlernt haben nicht wirklich hin. ..

Wenn ich das richtig verstehe, habt ihr für jeden Kartenzustand (verdeckt, aufgedeckt) ein eigenes TImage, was dann immer auf visible:=false gesetzt wird, wenn es nicht gebraucht wird.

Ich würde nur ein TImage pro Karte nehmen und da immer das benötigte Bild reinladen. Die Nummer des Bildes könnte man in der Eigenschaft Tag des TImage speichern. Diese Nummer wäre dann gleichzeitig der Dateiname des Bildes.

aufdecken:
Delphi-Quellcode:
Image.Picture.LoadFromFile(IntToStr(Image.Tag)+'.bmp');

verdecken:
Delphi-Quellcode:
Image.Picture.LoadFromFile('deckblatt.bmp');


Erst, wenn ein Pärchen gefunden wurde, werden die beiden Images auf visible:=false gesetzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:53 Uhr.
Seite 2 von 8     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz