AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

memory2

Ein Thema von funkuchn · begonnen am 2. Mär 2010 · letzter Beitrag vom 4. Mär 2010
Antwort Antwort
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#1

memory2

  Alt 2. Mär 2010, 13:55
Hey Leute,
ich arbeite ja immer noch an meinem Memory Spiel.
jetzt hab ich die Karten zugedeckt liegen und will die Stringgridzellen mit Zahlen für Pärchen belegen, als 1 für die beiden bmp1 oder so. Wie mach ich das und wie kann ich durch klicken die Felder "aufdecken"?
Hab jetzt nur ne dreiviertel Stunde, helft mir bitte ein wenig...

Danke im voraus, ich versuch mein bisheriges Programm anzuhängen hab aber grad festgestellt, dass der PC das hier net will -.-
Liebe Grüße, die Susi

Quelltext:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Grids, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    StringGrid1: TStringGrid;
    Men1: TMenuItem;
    Start1: TMenuItem;
    Aufgeben1: TMenuItem;
    Neustart1: TMenuItem;
    Beenden1: TMenuItem;
    Hilfe1: TMenuItem;
    Image1: TImage;
    Highscore1: TMenuItem;
    procedure Beenden1Click(Sender: TObject);
    procedure Hilfe1Click(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    KarteVerdeckt:tbitmap;
    KartenArray:array [0..4,0..3] of integer;

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Beenden1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Hilfe1Click(Sender: TObject);
begin
showmessage('REMEMBER YOUR CHILDHOOD');
showmessage('Bei diesem Spiel geht es darum, gleiche Pärchen aufzudecken.');
showmessage('Durch den Klick auf zwei Spielkarten werden sie dir angezeigt.');
showmessage('Hast du ein Pärchen gefunden, werden dir 5 Punkte gutgeschrieben.');
showmessage('Viel Spaß beim Spielen!');
end;



procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
   if KartenArray[aCol, arow]=0 then
   Stringgrid1.Canvas.Draw(rect.left,rect.top,KarteVerdeckt);
end;

procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
    for i:=0 to 2 do
     for j:=0 to 2 do
       KartenArray[i,j]:=0;

    KarteVerdeckt:=tbitmap.create;
    KarteVerdeckt.LoadFromFile(extractfilepath(application.exename)+'clip_image002.bmp');

end;
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#2

Re: memory2

  Alt 2. Mär 2010, 15:10
Delphi-Quellcode:
procedure TForm1.Hilfe1Click(Sender: TObject);
begin
showmessage('REMEMBER YOUR CHILDHOOD');
showmessage('Bei diesem Spiel geht es darum, gleiche Pärchen aufzudecken.');
showmessage('Durch den Klick auf zwei Spielkarten werden sie dir angezeigt.');
showmessage('Hast du ein Pärchen gefunden, werden dir 5 Punkte gutgeschrieben.');
showmessage('Viel Spaß beim Spielen!');
end;
Du meinst wohl eher das hier:
Delphi-Quellcode:
procedure TForm1.Hilfe1Click(Sender: TObject);
begin
showmessage('REMEMBER YOUR CHILDHOOD'+#10+
'Bei diesem Spiel geht es darum, gleiche Pärchen aufzudecken.'+#10+
'Durch den Klick auf zwei Spielkarten werden sie dir angezeigt.'+#10+
'Hast du ein Pärchen gefunden, werden dir 5 Punkte gutgeschrieben.'+#10+
'Viel Spaß beim Spielen!');
end;
Nur so...
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: memory2

  Alt 2. Mär 2010, 15:16
Aber bitte #13#10 und nicht nur #10.

Wir sind hier ja in Windows
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

Re: memory2

  Alt 2. Mär 2010, 15:29
Noch besser sLineBreak. Muss man sich die ASCII-Codes nicht merken und es ist plattformunabhängig
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: memory2

  Alt 2. Mär 2010, 15:35
Zitat von DeddyH:
Noch besser sLineBreak. Muss man sich die ASCII-Codes nicht merken und es ist plattformunabhängig
Was auch besonders wichtig ist, weil Delphi ja auch so plattformunabhängig ist SCNR
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: memory2

  Alt 2. Mär 2010, 15:53
OnSelectCell sollte sein was du suchst.
Du musst natürlich auch für jede Karte bzw Zelle speichern ob diese ein Karte enthält welche schon aufgedeckt wurde.
Wenn die Karte noch nicht aufgedeckt wurde dann zeichnest du das Bitmap der Karte in die Zelle und sonst passiert nichts.

Du solltest dir auch merken welche Karte bereits auf gedeckt wurde das macht das vergleichen einfacher.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#7

Re: memory2

  Alt 2. Mär 2010, 15:58
Zitat von Neutral General:
Zitat von DeddyH:
Noch besser sLineBreak. Muss man sich die ASCII-Codes nicht merken und es ist plattformunabhängig
Was auch besonders wichtig ist, weil Delphi ja auch so plattformunabhängig ist SCNR
AFAIK kennt Lazarus diese Konstante auch, so dass das dann schon wieder interessant wird. Über Kylix will ich mich jetzt nicht auslassen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#8

Re: memory2

  Alt 4. Mär 2010, 13:59
Zitat:
OnSelectCell sollte sein was du suchst.
Du musst natürlich auch für jede Karte bzw Zelle speichern ob diese ein Karte enthält welche schon aufgedeckt wurde.
Wenn die Karte noch nicht aufgedeckt wurde dann zeichnest du das Bitmap der Karte in die Zelle und sonst passiert nichts.

Du solltest dir auch merken welche Karte bereits auf gedeckt wurde das macht das vergleichen einfacher.
ja okay, soweit war ich meinen theoretischen Überlegungen auch ^^
jetzt bräuchte ich nur Ansätze, weil ich arbeite an diesem Programm iwie nur 2 mal die woche un grad steh ich mit ??? überm Kopf da
wie belege ich die einzelnen Zellen nun mit Zahlen, denen ich dann ein Pärchen zuweise?
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#9

Re: memory2

  Alt 4. Mär 2010, 22:52
Fang andersrum an.
Erst die Pärchen erzeugen und dann auf Zellen verteilen.

Für die Pärchen brauchst du zu erst Random und Randomize um zufällig Zahlen zu erzeugen.

Ich hab bei meinem Memory (welches aber Andorra für die Grafik verwendet) eine Konstante mit dem Abc verwendet.
Du kannst natürlich auch Zahlen verwenden.
Delphi-Quellcode:
const
ABC: String = 'abcdefghijklmnopqrstuvwxyz';
Jetzt kannst du über die Länge des Strings (mit Length) Zahlen erzeugen die dann auf ein Element des Strings zeigen.

Jetzt muss du eigentlich nur noch deine Ausgewählte Zahl bzw ausgewälten Buchstaben in zwei Zellen verteilen.
Du kannst auch prüfen ob die Zahl schon vorhanden ist oder nicht.
Aber den Rest musst du dir schon selber zusammen suchen
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 Uhr.
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