AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Pac-Man Hilfe

Ein Thema von Zwinge112 · begonnen am 10. Apr 2015 · letzter Beitrag vom 23. Apr 2015
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

AW: Pac-Man Hilfe

  Alt 12. Apr 2015, 12:55
Es gibt tonnenweise bessere Alternativen als das im Projekt von TE:
Delphi-Quellcode:
var
  StringGridErsatz: array[0..23, 0..23] of String;

procedure FillStringGrid;
var
  sl: TStringList;
  x, y: Integer;
begin
  sl := TStringList.Create;
  try
    //Nur ein Beispiel. Alternativ als Textdatei laden
    sl.Add('111111111111111111111111');
    sl.Add('100000000001000000000001');
    sl.Add('101110111001001111011101');
    sl.Add('101110111000001111011101');
    sl.Add('100000000000000000000001');
    sl.Add('101110110111111001011101');
    sl.Add('100000110001000001000001');
    sl.Add('111110111101001111011111');
    sl.Add('000010110000000001010000');
    sl.Add('000010110111011101010000');
    sl.Add('111110110100000101011111');
    sl.Add('000000000100000100000000');
    sl.Add('111110100111111101011111');
    sl.Add('000010100000000001010000');
    sl.Add('000010100111110001010000');
    sl.Add('111110000001000000011111');
    sl.Add('100000111001001111000001');
    sl.Add('100110000000000000011101');
    sl.Add('100010100111110011010001');
    sl.Add('111010100001000011010111');
    sl.Add('100000100001000011000001');
    sl.Add('101111111101011111111101');
    sl.Add('100000000000000000000001');
    sl.Add('111111111111111111111111');

    for y := 0 to 23 do
      for x := 0 to 23 do
        StringGridErsatz[x, y] := Copy(sl[y], x + 1, 1);
  finally
    sl.Free;
  end;
end;

procedure FeldMauer(Canvas: TCanvas; x, y: Integer);
const
  w = 21;
begin
  Canvas.Brush.Color := clMaroon;
  Canvas.Pen.Color := clMaroon;
  Canvas.Rectangle(x * w, y * w, x * w + w, y * w + w);
end;

procedure FeldLeer(Canvas: TCanvas; x, y: Integer);
const
  w = 21;
begin
  Canvas.Brush.Color := clWhite;
  Canvas.Pen.Color := clWhite;
  Canvas.Rectangle(x * w, y * w, x * w + w, y * w + w);
end;

procedure FeldSetzen(Canvas: TCanvas; x, y: Integer);
const
  w = 21;
begin
  if StringGridErsatz[x, y] = '0then
    FeldLeer(Canvas, x, y)
  else FeldMauer(Canvas, x, y);
end;

procedure FeldKorrektur(Canvas: TCanvas);
const
  w = 21;
var
  x, y: Integer;
begin
  for y := 0 to 23 do
    for x := 0 to 23 do
      FeldSetzen(Canvas, x, y);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FillStringGrid;
  FeldKorrektur(Canvas);
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Pac-Man Hilfe

  Alt 12. Apr 2015, 13:08
Und Ihr seid der Meinung, dass das den TE irgendwie weiterbringt?
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
Popov
(Gast)

n/a Beiträge
 
#3

AW: Pac-Man Hilfe

  Alt 12. Apr 2015, 16:19
Damit so ein Packman funktioniert, muss es ein nutzbares Feld geben. Ein Feld aus dem man Infos bekommt wo die Mauer ist, wo der Gang ist, wo die Bonbons liegen. Das hat das Projekt von dem TE nicht. Seine Kollegen haben haben ihm ein Projekt übergeben mit dem man sich in dem Labyrinth bewegen kann, aber wo man nicht wirklich ohne Umrechnung weiß in welcher Spalte und Zeile man sich befindet. Auch ist die Umrechnung nicht so einfach. Ich hab es zwar nicht lange versucht, nur eine halbe Stunden, aber ich konnte den Plan der in in der einen StringGrid 48 Spalten und Zeilen hat, auch 24 Spalten und Zeilen umrechnen. Der Grund ist die ungleichmäßige Verteilung. Mit etwas Mühe findet man da schon die Umrechnung, ich fand sie nicht.

Wie soll also der TE da seine Punkte platzieren? In dem ersten StringGrid geht es nicht, den zweiten müsste man erst aus dem ersten berechnen.

Es geht hier also weniger drum die Punkt in dem Labyrinth zu platzieren, als die Frage wo man das bitte machen soll. Es gibt kein nutzbares Feld dafür.

Ich beneide den TE also nicht. Ob ihm das alles was bringen wird? Ich weiß es nicht. Was würdest du vorschlagen?
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Pac-Man Hilfe

  Alt 12. Apr 2015, 17:28
Popov, ich weiß jetzt weshalb die Kumpels von TE 2 unterschiedliche Grids haben. Pacman und die Guys sind ja doppelt so groß wie das Fressenraster.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:45 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