Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Schulprojekt -> Memory Spiel ... wie 'aufgedeckt lassen'? (https://www.delphipraxis.net/136385-schulprojekt-memory-spiel-wie-aufgedeckt-lassen.html)

Katho 29. Jun 2009 17:08


Schulprojekt -> Memory Spiel ... wie 'aufgedeckt lassen'?
 
Wir müssen als Abschluss für dieses Schuljahr ein Spiel in Delphi programmieren.
Ich hab Ewigkeiten überlegt und hab mir dann gedacht, ich mach ein Memory.

Da wir das mit den Bildern noch nicht wirklich durchgemacht haben, hab ich beschlossen, das ich es einfach so mache, das man immer 2 Zahlen haben muss, die 17 ergeben (ist das realisierbar??)

Allerdings hänge ich jetzt schon so ziemlich ganz am Anfang.
Kann sein dass ich einfach nur auf der Leitung sitze oder das es wirklich komplizierter ist als gedacht, auf jeden Fall brauche ich Hilfe ;)

Hier mal der bestehende Code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    Panel11: TPanel;
    Panel12: TPanel;
    Panel13: TPanel;
    Panel14: TPanel;
    Panel15: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Panel16: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Karte: Array[1..16] of byte;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
lauf: byte;
begin

Label5.caption := '';
Label6.caption := '';

Button1.Visible := true;
Button2.Visible := true;
Button3.Visible := true;
Button4.Visible := true;
Button5.Visible := true;
Button6.Visible := true;
Button7.Visible := true;
Button8.Visible := true;
Button9.Visible := true;
Button10.Visible := true;
Button11.Visible := true;
Button12.Visible := true;
Button13.Visible := true;
Button14.Visible := true;
Button15.Visible := true;
Button16.Visible := true;

lauf := 1;

repeat
  begin
  randomize;
  karte[lauf] := (random(15)+1);

  inc(lauf);
  end;
until lauf = 17;


end;

end.
bei dem letzen 'repeat' müsste ich dann eben noch überprüfen, ob es diese zahl bereits gibt.
Und genau das bekomm ich nicht hin. Geht das nur mit einer if-schleife -> if-Abfrage? aber das ist ja dann extrem kompliziert. gibt es da etwas einfacheres?

himitsu 29. Jun 2009 17:16

Re: Schulprojekt -> Memory Spiel
 
Mit Multimedia hat das erstmal nix zu tun. (wird aber bestimmt gleich von einem Mod verschoben werden)
[edit] hast Recht, Spiele sind da ja mit drin ... hab grad nochmal nachgeguckt :oops: [/edit]

Und dann die wichtigste Frage: wo hängst du denn?


PS: wenn die zusammengegörigen Zahlenpärchen immer 17 sein müssen, dann solltest du deine Zufallsverteilung besser so lösen, daß es auch immer je 2 Zahlenpaare gibt, welche auch 17 ergeben.

So wie es jetzt ist, kann es zufällig so sein, daß es ein 2 Pärchen gibt, wo dieses zutrifft, aber dieses wird mit sehr großer wahrscheinlichkeit nicht auf alle 8 Paare (16 Zahlen) zutreffen.

[add]
Zitat:

bei dem letzen 'repeat' müsste ich dann eben noch überprüfen, ob es diese zahl bereits gibt.
Und genau das bekomm ich nicht hin. Geht das nur mit einer if-schleife? aber das ist ja dann extrem kompliziert. gibt es da etwas einfacheres?
ja also entweder du gehst die Zahlen von 1 bis 16 durch
und wählst per Random eine Karte aus,
da kannst du direkt prüfen, ob diese Karte schon belegt/zugewiesen ist, indem du voeher alle Karten mit einem bestimmten Wert (z.B. 0) füllst ... wenn Karke mit 0 gefüllt ist, dann ihr den Wert (Variable Lauf) zuweisen, ansonsten mit Random eine andere KArte auswählen und erneut prüfen

oder du mußt in der Schleife eine weitere Schleife einfüge, worin du in allen vorherrigen Karten (1 to Lauf - 1) nachschaust, ob es diese Zahl schon gibt.

Katho 29. Jun 2009 17:19

Re: Schulprojekt -> Memory Spiel
 
hab nicht sicher gewusst, wo es hinsoll, aber immerhin ist es ja ein Spiel ;)

naja, eben bei der überprüfung, ob es diese zahl bereits gibt ;)
weil wenn er jede zahl nur einmal benutzt, dann gibt es pärchen ;)

DeddyH 29. Jun 2009 17:20

Re: Schulprojekt -> Memory Spiel
 
Zitat:

Zitat von Katho
Geht das nur mit einer if-schleife?

If-Schleife (SCNR^^)

P.S.: Willkommen in der DP :dp:

himitsu 29. Jun 2009 17:23

Re: Schulprojekt -> Memory Spiel
 
hatte oben grad noch was Nacheditiert, als ich dann deine Frage endlich sah :angel:

Katho 29. Jun 2009 17:25

Re: Schulprojekt -> Memory Spiel
 
dann halt If-Abfragen xD


Ja, genau :)
ich versuchs gleich :)
Dankeschön =)

(wsl werd ich in 10 minuten wieder ein problem haben ;) aber mal sehen)


edit:
(danke fürs verschieben ;))
ähm, ja, ich habs gewusst das ich nochmal was fragen muss xD
bin jetzt soweit:

Delphi-Quellcode:
...
procedure TForm1.FormCreate(Sender: TObject);
var
lauf: byte;
zufall: byte;
begin

Label5.caption := '';
Label6.caption := '';

Button1.Visible := true;
[...]
Button16.Visible := true;

karte[1] := 0;
karte[2] := 0;
karte[3] := 0;
karte[4] := 0;
karte[5] := 0;
karte[6] := 0;
karte[7] := 0;
karte[8] := 0;
karte[9] := 0;
karte[10] := 0;
karte[11] := 0;
karte[12] := 0;
karte[13] := 0;
karte[14] := 0;
karte[15] := 0;
karte[16] := 0;

for lauf := 1 to 16 do
  begin
  randomize;
  zufall := random(15)+1;
  if karte[zufall] = 0 then
    karte[zufall] := lauf
    else
      begin
      randomize;
      zufall := (random(15)+1);
      karte[zufall] := lauf;
      end;
  end;

panel1.caption := inttostr(karte[1]);
[...]
panel16.caption := inttostr(karte[16]);


end;
aber ich weis hier ja wieder nicht, wieoft er jetzt prüfen muss.
weil er kann ja beim 2. mal random wieder eine karte erwischen die bereits belegt ist (und dann halt wieder und wieder ;))

außerdem hab ich es gerade durchlaufen lassen...und irgendwie schreibt er immer nur in ein zufälliges Panel die Zahl 16 rein, sonst ist überall 0...


(edit: dumme fehler^^)

DP-Maintenance 29. Jun 2009 17:30

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Multimedia" nach "Programmieren allgemein" verschoben.
Passt besser hier

fui-tak 29. Jun 2009 18:00

Re: Schulprojekt -> Memory Spiel ...neues Problem^^
 
Ich würde die Zufallszahl so oft neu generieren, bis sie passt, also while-Schleife:

Delphi-Quellcode:
randomize; //randomize nur einmal, sonst kommt immer das gleiche raus, glaub ich
repeat
  begin
    while karte[zufall] > 0 do
       zufall := (random(15)+1);

    if karte[zufall] = 0 then
      karte[zufall] := lauf;



    inc(lauf);
   end;
until lauf = 17;

Katho 29. Jun 2009 18:03

Re: Schulprojekt -> Memory Spiel ...neues Problem^^
 
boah danke.
ich glaube, ich sitze heute echt auf der leitung^^

himitsu 29. Jun 2009 18:20

Re: Schulprojekt -> Memory Spiel
 
zufall sollte aber vorher wenigstens initialisiert werden, denn so wäre es ja beim ersten Aufruf
von while karte[zufall] > 0 do noch undefiniert und könnte sonsteinen Wert enthalten, was nicht so gut wäre, da der Index (zufall) so schnell mal außerhalb des Wertebereiches für das Array liegen könnte.
Delphi-Quellcode:
repeat
  begin
    zufall := random(16) + 1;
    while karte[zufall] > 0 do
       zufall := random(16) + 1;
aber da hier Zufall eh nochmal geprüft wird, ginge auch sowas
Delphi-Quellcode:
zufall := random(16) + 1;
repeat
  begin
    while karte[zufall] > 0 do
       zufall := random(16) + 1;
PS: zwischen Repeat und Until ist kein Begin und End nötig

Katho 29. Jun 2009 18:25

Re: Schulprojekt -> Memory Spiel
 
ja, das war schon klar ;)

habs jetzt so drinstehn:


Delphi-Quellcode:
randomize;

for lauf := 1 to 16 do
  begin
  zufall := random(15)+1;
    while karte[zufall] > 0 do
    zufall := random(15)+1;
  karte[zufall] := lauf;
end;
das problem das jetzt da ist, ist das er sich immer aufhängt wenn ich es starten will.
ich muss dann das programm immer zurücksetzen...
weis einer woran das liegen könnte? es sieht irgendwie so aus als ob er in ner endlosschleife wäre, aber das kann doch eigtl nicht sein, oder?

fui-tak 29. Jun 2009 18:38

Re: Schulprojekt -> Memory Spiel
 
Das Problem ist jetzt wohl, das er bei Random nicht so schnell an jede der 16 Zahlen rankommt. Und so entsteht eine sehr lange Schleife

Katho 29. Jun 2009 18:42

Re: Schulprojekt -> Memory Spiel
 
hab es gerade nochmal probiert, jetzt funktioniert es *lol*
es lag einfach daran, weil ich vorhin random(15)+1 hatte^^ das sind ja nur 15 zahlen, er brauchte aber 16 verschiedene xD

jaja...es sind immer die banalsten fehler^^



edit:

bis jetzt funktioniert schon alles
nur hab ich noch eine eher allgemeinere Frage:

Gibt es eine Anweisung, mit der man einen Button in den Hintergrund verschieben kann?
(bzw. ein Panel in den Vordergrund ;))

DeddyH 29. Jun 2009 20:00

Re: Schulprojekt -> Memory Spiel ... Button in Hintergrun
 
Schau mal in der Hilfe nach BringToFront bzw. SendToBack (oder ggf. einfach Visible umstellen).

Katho 29. Jun 2009 20:15

Re: Schulprojekt -> Memory Spiel ... Button in Hintergrun
 
Danke =) sowas wie sendtoback hab ich gesucht =) weil google hat mit 'in den hintergrund' nicht wirklich was richtiges gefunden xD

(visible hab ich schon anders verplant ;))


edit - fehler gelöst (man sollte halt auch das label dann aktualisieren xD)


Neue frage ;)

das ist jetzt der vollständige Code.
Hat irgendwer einen Vorschlag, wie es ginge, das bei den gefundenen Pärchen die buttons dann im Hintergrund sind?
Den 2. button der aufgedeckt ist kann ich leicht in den Hintergrund machen, aber wie finde ich den 1. heraus? wieder alle durchgehen?

Delphi-Quellcode:
var
  Form1: TForm1;
  Karte: Array[1..16] of byte;
  versuche, richtig: integer;
  buttonklick, zahl1, zahl2, summe: byte;

implementation

{$R *.DFM}


procedure TForm1.FormCreate(Sender: TObject);
var
lauf: byte;
zufall: byte;
begin

Label5.caption := '';
Label6.caption := '';
versuche := 0;
richtig := 0;
buttonklick := 0;

Button1.Visible := true;
Button2.Visible := true;
Button3.Visible := true;
Button4.Visible := true;
Button5.Visible := true;
Button6.Visible := true;
Button7.Visible := true;
Button8.Visible := true;
Button9.Visible := true;
Button10.Visible := true;
Button11.Visible := true;
Button12.Visible := true;
Button13.Visible := true;
Button14.Visible := true;
Button15.Visible := true;
Button16.Visible := true;

karte[1] := 0;
karte[2] := 0;
karte[3] := 0;
karte[4] := 0;
karte[5] := 0;
karte[6] := 0;
karte[7] := 0;
karte[8] := 0;
karte[9] := 0;
karte[10] := 0;
karte[11] := 0;
karte[12] := 0;
karte[13] := 0;
karte[14] := 0;
karte[15] := 0;
karte[16] := 0;

randomize;

for lauf := 1 to 16 do
  begin
  zufall := random(16)+1;
    while karte[zufall] > 0 do
    zufall := random(16)+1;
  karte[zufall] := lauf;
end;

panel1.caption := inttostr(karte[1]);
panel2.caption := inttostr(karte[2]);
panel3.caption := inttostr(karte[3]);
panel4.caption := inttostr(karte[4]);
panel5.caption := inttostr(karte[5]);
panel6.caption := inttostr(karte[6]);
panel7.caption := inttostr(karte[7]);
panel8.caption := inttostr(karte[8]);
panel9.caption := inttostr(karte[9]);
panel10.caption := inttostr(karte[10]);
panel11.caption := inttostr(karte[11]);
panel12.caption := inttostr(karte[12]);
panel13.caption := inttostr(karte[13]);
panel14.caption := inttostr(karte[14]);
panel15.caption := inttostr(karte[15]);
panel16.caption := inttostr(karte[16]);


end;

procedure TForm1.Button17Click(Sender: TObject);
begin

Form1.FormCreate(Sender);

end;



procedure TForm1.Button18Click(Sender: TObject);
begin

Button1.Visible := true;
Button2.Visible := true;
Button3.Visible := true;
Button4.Visible := true;
Button5.Visible := true;
Button6.Visible := true;
Button7.Visible := true;
Button8.Visible := true;
Button9.Visible := true;
Button10.Visible := true;
Button11.Visible := true;
Button12.Visible := true;
Button13.Visible := true;
Button14.Visible := true;
Button15.Visible := true;
Button16.Visible := true;

inc(versuche);
Label5.Caption := inttostr(versuche);

buttonklick := 0;
label9.visible := false;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label9.visible := false;
if buttonklick = 0 then
  begin
  button1.visible := false;
  inc(buttonklick);
  zahl1 := karte[1];
  end
  else
    if buttonklick = 1 then
      begin
      button1.visible := false;
      inc(buttonklick);
      zahl2 := karte[1];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
        label9.visible := true;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
label9.visible := false;
if buttonklick = 0 then
  begin
  button2.visible := false;
  inc(buttonklick);
  zahl1 := karte[2];
  end
  else
    if buttonklick = 1 then
      begin
      button2.visible := false;
      inc(buttonklick);
      zahl2 := karte[2];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
label9.visible := false;
if buttonklick = 0 then
  begin
  button3.visible := false;
  inc(buttonklick);
  zahl1 := karte[3];
  end
  else
    if buttonklick = 1 then
      begin
      button3.visible := false;
      inc(buttonklick);
      zahl2 := karte[3];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button4.visible := false;
  inc(buttonklick);
  zahl1 := karte[4];
  end
  else
    if buttonklick = 1 then
      begin
      button4.visible := false;
      inc(buttonklick);
      zahl2 := karte[4];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin    
label9.visible := false;
if buttonklick = 0 then
  begin
  button5.visible := false;
  inc(buttonklick);
  zahl1 := karte[5];
  end
  else
    if buttonklick = 1 then
      begin
      button5.visible := false;
      inc(buttonklick);
      zahl2 := karte[5];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);  
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button6.visible := false;
  inc(buttonklick);
  zahl1 := karte[6];
  end
  else
    if buttonklick = 1 then
      begin
      button6.visible := false;
      inc(buttonklick);
      zahl2 := karte[6];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);  
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button7.visible := false;
  inc(buttonklick);
  zahl1 := karte[7];
  end
  else
    if buttonklick = 1 then
      begin
      button7.visible := false;
      inc(buttonklick);
      zahl2 := karte[7];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);  
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin    
label9.visible := false;
if buttonklick = 0 then
  begin
  button8.visible := false;
  inc(buttonklick);
  zahl1 := karte[8];
  end
  else
    if buttonklick = 1 then
      begin
      button8.visible := false;
      inc(buttonklick);
      zahl2 := karte[8];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button9.visible := false;
  inc(buttonklick);
  zahl1 := karte[9];
  end
  else
    if buttonklick = 1 then
      begin
      button9.visible := false;
      inc(buttonklick);
      zahl2 := karte[9];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button10.visible := false;
  inc(buttonklick);
  zahl1 := karte[10];
  end
  else
    if buttonklick = 1 then
      begin
      button10.visible := false;
      inc(buttonklick);
      zahl2 := karte[10];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);  
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button11.visible := false;
  inc(buttonklick);
  zahl1 := karte[11];
  end
  else
    if buttonklick = 1 then
      begin
      button11.visible := false;
      inc(buttonklick);
      zahl2 := karte[11];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button12.visible := false;
  inc(buttonklick);
  zahl1 := karte[12];
  end
  else
    if buttonklick = 1 then
      begin
      button12.visible := false;
      inc(buttonklick);
      zahl2 := karte[12];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button13.visible := false;
  inc(buttonklick);
  zahl1 := karte[13];
  end
  else
    if buttonklick = 1 then
      begin
      button13.visible := false;
      inc(buttonklick);
      zahl2 := karte[13];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button14.visible := false;
  inc(buttonklick);
  zahl1 := karte[14];
  end
  else
    if buttonklick = 1 then
      begin
      button14.visible := false;
      inc(buttonklick);
      zahl2 := karte[14];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button15.visible := false;
  inc(buttonklick);
  zahl1 := karte[15];
  end
  else
    if buttonklick = 1 then
      begin
      button15.visible := false;
      inc(buttonklick);
      zahl2 := karte[15];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin  
label9.visible := false;
if buttonklick = 0 then
  begin
  button16.visible := false;
  inc(buttonklick);
  zahl1 := karte[16];
  end
  else
    if buttonklick = 1 then
      begin
      button16.visible := false;
      inc(buttonklick);
      zahl2 := karte[16];
      summe := zahl1 + zahl2;
      if summe = 17 then
        inc(richtig);
        label6.caption := inttostr(richtig);
      end
      else
       label9.visible := true;
end;

end.

Luckie 29. Jun 2009 22:41

Re: Schulprojekt -> Memory Spiel ... wie 'aufgedeckt lass
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich würde sagen du packst das ganze falsch an. Ich habe auch mal so ein einfaches Memory-Spiel gemacht. Anzahl der Codezeilen: 286 Zeilen reine Programmlogik. Du bist jetzt schon bei über 500.

Desweiteren hast du da ziemlichen Spaghetticode, nutze die Möglichkeiten der OOP um das ganze etwas zu strukturieren. Es bietet sich hier an eine Klasse für das Spielfeld und eine Klasse für eine Karte zu entwerfen. UndWobei die Klasse für das Spielfeld als Container für die Karten dient und die Formularklasse als Schiedsrichter fungiert.

Ich habe das ganze mal angehangen. Das ganze ist Bestandteil meines Container-Klassen Tutorials: http://delphitutorials.michael-puff.de


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.

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