AGB  ·  Datenschutz  ·  Impressum  







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

Snake--> HILFE!

Ein Thema von amhvf · begonnen am 15. Mai 2006 · letzter Beitrag vom 15. Mai 2006
Antwort Antwort
amhvf

Registriert seit: 26. Apr 2006
1 Beiträge
 
#1

Snake--> HILFE!

  Alt 15. Mai 2006, 08:42
Also folgendes Problem: Wir (2 Mädels) sollen in Info ein Spiel programmieren und haben uns für snake entschieden, aber das wird jetzt doch schwerer als wir vorher dachten. Wir sind jetzt aber schon mal so weit, dass sich unser Kreis (schlange) bewegt und ein Futterteil (kleiner Kreis) anvisieren kann und bei einer Differenz von Zehn wollen wir nun, dass das Futterteilchen der Schlange folgt, d.h. dass die Schlange länger wird. Wie bringen wir es dazu, dass das Futterteilchen der Schlange folgt???
Aber das war noch nich alles...
Wie können wir schreiben, dass das nächste Futterteilchen an einer zufälligen Stelle wieder auftaucht(randomize)....wir haben bisher noch nicht mit Feldern programmiert und wir bräuchten das ganze auch nur so einfach und verständlich wie möglich!

Wir hoffen auf Unterstützung! Danke schonmal!

Eure 2 Mädels!

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Shape1: TShape;

    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Shape1DragDrop(Sender, Source: TObject; X, Y: Integer);
    
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  x1,x2,y1,y2,i,j:integer;




implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin
image1.Canvas.create;
x1:=20;x2:=50;y1:=20;y2:=50;
image1.canvas.Ellipse(x1,y1,x2,y2);

end;

{begin
image3.Canvas.create;
x1:=20;x2:=50;y1:=20;y2:=50;
image3.canvas.Ellipse(x1,y1,x2,y2);end; }


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
image1.canvas.pen.color:=clwhite;
image1.canvas.Ellipse(x1,y1,x2,y2);
image1.canvas.pen.color:=clfuchsia;
if(x1>=657) then begin x1:=1; x2:=31; end;
if(x1<=0) then begin x1:=627; x2:=657; end;
if(y1>425) then begin y1:=0; y2:=30; end ;
if(y1<0) then begin y1:=395; y2:=425; end;

if key=vk_right then Begin inc(x1);inc(x2); image1.canvas.Ellipse(x1,y1,x2,y2); end;
if key=vk_left then Begin dec(x1);dec(x2);image1.canvas.Ellipse(x1,y1,x2,y2); end;
if key=vk_up then Begin dec(y1);dec(y2); image1.canvas.Ellipse(x1,y1,x2,y2); end;
if key=vk_down then Begin inc(y1);inc(y2);image1.canvas.Ellipse(x1,y1,x2,y2); end;
if (ABS(x1-shape1.left)<=10)and(abs(y1-shape1.top)<=10) then showmessage('getroffen');
if (ABS(x2-shape1.top)<=10)and(abs(y2-shape1.left)<=10) then showmessage('getroffen');
end;

procedure TForm1.Shape1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
Randomize;
random(shape1.left);
random(shape1.top);
end;




end.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Snake--> HILFE!

  Alt 15. Mai 2006, 09:34
Hallo!

DP <> Hausaufgabenerledigung...!

Um Euch auf den "richtigen" Weg zu bringen...

Delphi-Quellcode:
type
   TSnakeElem = record
                    Bild : TImage;
                    Richtung : TRichtung; (links,rechts,hoch,runter);
                    Position : TPoint;
                  end;

   TFutter = record
                    Bild : TImage;
                    Position : TPoint;
                  end;

var
  Snake_Element : Array of TSnakeElem;
  WayPoints : Array of TPoint;
  Futter : Array of TFutter;

Procedure MoveSnake;
var
  i : integer;
begin
  for i:=0 to high(Snake_Element) do
    begin
      Case Snake_Element.Richtung do
        links : ...
        rechts : ...
        
      end; // of case

      // Testen ob Snake_Element . Position in WayPoints...
      // Neue Richtung vorgeben.
      // Testen ob letztes Element an letztem Waypoint vorbei.. Waypoint löschen...
    end;
end;
Ach ja.. die Schlange sollte immer laufen, auch wenn keine Taste gedrückt wird...

Frank
  Mit Zitat antworten Zitat
15. Mai 2006, 10:22
Dieses Thema wurde von "sakura" von "Freeware" nach "Sonstige Fragen zu Delphi" verschoben.
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 06: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