View Single Post
TL;DR, uten å ha giddet å studere koden nøye, så ser jeg fort at det er en del nybegynner feil her. Skal gi deg en kjapp innføring i ryddig kode.

Deklarere en macro

Kode

#define ruter 3
Alle macroer i C skal deklareres med bare store bokstaver, dette gjør det enkelt å skille macroer fra andre variabler.

Kode

#define RUTER 3
Samme gjelder også variabler deklarert med «const»-keyword

Kode

const int RUTER = 3;
Sett hakeparentesen på samme kolonne som linjen over

Og avslutt blokken ved å sette hakeparentesen på samme kolonne som du startet den på, på denne måte er det enkelt å se hvor blokken starter og slutter. Man kan enkelt trekke en strek rett ned. Se bilde:



Ikke bland enkel- og flerlinje blokker

Dette gjør det mye vanskeligere å lese koden. F.eks

Kode

if(brett[x][y]==b)
{
        if(x == (ruter-1))
        {
                printf("%c vant\n",b);return 0;                                 
        }
}
else    {goto start;}
Her har du en if-setning med flerlinjet blokk, mens du avslutter med en enkel linje else-blokk, bruk heller flerlinje blokk på else setningen også.

Kode

if(brett[x][y]==b)
{
        if(x == (ruter-1))
        {
                printf("%c vant\n",b);return 0;                                 
        }
}
else
{
        goto start; 
}
Det er greit å bruke enkel-linjer blokker hvis du gjør det hele veien, slik som her:

Kode

if(b=='x'){b='y';}
else{b='x';}
Personlig så liker jeg å sette dem opp slik at det er tydelig hva som er hva, slik:

Kode

if(b=='x') {b='y';}
else       {b='x';}
Men dette er smak å behag.

Ikke ha flere setninger på samme linje

Kode

printf("%c vant\n",b);return 0;
Splitt dem heller over på flere linjer:

Kode

printf("%c vant\n",b);
return 0;
Og til slutt, goto er fy-fy

Kode

goto start;
Dette tilhører steinalderen, bruk loops fremfor.

Tror jeg fikk med de fleste visuelle feil her, mulig det er noen jeg har oversett.
Sist endret av 0xFF; 17. februar 2018 kl. 23:36.