Hoi,
Om een programmeer taal te leren is het een goede oefening om dingen na te maken. Dit ben ik dus gaan doen met John Conway's Game of Life. Dit leek mij simpel te doen.
John Conway's Game of Life is een stel regels waarmee een soort leven nagebootst word. Er zijn 4 regels:
Dit leek mij simpel te doen, maar het stuk code dat de buren van een punt moet tellen maakt fouten: Waar een dood punt bv 4 buren heeft telt hij er soms 6 bv.
Mijn code:
Ik heb dit stuik code al 3 keer opnieuw geschreven en ik kan geen fout meer ontdekken.
Kan iemand mij hier bij helpen? Alvast bedankt!
edit:
Hier een plaatje met in iedere cel het aantal getelde buren, misschien zien jullie een patroon?:
http://img530.imageshack....48/gameoflifeerrorrn9.jpg
Om een programmeer taal te leren is het een goede oefening om dingen na te maken. Dit ben ik dus gaan doen met John Conway's Game of Life. Dit leek mij simpel te doen.
John Conway's Game of Life is een stel regels waarmee een soort leven nagebootst word. Er zijn 4 regels:
code:
1
2
3
4
| 1. Is een punt levend en omring door 2 of 3 levende buren dan blijft hij leven. 2. Is een levend punt omringd door meer dan 3 buren dan sterft hij door overbevolking. 3. Is een levend punt omringd door minder dan 2 buren dan sterf hij door eenzaamheid. 4. Is een door punt omringd door precies 3 buren dan word hij levend. |
Dit leek mij simpel te doen, maar het stuk code dat de buren van een punt moet tellen maakt fouten: Waar een dood punt bv 4 buren heeft telt hij er soms 6 bv.
Mijn code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| public int countneighbours(int x, int y) { //Number of Neighbors int n = 0; //Row above if (y >= 1) { if (x >= 1) { if (raster[x-1,y-1]) {n++;} if (raster[x,y-1]) {n++;} } if (x < raster_width) { if (raster[x+1,y-1]) {n++;} } } //Same row if (x >= 1) { if (raster[x - 1, y]) { n++; } } if (x < raster_width) { if (raster[x + 1, y]) { n++; } } //Row below if (y < raster_height) { if (x >= 1) { if (raster[x - 1, y + 1]) { n++; } if (raster[x, y + 1]) { n++; } } if (x < raster_width) { if (raster[x + 1, y + 1]) { n++; } } } return n; } |
Ik heb dit stuik code al 3 keer opnieuw geschreven en ik kan geen fout meer ontdekken.
Kan iemand mij hier bij helpen? Alvast bedankt!
edit:
Hier een plaatje met in iedere cel het aantal getelde buren, misschien zien jullie een patroon?:
http://img530.imageshack....48/gameoflifeerrorrn9.jpg
[ Voor 3% gewijzigd door Synch op 01-05-2008 12:23 ]
