![]() |
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.... |
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.
|
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:
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.
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; 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 |
Re: Kleines Tennis eure Meinung zu einem Anfänger
Cool :thumb:
|
Re: Kleines Tennis eure Meinung zu einem Anfänger
Zitat:
welchen Zweck sie hat. Ich würde evt noch ein i voranstellen. -> iTolleranz dann weiß das es sich um einen Integer handelt. |
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 |
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. |
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
|
Re: Kleines Tennis eure Meinung zu einem Anfänger
Wie schon gesagt, wirklich gut für den Anfang :thumb: !
Noch ein paar Sachen:
Okay, einmal durch den SourceFormatter, weiter gehts:
Delphi-Quellcode:
solltest du in den private-Teil deines Formulars verschieben:
i,f,level, level_i :integer;
Delphi-Quellcode:
Brauchst du das wirklich :mrgreen: ?
[...]
procedure Timer2Timer(Sender: TObject); private i,f,level, level_i :integer; public [...]
Delphi-Quellcode:
Anscheinend nicht, du benutzt es ja gar nicht :wink: .
function umdrehen(e: integer): integer;
begin result := e * (-1); end;
Delphi-Quellcode:
Performanter:
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;
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:
funktioniert ja eh nicht.
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
[...]
Delphi-Quellcode:
Es soll nach zwei Treffern das nächste Level kommen, oder? Speicher das ganze in eine Variable, das Level ist dann die Hälfte:
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;
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:
Boolean-Variablen lieber so testen:
and (war_da = true) then
Delphi-Quellcode:
and war_da then
Delphi-Quellcode:
Dazu sage ich mal nix :zwinker: .
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;
Delphi-Quellcode:
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:
f := random(90) - 25;
Delphi-Quellcode:
Ist jetzt vielleicht etwas viel Kritik, aber das Programm an sich ist ja gut und du sollst ja was lernen :wink: .
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; PS: Die SourceFormatter Optionen standen auf Default, normalerweise kommt bei mir ein Zeilenumbruch zwischen then und begin. |
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 10:30 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