Ik ben net begonnen met java, het leek mij namelijk een leuke uitdaging om een programma te schrijven dat sudoku's oplost.
Nu heb ik uiteindelijk een programma geschreven wat sudoku's van 4x4 op kan lossen, de code is alleen erg lang en moet voor een groot gedeelte als methode kunnen.
Het gaat om dit stuk:
Dit herhaalt zich voor elke mogelijkheid (1 t/m 4), hoe kan ik dit mooi verwerken in bijvoorbeeld een methode zodat ik maar één keer de code moet schrijven en daarna de methode toe kan passen.
Alle hulp is welkom
*snip*
Nu heb ik uiteindelijk een programma geschreven wat sudoku's van 4x4 op kan lossen, de code is alleen erg lang en moet voor een groot gedeelte als methode kunnen.
Het gaat om dit stuk:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| // Als eerste testen we of 1 een goede waarde kan zijn if (n == 1) { // Als een 2 voorkomt in de rij of in de kolom gaan we verder if (number[r][0] == 2 || number[r][1] == 2 || number[r][2] == 2 || number[r][3] == 2 || number[0][c] == 2 || number[1][c] == 2 || number[2][c] == 2 || number[3][c] == 2) { // Als een 3 voorkomt in de rij of in de kolom gaan we verder if (number[r][0] == 3 || number[r][1] == 3 || number[r][2] == 3 || number[r][3] == 3 || number[0][c] == 3 || number[1][c] == 3 || number[2][c] == 3 || number[3][c] == 3) { // Als een 4 voorkomt in de rij of in de kolom gaan we verder if (number[r][0] == 4 || number[r][1] == 4 || number[r][2] == 4 || number[r][3] == 4 || number[0][c] == 4 || number[1][c] == 4 || number[2][c] == 4 || number[3][c] == 4) { // Alle nummers staan nu in de rij of kolom, staat de gekozen mogelijkheid nog niet in de rij if (number[r][0] != n && number[r][1] != n && number[r][2] != n && number[r][3] != n) { // Staat de gekozen mogelijkheid ook niet in de kolom if (number[0][c] != n && number[1][c] != n && number[2][c] != n && number[3][c] != n) { // Dan vullen we de mogelijkheid in in de array number[r][c] = n; // we veranderen de teller van de lege vakjes, zodat het programma weet wanneer het klaar is leeg = leeg - 1; } } } } } } |
Dit herhaalt zich voor elke mogelijkheid (1 t/m 4), hoe kan ik dit mooi verwerken in bijvoorbeeld een methode zodat ik maar één keer de code moet schrijven en daarna de methode toe kan passen.
Alle hulp is welkom
*snip*
[ Voor 12% gewijzigd door RobIII op 11-07-2013 19:02 . Reden: Link naar volledige code verwijderd (irrelevant) en code indenting verbeterd zodat de code i.i.g. op kolom 0 begint i.p.v. op kolom 30 ]