|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Timo Sandmann
Datum: Fr, 21.12.2007 02:13:57
In-reply-to:
<000001c840c2$96865c00$0200a8c0@mexpnew>
References:
<000001c840c2$96865c00$0200a8c0@mexpnew>
Hallo,
Am 17.12.2007 um 16:36 schrieb Frank Menzel:
Hallo,
hoffe nun alles beruecksichtigt zu haben.
Den Stack habe ich als Array implementiert und die vorherige
dynamische
Version aber drin gelassen. Via Define ist die Array-Version mit 20
Einträgen aktiv.
Gruß, Frank Menzel
das Verhalten und der Stack sind nun im SVN. Ich hoffe ich habe keine
Bugs mit eingebaut.
Aber noch ein paar Anmerkungen: Wer einen Patch einschickt, sollte
bitte vorher noch mal überprüfen, ob der Inhalt auch sinnvoll ist und
außerdem keine Dinge mehr enthält, die gar nicht mehr gebraucht werden.
Ein display_printf("Bot-Pos %1d %1d",(int16)x_pos,(int16)y_pos); z.B.
ist wirklich sinnlos. Wenn man von der Bot-Position in mm nur eine
Stelle ausgibt, kann damit niemand etwas anfangen.
Wenn man die Dokumentation für Funktion B aus der Doku von Funktion A
mit copy&paste erzeugt, dann bitte auch die Parameter, die B gar nicht
hat, entfernen. Eine Dokumentation "nur damit da etwas steht" hilft
niemandem, wenn sie gar nicht stimmt.
Den Code auch bitte nicht unnötig kompliziert machen, denn er soll von
möglichst vielen verstanden werden. Wenn man einen Zeiger auf einen
Datentyp möchte, einfach den *-Operator verwenden, dazu braucht man
nicht extra mit typedef einen "Pointertypen" anlegen. Der Code wird
sonst sehr schwer lesbar, insbesondere wenn mehrere structs verzeigert
sind...
Funktionen, die nur intern benutzt werden, sollten immer als static
deklariert werden. Erstens wird der Code effizienter und zweitens
umgeht man Namenskonflikte. Funktionen, die auch nach außen sichtbar
sind, sollte als Präfix den Modulnamen oder eine Abkürzung davon
tragen, so wie es sonst auch im Bot-Code ist. Einer Funktion
"is_empty()" sieht man nicht an, worauf sie sich bezieht oder wofür
sie da ist.
Gleiches gilt für Variablen.
Das soll kein Meckern sein, sondern nur die Arbeit vereinfachen. Wenn
man von vornherein die Regeln berücksichtigt, muss niemand extra Zeit
dafür aufwenden, das Ganze nachträglich anzupassen.
Die Checkliste unter http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Patches#erzeugen
fasst das Wichtigste zusammen - bitte einfach noch mal durchlesen.
Vielen Dank.
Falls unklar ist, wie das ein oder andere gemeint ist, einfach mal
nachfragen.
Ich wünsche schon mal frohe Weihnachten,
Timo
|
|
|