Jamen - så vil jeg da lige slutte af med de mere overordnede tanker jeg har omkring det projekt du har givet dig i gang med. Jeg vil foreslå at du tager den opdeling af objekter du har op til en overvejelse.
Som jeg læser din kode - har du et proceduralt (skrevet med funktioner og ikke i klasser) hovedprogram, der så bruger dit objekt felt. Men efterhånden som de funktioner du har i dit hovedprogram bliver mere avancerede, så tilføjer du også avanceret funktionalitet i dit felt-objekt.
Som jeg ser det, kan det nemt blive besværligt fremover.. Simpelthen fordi objektet felt, ikke i sig selv bør have særligt avanceret funktionalitet. At begynde at tilføje pegere til nabofelter - er faktisk at begynde på at tillæge et felt mere betydning end det burde have.
Så mit forslag er at du prøver at sige : "Et felt er simpelt, og ved om det er tomt, eller hvilken brik der står på det, men heller ikke (ret meget) mere".
Og så enten :
1) Laver procedural kode - der arbejder sammenhængen mellem felter.
2) Laver et mere kompliceret bræt-objekt, som ligeledes kender sammenhængen mellem felter.
Du kan evt. kombinere disse to forslag, ved først at lave procedural kode. Og så udfra denne kan du se hvilke metoder som du naturligt får brug for på et bræt-objekt.
Objekt orienteret kode, kan nemt blive en rodet forestilling, hvis man ikke som udgangspunkt har en god ide om hvilke objekter (og metoder) man gerne vil have - men istedet prøver at få koden til at passe på de objekter man nu en gang har..
Det er noget der komme med øvelsen, men alt begyndelse er svær - derfor kan det være en ide, at prøve at få overblikket ved at skrive proceduralt først..
Just my 5 cents.. :)
P.S.
Hvis du en dag kommer til det punkt, hvor du gerne vil have at programmet kan være en fornuftig modstander - kan du nemt komme i den situation at en klasse bræt, kan levere en liste af lovlige træk, der hver samtidig har en ny instans af klassen bræt (den stilling der fremkommer efter at trækket er blevet udført). Og det bliver her, hvor du virkelig kan begynde at høste frugterne af objekt orienteret programmering... Hvis du kan kombinere dette med en medlemsfunktion på klasse bræt, der kan give en stilling en værdi, så er du ved at have lavet en AI for dit spil !
Helt enig i dine pointer. Ideen er senere at få implementeret en minMax rekusiv funktion (AI).
Tak endnu engang.
AHR
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.