Wie rückt ihr euren code ein?
Übersicht

![]() |
OfenrohrBetreff: Wie rückt ihr euren code ein? |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo,
ich wollt mal fragen, ob ihr ein system bein einrücken von code verfolgt? ich z.B. schreibe meinen code wie folgt: zuerst kommt bei mir der header: ; Projektname ; by PetX - Productions ; dateiname.bb als nächstes binde ich alle anderen dateien ein (include). der abstand zum header ist dabei drei freie zeilen. nun kommen die types. wieder drei zeilen frei zu den inludes. zwischen den einzelnen types hab ich 2 leere zeilen. bei größeren projekten wird dieser teil in eine extra datei ausgelagert. jetzt kommen globals. auch drei zeilen zu den types frei. die globals gruppiere ich je nach sinn. außerdem stehen hier die dims. bei größeren projekten wird dieser teil in eine extra datei ausgelagert. nun kommt die mainloop. ich habe hier drei freie zeilen zu den globals. nach jedem while, for, repeat, if und select schreibe ich einen tab. also so: Code: [AUSKLAPPEN] if true = false then befehl_1() for i = 1 to 10 befehl2() next endif zuletzt kommen bei mir die funktionen. diese werden aber sehr oft bei mir gleich in mehrere dateien ausgelagert. wenn nicht, dann haben sie drei freie zeilen zwischen sich und der mainloop. wenn ich teile in dateien auslagere sorge ich dafür, das sie nie größer als ca. 300 zeilen werden. wie teilt ihr euren code ein? mfg ofenrohr |
||
Ofenrohr.net |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, bei mit gibt alles immer ein kleines Durcheinander....
Zuerst kommen alle Variablen, Types, Dims, dann die Hauptschleife, und dann die Funktionen.... Habe aber nicht so ein tolles System mit Abstandzeilen.... ![]() |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ungefähr so: ![]() BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
Ofenrohr |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke für die antworten.
wollte das mal wissen, weil ich vor einiger zeit mal einen code gesehen hab, den ich nicht lesen konnte, weil er nicht eigerückt war... die hölle ![]() |
||
Ofenrohr.net |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am Anfang Const Dim und Globale
Das immer in Paketen die zusammenhängend sind. Beispiel alles was zu TileMap gehört in ein Block. Fast alles setzte ich in Functionen, dann läst sich später das Menue relativ einfach erstellen! beim Coden achte ich nicht auf Einrückungen, wenn es anfängt zu unübersichtlich zu werden dann kopiere ich die Function in den CodeFormer und der erledigt das automatisch! |
||
[BB2D | BB3D | BB+]
|
![]() |
Ofenrohr |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab mir deinen codeformer mal besort...
find den echt gut... mfg ofenrohr |
||
Ofenrohr.net |
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir mal den Source von meinem Game an: Klick mich | ||
Glauben ist Mangel an Wissen! |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich mache es generell verschieden. Was ich jedoch immer mache: Code einrücken, schon beim schreiben. Dadurch kann man kleine Fehler (fehlendes Endif z.B.) sehr schnell finden und das ganze bleibt logisch übersichtlich. Zudem schriebe ich mir kleine Anmerkungen für mich dazu. Am Anfang definiere ich alle globalen und Typen sowie Dims, dabei gehe ich aber eher durcheinander vor, d.h. ich packe die verschiedenen Variablen nach Programmlogischen Aspekten zusamme. So kann es vorkommen dass ich erst ein Typefeld für Planeten definiere, direkt danach ein Dim Feld für den schnellen Zugriff auf die Planeten u.s.w.
Typischer kleiner Code von mir: BlitzBasic: [AUSKLAPPEN] ;Punkteturnierersteller by Christian Geißler |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
NetPad |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also am anfang kommt kurz eine beschreibung des programms(funktion, erstellungsdatum...)
danach kommen alle konstanten mit ev. komentaren zur besseren verständnis. dann natürlich bei schleifen alles blockweise einrücken. hauptsächlich geht es ja darum, den code so zu gestalten, dass alles das zusammengehört auch als gruppe erkennbar ist. wenn du den code nach 2 monaten noch ohne probleme nach einmal durchstöbern wieder verstehst ist es gut. grs NP |
||
LunaticCoder |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also generell rücke ich mit Tabstops ein die meist zw 3 und 5 Leerzeichen lang sind.
Bei Conditions oder Loops sieht das bei mir meist so aus: BlitzBasic: [AUSKLAPPEN]
vor dem end if mache ich also immer eine leerzeile. das schafft etwas übersichtlichkeit und bläst den code nicht so auf wenn man auch die erste zeile leer lässt Was die Nomenklatur von Variablen angeht folge ich soweit machbar der Ungarischen Notation weiche aber BlitzBasic-Bedingt davon ab. prefix sz für einen string, b für boolean, l bzw i für Integers / Longs, t für types, functions bekommen bei mir f verpasst und globale variablen erhalten quasi als pre-prefix ein g. Constanten werden bei miri durchgehend großgeschrieben. da mman sie damit nciht durch groß-/kleinschreibung übersichtlich halten kann (z.B. szEinGanzLangerString) trenne ich sie mit dashes (unterstrichen - also PLAYER_IS_DEAD) |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, also Einrückung ist wohl bei jedem gleich. Deswegen komme ich mal zu dem Sonstigen:
Am Anfang kommt immer ein großer Kommentar, der Include-Dateiname, Anwendungsname und meinen Namen, sowie Versionsnummer und Datum enthält. Alle Variablennamen etc. sind englisch, weil man so jedem seinen Code präsentieren kann und es kürzer ist. Auch bei mir sind Konstanten immer groß. Pointern gebe ich immer noch ein kleines Kürzel, wie z.B. "img_blubber". Dazu bevorzuge ich den alten Schreibstil für Variablen- und Funktionsnamen. Also so: "create_particles" anstatt "CreateParticles". LordChaos PS: Wieso ist bei dem Print-Befehl mit "Maximal mögliche Kombinationen: "+anz_spiele bei Firstdeathmaker die Funktion weiß? ![]() |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
![]() |
Ofenrohr |
![]() Antworten mit Zitat ![]() |
---|---|---|
es freut mich so viele antworten zu hören.
@Bfox: ich glaub zwar nicht, das du deinen code immer so doll kommentierst, aber wenn, dann finde ich es wirklich überflüssig bei einer funktion wie create_gegner ranzuschreiben: ;diese funktion erstellt einen gegner... aber deinen code stil finde ich sonst ok. @firstdeathmaker: deine Sortierung nach programmlogischen Aspekten finde ich gut. Ich persönlich unterteile lieber in gruppen, weil es dann einfacher ist include dateien zu schreiben. @netpad: ich hab mal einen code geschrieben, der 11000 zeilen lang war. für den musste ich mir diesen code stil ausdenken, weil es sonst unmöglich ist da den überblick zu behalten. ![]() @LunaticCode: Die Ungarische Notation finde ich nicht so gut, da sie zu kompliziert ist. was allerdings nicht wichtig ist, weil bb eh nur 3 variablen typen hat (die types habe ich bewusst nicht mitgezählt.) @LordChaos: die pointer kürzel benutze ich meistens auch. es sei denn der variablenname ist offensichtlich. ich bevorzuge ebenfalls den alten schreibstil. mfg ofenrohr |
||
Ofenrohr.net |
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast recht! ![]() Das war mein erstes Spiel, da hab ich zuviel kommentiert. Bei meinem jetztigen Spiel ab ich überflüssiges weggellassen, trotzdem mach ich sicher noch zuviel Kommentare. ![]() |
||
Glauben ist Mangel an Wissen! |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei größeren Projekten benutze ich auch Präfixe um sinnvoll-logische Gruppen zu bilden. Z.B:
global SYS_GFX_X global SYS_GFX_Y global NET_SENDSTREAM global NET_RECEIVESTREAM Wenn die Variablen konstant bleiben (sie werden zwar nur global definiert und nicht mit const) wie z.B. Bildschirmauflösung oder der Sendestream dann schreibe ich sie komplett groß, das Präfix durch einen Unterstrich vom Rest getrennt. Normale globale dagegen schreibe ich am Anfag jeder "Silbe" groß: Game_Spielerpunkte. Wenn sie nur lokal bleiben schreibe ich sie komplett klein: tmp_counter, zs_string. zs steht bei mir immer für zwischenspeicher, d.h. die Variable wird nur in der folgenden Schleife benutzt. tmp steht für temporär und bedeutet für meine notation dass die Variable nur temporär besteht, zum beispiel beim einmaligen Aufrufen aller Player-Typeeinträgen um irgendwas zu ändern würde ich tmp_player.player=each player schreiben. Edit: Mein Informatiklehrer hat mein Bestreben, statt Turbo Pascall BB bei uns im Unterricht zu unterrichten mit dem Argument abgelehnt, dass man bei TP gezwungen wäre sauberer zu programmieren und es bei Basic zu Spaghetticode kommen würde. Ich denke da anders: BB ist zwar freier in der Strukturierung, allerdings kommt man ohne saubere Strukturierung doch auch nicht wirklich weit. Naja, jetzt durften wir mit TP unter Dos Vierecke malen... langweilig und kompliziert. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Ofenrohr |
![]() Antworten mit Zitat ![]() |
---|---|---|
etwas, das ich auch bei meinem großen projekt gemacht hab ist folgendes: ich habe einfach die grupen in types getan. dies hat mir einiges leichter gemacht. das beste beispiel sind koordinaten. dann ist es fast wie bei deinen präfixen z.B.:
Code: [AUSKLAPPEN] Type T2d_koor Field x%,y% end type global pos.T2d_koor = new T2d_koor pos\x = 100 pos\y = 101 auf diese weise habe ich eine menge schreibkram gespart. außer bei präfixen schreibe ich grundsätzlich klein. ich kennzeichne zwischenspeicher meist mit ablage_ |
||
Ofenrohr.net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group