AGB  ·  Datenschutz  ·  Impressum  







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

Fehler in meinem Snake-Programm

Ein Thema von Sandy123 · begonnen am 22. Mär 2011 · letzter Beitrag vom 19. Apr 2011
Antwort Antwort
Sandy123

Registriert seit: 22. Mär 2011
12 Beiträge
 
#1

Fehler in meinem Snake-Programm

  Alt 22. Mär 2011, 22:20
hallo jungs, weiß es passt nicht dazu aber ich habe eine frage, und zwar programmiere ich gerade snake und da´stehe ich gerade vor einen problem siehe unten -->

[DELPHI]procedure TSnake.Render();
var
Index : Word;
StartX, StartY : integer;
EndeX, EndeY : integer;
begin
rCanvas.Pen.Color:= clGreen;
rCanvas.Brush.Color:= clGreen;

for Index :=0 to rAnzahlTeile do

und zwar meldet dlephi diesen fehler und ich weiß nicht was ich da falsch mache

[Fehler] Main.pas(76): Inkompatible Typen: 'Integer' und 'Boolean'

Geändert von mkinzler (22. Mär 2011 um 22:36 Uhr) Grund: Beitrag verschoben und Delphi-Tag eingefügt; COLOR-Tag entfernt
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#2

AW: Fehler in meinem Snake-Programm

  Alt 22. Mär 2011, 22:31
Was steht denn in Zeile 76? Und was soll das [COLOR="Red"] sein?
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

AW: Fehler in meinem Snake-Programm

  Alt 22. Mär 2011, 22:34
Hi,

in welcher Zeile tritt der Fehler denn auf?
Welchen Typ hat rAnzahlTeile?
Was ist rTeile?

Ah, ich sehe schon was:
StartX ist ein Integer
rTeile[ Index ].X = 16 hingegen ist ein Vergleich, dessen Ergebnis ein Boolean ist.
Das passt nicht - was willst du denn machen?


LG, Frederic

P.S.
Das Color-Red soll eine Hervorhebung im Forum sein, was aber innerhalb von Delphi-Tags nicht geht (die vorher nicht da waren )
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Fehler in meinem Snake-Programm

  Alt 23. Mär 2011, 08:19
Ist da ein Teil des Ausgangsposts verschwunden? Ihr bezieht Euch auf Code, den ich nicht sehen kann
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 p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Fehler in meinem Snake-Programm

  Alt 23. Mär 2011, 10:15
Ist da ein Teil des Ausgangsposts verschwunden? Ihr bezieht Euch auf Code, den ich nicht sehen kann
Da hat Snake einfach zu gut funktioniert

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

AW: Fehler in meinem Snake-Programm

  Alt 23. Mär 2011, 10:37
Hi,

Ist da ein Teil des Ausgangsposts verschwunden? Ihr bezieht Euch auf Code, den ich nicht sehen kann
in der Tat, da stand mal mehr


LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Sandy123

Registriert seit: 22. Mär 2011
12 Beiträge
 
#7

AW: Fehler in meinem Snake-Programm

  Alt 23. Mär 2011, 21:43
passt auf jungs
hier der gesamte quelltext

unit Main;

interface

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

type
TSnake = class(TObject)
private
//private Dekleration
rTeile: array[0..40*30-1] OF TPoint;
rAnzahlTeile : Word;
rCanvas : TCanvas;

function LiesTeil( Index : Word): TPoint;

public
//Öffentliche Dekleration

property Teile [ Index : Word ] : TPoint read LiesTeil;
property AnzahlTeile : Word read rAnzahlTeile;
property Canvas : TCanvas read rCanvas write rCanvas;

procedure Init();
procedure Render();
end;

TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
Schlange : TSnake;
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ --- Snake Bereich --- }
function TSnake.LiesTeil( Index : Word) : TPoint;
begin
result:= rTeile [ Index ];
end;

procedure TSnake.Init();
begin
rAnzahlTeile :=2;

rTeile[0] := Point ( 2, 0 );
rTeile[0] := Point ( 1, 0 );
rTeile[0] := Point ( 0, 0 );
end;

procedure TSnake.Render();
var
Index : Word;
StartX, StartY : integer;
EndeX, EndeY : integer;
begin
rCanvas.Pen.Color:= clGreen;
rCanvas.Brush.Color:= clGreen;

for Index :=0 to rAnzahlTeile do
begin

StartX := rTeile[Index].X = 16;
EndeX := rTeile[ Index ].X = 16 + 16 ;
StartY := rTeile[ Index ].Y = 16 ;
EndeY := rTeile[ Index ].Y = 16 + 16 ;

rCanvas.Ellipse( StartX, StartY, EndeX, EndeY);
end;
end;


{ --- Fenster Bereich --- }


procedure TForm1.FormCreate(Sender: TObject);
begin
Schlange:= TSnake.Create;
Schlange.Canvas := Self.Canvas;
Schlange.Init();

Self.DoubleBuffered := true;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Schlange.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Schlange.Render();
end;

end.


komm einfach nicht weiter
viel glück
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.316 Beiträge
 
Delphi 12 Athens
 
#8

AW: Fehler in meinem Snake-Programm

  Alt 23. Mär 2011, 22:49
[Delphi]-Tags könnten nicht schaden (kann man übrigens editieren)

Zitat:
StartX := rTeile[Index].X = 16;
Der Vergleich rTeile[Index].X = 16 erzeugt als Ergebnis einen Bollean
und du versuchst dann diesen Bollean an einen Integer zu übergeben, was natürlich nicht geht.
> also, das "=" (der Vergleich) darin ist Schuld


Achtung: In deiner Init-Methode hast du vergessen die Array-Indize hochzuzählen.


PS:
Zitat:
for Index :=0 to rAnzahlTeile do
rAnzahlTeile ist wohl etwas falsch benannt,
denn so wie du es nutzt entspricht es eher einem "letzter/höchster Index"

Vorschlag:
Entweder umbenennen und den Namen der Nutzung anpassen

oder die Nutzung dem Namen anpassen und dann for Index :=0 to rAnzahlTeile-1 do
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Mär 2011 um 22:53 Uhr)
  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 03:25 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 by Thomas Breitkreuz