Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi memoryspiel (problem beim mischen) (https://www.delphipraxis.net/106289-memoryspiel-problem-beim-mischen.html)

Genei 8. Jan 2008 16:13


memoryspiel (problem beim mischen)
 
hi, bekomme immer eine unerwartete fehlermeldung wenn ich versuche die karten vorher mischen zu lassen. Dann heißt es auf einmal, wenn ich eine karte "umdrehen" will: "Unbekannte bilddateierweiterung (.)" (Zeile 145)
kann mir da jemand weiter helfen?

*edit: hab den quelltext mal auf 3 paare beschränkt für eine bessere übersicht. bekomme aber immer noch den gleichen fehler, bloß in einer anderen zeile (zeile 88 ).*

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    karte1: TImage;
    karte2: TImage;
    karte3: TImage;
    karte4: TImage;
    karte5: TImage;
    karte6: TImage;
    procedure FormCreate(Sender: TObject);
    procedure kartenClick(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  spieler: array [1..3] of string; // Kartenmotive
  platz: array [1..6] of integer; // Position auf dem Memoryfeld
  spieler1, spieler2: integer;
  deckblatt1, deckblatt2: string;
  zweitekarte: boolean = true;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var k, zufall, anzahl: integer;
    pfad: string;
    //anzahl: array[1..6] of integer;
    nummer: array[1..6] of integer;

begin
 randomize;
 anzahl:= 6;

while anzahl > 0 do
 begin
  zufall := random(Anzahl)+1;
  Nummer[Anzahl] := Platz[zufall];
 for k := zufall to Anzahl-1 do
  begin
   Platz[k] := Platz[k+1];
  end;
 Anzahl := Anzahl - 1;
end;

 karte1.Picture.loadfromfile('images\hansawappen.jpg');
 karte2.Picture.loadfromfile('images\hansawappen.jpg');
 karte3.Picture.loadfromfile('images\hansawappen.jpg');
 karte4.Picture.loadfromfile('images\hansawappen.jpg');
 karte5.Picture.loadfromfile('images\hansawappen.jpg');
 karte6.Picture.loadfromfile('images\hansawappen.jpg');

 pfad := 'images\spieler\';

 spieler[1]:= pfad + 'spieler1.jpg';
 spieler[2]:= pfad + 'spieler2.jpg';
 spieler[3]:= pfad + 'spieler3.jpg';

 {platz[1]:=1;
 platz[2]:=2;
 platz[3]:=3;
 platz[4]:=4;
 platz[5]:=5;
 platz[6]:=6;}

end;

procedure TForm1.kartenClick(Sender: TObject);
var i,k: integer;
begin
 zweitekarte:= not(zweitekarte);
 i:= strtoint(timage(sender).Name[6]);
 timage(sender).Picture.LoadFromFile(spieler[platz[i]]);
 deckblatt1:=timage(sender).name;

if zweitekarte
 then begin
  spieler1:= i;
  deckblatt1:= timage(sender).name;
 end
 else begin
  spieler2:= i;
  deckblatt2:= timage(sender).name;
 end;

if zweitekarte
 then
  if platz[spieler1] <> platz[spieler2]
   then begin
    showmessage('gesehen?');
     for k:= 0 to componentcount-1 do
      if (timage(components[k]).name= deckblatt1) or (timage(components[k]).name= deckblatt2)
       then timage(components[k]).Picture.LoadFromFile('images\hansawappen.jpg');
      end;

end;

end.

DeddyH 8. Jan 2008 16:18

Re: memoryspiel (problem beim mischen)
 
Kann das sein, dass Du mit Saul in eine Klasse gehst? Wenn ja, frag ihn mal, der sollte mittlerweile eine funktionierende Version haben ,)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 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