Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Kleines Tennis eure Meinung zu einem Anfänger (https://www.delphipraxis.net/40953-kleines-tennis-eure-meinung-zu-einem-anfaenger.html)

M4dl355 23. Feb 2005 17:30


Kleines Tennis eure Meinung zu einem Anfänger
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Ich würde gerne eure Meinung zu meinem Programm hören, vieleicht auch was gut und schlecht ist....

Oxmyx 23. Feb 2005 17:40

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Für den Anfang find ich's besser als manch anderes Programm. Aber leg dir mal einen sauberen Programmierstil zu. So ist das ja grausam.

Masterof 23. Feb 2005 17:48

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Hallo!!

FÜr den Anfang ist es gar nicht schlecht, aber du solltest du angewöhen deinen Quelltext besser zu strukturieren.
Du siest sonst bei größeren Programmen nicht mehr durch.
Bsp.:
Delphi-Quellcode:
for tolleranz := - 20 to 70 do
begin
  If (Form1.Button1.Top + tolleranz = Form1.Button2.Top) then
  begin
   result := false;
   exit;
  end
  else
   result:= true;
end;
Ansonsten wird meist für die Zählvariable i verwendet. Variablennamen sollten so gewählt werden, das mann erkennt was sie für eine Bedeutung, außerdem sollten sie nicht zu lang sein.
Hätte ich fast vergessen, die Objekte die du verwendest, wie Button ... sollten eine ansprechende Bezeichnung geben.
Also z.B. btend anstatt von button1.

MfG Master

Jens Schumann 23. Feb 2005 17:52

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Cool :thumb:

Jens Schumann 23. Feb 2005 17:54

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Zitat:

Zitat von Masterof
... Ansonsten wird meist für die Zählvariable i verwendet. ...

Das sehe ich aber nicht so. Auch einer Schleifenvariablen darf man am Namen ansehen
welchen Zweck sie hat. Ich würde evt noch ein i voranstellen. -> iTolleranz dann weiß das es sich um einen Integer handelt.

Masterof 23. Feb 2005 18:01

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Hallo!!

Also wenn man sauber programmiert, dann sind i, j, x, y, z Variablen die meist für Schleifen, oder bestimmte Mathematische Berechnungen verwendet werden.
Man kann natürlich auch andere verwenden. Ich habe es so gelernt und die meisten Quelltexte die ich gelesen, bzw. Editiert habe waren in diesem Aufbau.

Master

Hador 23. Feb 2005 18:17

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Also ich nutze für Zahler auch immer einzeichen-Variablen.

Wieterhin möchte ich dir auch noch mal ans Herz legen, deine rogramme gut zu Strukturieren und passend einzurücken, wie es auch Masterof schon getan hat.

Für den Anfang ist das Programmauf jeden Fall gut.

M4dl355 23. Feb 2005 19:39

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die Tipps, ich als Anfänger weiss sowas jan icht das was ich weiss hab ich mir selber mit der Hilfe und dieser Seite angeeignet. Ich fand, wenn ich das mal so sagen darf, gar nicht so schlecht. Ich rede aber als Anfänger. Ich habe auch noch TicTacToa geprogg. ich hinterlasse es mal als Anhang, dann könnt ihr euch das auch mal ansehen. Das sit besser Strukturiert

Khabarakh 23. Feb 2005 20:20

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
Wie schon gesagt, wirklich gut für den Anfang :thumb: !

Noch ein paar Sachen:
  • Wenn man sein Paddel nach links oder rechts verschiebt, blickt das Programm gar nichts mehr
  • Was soll der Joker :stupid: ?
  • Irgendwann dann noch richtige Physik und OffScreen-Bitmaps
Jetzt zum Code: Wenn du deinen SoucreCode bereitstellst, solltest du schon auf gute Lesbarkeit, sinnvolle Komponenten- und Variablennamen oder dazu dann wenigstens ein Kommentar (z.B: f und i).

Okay, einmal durch den SourceFormatter, weiter gehts:
Delphi-Quellcode:
i,f,level, level_i :integer;
solltest du in den private-Teil deines Formulars verschieben:
Delphi-Quellcode:
[...]
    procedure Timer2Timer(Sender: TObject);
  private
    i,f,level, level_i :integer;
  public
[...]
Brauchst du das wirklich :mrgreen: ?
Delphi-Quellcode:
function umdrehen(e: integer): integer;
begin
  result := e * (-1);
end;
Anscheinend nicht, du benutzt es ja gar nicht :wink: .
Delphi-Quellcode:
function ist_da(e: string): boolean;
var tolleranz: integer;
begin
  for tolleranz := -20 to 70 do begin
    if (Form1.Button1.Top + tolleranz = Form1.Button2.Top) then begin
      result := false;
      exit;
    end else result := true;
  end;
end;
Performanter:
Delphi-Quellcode:
function ist_da: boolean; //wofür den Parameter?
begin
  Result:=(Form1.Button2.Top-Form1.Button1.Top>=-20) and (Form1.Button2.Top-Form1.Button1.Top<=70)
end;
Delphi-Quellcode:
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
[...]
funktioniert ja eh nicht.

Delphi-Quellcode:
  if Button2.Left > Form1.clientwidth - 60 then begin
    level_i := level_i + 1;
    if level_i > 2 then begin
      level_i := 0;
      level := level + 1;
      if Timer1.Interval > 21 then Timer1.Interval := Timer1.Interval - 20;
      Label1.Caption := IntToStr(level);
    end;
Es soll nach zwei Treffern das nächste Level kommen, oder? Speicher das ganze in eine Variable, das Level ist dann die Hälfte:
Delphi-Quellcode:
  if Button2.Left > Form1.clientwidth - 60 then begin
    Inc(level);    //Erhöht die Variable um eins
    if not Odd(level) then begin //level gerade?
      if Timer1.Interval > 21 then Timer1.Interval := Timer1.Interval - 20;
      Label1.Caption := IntToStr(level mod 2);
    end;
Delphi-Quellcode:
 and (war_da = true) then
Boolean-Variablen lieber so testen:
Delphi-Quellcode:
 and war_da then
Delphi-Quellcode:
for tolleranz := -20 to 70 do begin
    if (Button1.Top + tolleranz = Button2.Top) and (war_da = true) then begin
    {Case tolleranz of
     -20..-11: f := -20;
     -10..-1 : f := -17;
       0..10 : f := -14;
      11..20 : f := -9;
      21..35 : f := -5;
      36..40 : f := 0;
      41..50 : f := 10;
      51..60 : f := 15;
      61..70 : f := 20;
     end;  }
    end;
  end;
Dazu sage ich mal nix :zwinker: .

Delphi-Quellcode:
f := random(90) - 25;
Für echten Zufall musst du vor Random noch randomize aufrufen. Da dieses aber nur einmal aufgerufen werden sollte (am besten im OnCreate), du aber FormCreate mehrmals aufrufst, musst du es so machen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  i := -20;
  f := random(90) - 25;
  level := 0; //Nur noch level, s.o.
end;



procedure TForm1.Button3Click(Sender: TObject);
begin
  Button2.Left := 200;
  Button2.Top := 200;
  Timer1.Enabled := true;
  Timer1.interval := 80;
  Label2.caption := '0';
  Timer2.enabled := true;
  i := -20;
  f := random(90) - 25;
  level := 0;
end;
Ist jetzt vielleicht etwas viel Kritik, aber das Programm an sich ist ja gut und du sollst ja was lernen :wink: .

PS: Die SourceFormatter Optionen standen auf Default, normalerweise kommt bei mir ein Zeilenumbruch zwischen then und begin.

stefan2005 23. Feb 2005 20:28

Re: Kleines Tennis eure Meinung zu einem Anfänger
 
hi,
also für den Anfang wirklich nicht schlecht :thumb:
(bis auf den bereits angesprochenen Programmierstil :roll: )

ich weiss gar nicht ob ich sowas als Anfänger früher hingekriegt hätte :gruebel:

cu,
stefan2005


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.
Seite 1 von 2  1 2      

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