AGB  ·  Datenschutz  ·  Impressum  







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

Memoryspielproblem

Ein Thema von funkuchn · begonnen am 23. Mär 2010 · letzter Beitrag vom 29. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
funkuchn

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

Memoryspielproblem

  Alt 23. Mär 2010, 13:00
So Leute,
ich nerv euch mal wieder mit meinem Memoryspiel
ich komme einfach nicht weiter weil ich nicht weiß, wie ich es umsetzen soll, 2 Karten aufdecken zu können und sowieso die Felder zufällig mit 10 Pärchen zu belgene
hier mal mein bisheriger Code, der so auch nicht ganz richtig ist
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Men1: TMenuItem;
    Start1: TMenuItem;
    Aufgeben1: TMenuItem;
    Neustart1: TMenuItem;
    Beenden1: TMenuItem;
    Hilfe1: TMenuItem;
    Image1: TImage;
    DrawGrid1: TDrawGrid;
    procedure Beenden1Click(Sender: TObject);
    procedure Hilfe1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);


  private
    { Private-Deklarationen }
    KarteVerdeckt:tbitmap;
    KarteAufgedeckt:tbitmap;
    KartenArray:array [0..4,0..3] of integer;

  public
    { Public-Deklarationen }
 end;

var
  Form1: TForm1;
  Zufallszahl:integer;
  Bitmap:TBitmap;

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.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
   if KartenArray[aCol, arow]=0 then
   Drawgrid1.Canvas.Draw(rect.left,rect.top,KarteVerdeckt);
    Bitmap := TBitmap.Create;
    Bitmap.Width := 100;
    Bitmap.Height := 100;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin

    for i:=0 to 4 do
     for j:=0 to 4 do
       KartenArray[i,j]:=0;

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


end;

procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
var i,j:integer;
rect:Trect;
begin
   for i:=0 to 4 DO
    for j:=0 TO 4 Do
    Kartenarray[i,j]:=1;
    rect := DrawGrid1.CellRect(ACol, ARow);

    KarteAufgedeckt:=tbitmap.create;
    KarteAufgedeckt.LoadFromFile(extractfilepath(application.exename)+'clip_image010.bmp');

    if KartenArray[aCol, arow]=1 then
     Drawgrid1.Canvas.Draw(rect.left,rect.top,KarteAufgedeckt);
     Sleep(2000);
     DrawGrid1.Canvas.Draw(rect.left, rect.top, KarteVerdeckt);
   end;

procedure Zufallsbelegung(Sender:TObject);
begin
 Zufallszahl:=random(10)+1;


end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Memoryspielproblem

  Alt 23. Mär 2010, 13:13
Guck mal hier: http://www.michael-puff.de/Developer...-Klassen/HTML/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
funkuchn

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

Re: Memoryspielproblem

  Alt 23. Mär 2010, 13:16
hmm, das hab ich mir ja auch schon total oft durchgelesen und steige nicht dahinter
ich bin jetzt wirklich n Anfänger und wir haben Jahre lang nicht programmiert weil wir ewig bei Datenbanken gehangen haben und sollen jetzt gleich son Projekt mache, ich sitz da schon übern Monat und bin verzweifelt weil Freitag Abgabe
  Mit Zitat antworten Zitat
funkuchn

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

Re: Memoryspielproblem

  Alt 23. Mär 2010, 13:30
ich brauch wirklich Hilfe, ich kann mir das nicht alles ausden Fingern saugen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Memoryspielproblem

  Alt 23. Mär 2010, 13:45
Ich an Deiner Stelle würde mir eine Klasse TKarte deklarieren, die zumindest über einen Index verfügt. Von dieser Klasse würde ich mir dann die nötige Anzahl an Instanzen erstellen, nach jeder 2. den Index erhöhen (zur Paarbildung) und die Instanzen in einer TObjectList ablegen. Mischen könntest Du dann beispielsweise, indem Du mittels Exchange zufällig ausgewählte Elemente der Liste austauschst. Und dann musst Du diese Liste nur noch darstellen.
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
 
#6

Re: Memoryspielproblem

  Alt 23. Mär 2010, 15:26
Ihr werft immer so schön mit euren Fachbegriffen um euch
  Mit Zitat antworten Zitat
ryLIX

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

Re: Memoryspielproblem

  Alt 23. Mär 2010, 19:00
Zitat von funkuchn:
Ihr werft immer so schön mit euren Fachbegriffen um euch
Hmm könnte daran liegen das du hier in einem "Fachforum" bist
Welche "Fachbegriffe" verstehst du denn nicht?

Wie wäre es wenn du zumindestens einsatz zeigts und auch nciht immer einen Thread aufmachst?

Dieser Code:
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;
Wurde schon in einem vorhergegangenen Thread bemängelt und du änderst ihn einfach nicht...

http://www.delphipraxis.net/internal...t.php?t=174438
In dem Thread habe ich dir auch genug Hinweise gegeben die Pärchengeneration zu lösen und auch deine anderen Probleme.
Wir sind kein Hausaufgabenforum.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Memoryspielproblem

  Alt 26. Mär 2010, 09:21
Eigentlich fangen alle Anfänger so ein Projekt verkehrt herum an.
Sie erstellen sich zuerst eine Oberfläche und versuchen dann die Logik der Anwendung irgendwie reinzufummeln.

Zuerst sollte man sich um die Anwendungskern kümmern und zuletzt um die Oberfläche und natürlich beides trennen.

Welche Daten benötige ich um jeden Zustand des Spiels darzustellen?
(z.B. welche Objekte sind beteiligt und welchen Zustand können diese haben)
Karten
- können auf- oder zugedeckt sein
- haben ein Bild das bei jeweils 2 Karten gleich ist

Spieler
- Anzahl der bisher aufgedeckten Paare

Welche Methoden benötige ich um den Zustand des Spiels zu ändern oder abzufragen.
- Starten mit einem Spieler
- Karte aufdecken
- Abfrage ob schon 2 Karten aufgedeckt sind
- Abfrage ob Spielende
- Wechsel zum nächsten Spieler
...

Ich hab mir diese Arbeit mal gemacht und auch eine simple Oberfläche für einen Spieler und 10 Karten geschrieben.
Angehängte Dateien
Dateityp: zip memory_537.zip (6,0 KB, 24x aufgerufen)
  Mit Zitat antworten Zitat
funkuchn

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

Re: Memoryspielproblem

  Alt 27. Mär 2010, 13:17
funzt nicht?
  Mit Zitat antworten Zitat
ryLIX

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

Re: Memoryspielproblem

  Alt 27. Mär 2010, 13:48


Das Problem ist wahrscheinlich 90cm vom Monitor entfernt.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:56 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