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 dynamischeVersion 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