AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Kleines Tennis eure Meinung zu einem Anfänger
Thema durchsuchen
Ansicht
Themen-Optionen

Kleines Tennis eure Meinung zu einem Anfänger

Ein Thema von M4dl355 · begonnen am 23. Feb 2005 · letzter Beitrag vom 24. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
M4dl355
Registriert seit: 6. Nov 2004
Hallo,
Ich würde gerne eure Meinung zu meinem Programm hören, vieleicht auch was gut und schlecht ist....
Angehängte Dateien
Dateityp: zip pong_191.zip (9,2 KB, 164x aufgerufen)
 
Oxmyx
 
#2
  Alt 23. Feb 2005, 17:40
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.
  Mit Zitat antworten Zitat
Masterof

 
Delphi 7 Enterprise
 
#3
  Alt 23. Feb 2005, 17:48
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
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

 
Delphi 2009 Professional
 
#4
  Alt 23. Feb 2005, 17:52
Cool
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

 
Delphi 2009 Professional
 
#5
  Alt 23. Feb 2005, 17:54
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.
  Mit Zitat antworten Zitat
Masterof

 
Delphi 7 Enterprise
 
#6
  Alt 23. Feb 2005, 18:01
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
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

 
Turbo Delphi für Win32
 
#7
  Alt 23. Feb 2005, 18:17
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.
Lars Kiesow
  Mit Zitat antworten Zitat
M4dl355
 
#8
  Alt 23. Feb 2005, 19:39
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
Angehängte Dateien
Dateityp: zip titato_fertig_205.zip (6,3 KB, 27x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#9
  Alt 23. Feb 2005, 20:20
Wie schon gesagt, wirklich gut für den Anfang !

Noch ein paar Sachen:
  • Wenn man sein Paddel nach links oder rechts verschiebt, blickt das Programm gar nichts mehr
  • Was soll der Joker ?
  • 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:
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 ?
Delphi-Quellcode:
function umdrehen(e: integer): integer;
begin
  result := e * (-1);
end;
Anscheinend nicht, du benutzt es ja gar nicht .
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;
 and (war_da = true) then Boolean-Variablen lieber so testen:
 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 .

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 .

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

 
Delphi 6 Personal
 
#10
  Alt 23. Feb 2005, 20:28
hi,
also für den Anfang wirklich nicht schlecht
(bis auf den bereits angesprochenen Programmierstil )

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

cu,
stefan2005
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:09 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