abonnement Unibet Coolblue Bitvavo
pi_33519001
quote:
Op donderdag 29 december 2005 21:16 schreef thabit het volgende:

[..]

Wat wordt de regel dan precies?
Hmm, nee wacht, slaat niet echt ergens op
Is eigenlijk gewoon de volgende iteratie van jouw idee zoasl ik het nu omschreven heb.
Ik snap eigenlijk nog niet echt hoe jouw idee fout zou kunnen gaan want dit zijn toch gewoon de sudokuregels zou je zeggen. Ik denk dat je meer blokken aan elkaar moet relateren toch, maar ik heb het nu teveel proberen te versimpelen zie ik al.

gaat weer terug naar het wiskundeklas :S

edit; Ik zit nu nog even te denken hoe ik een sudoku maak (die twee keer dat ik dat gedaan heb) dan doe ik iig altijd;

1
2
3
AAABBBBBB
CCCDDDDDD
EEEFFFFFF

Als een getal in A zit dan zit ie iig ook in de D rij/kolom en in de F rij/kolom

[ Bericht 4% gewijzigd door ThE_ED op 29-12-2005 21:29:41 ]
[KNE]-Mod
pi_33533676
Hallo. Ik heb niet het hele topic gelezen, maar ik wilde even zeggen;
persoonlijk doe ik de makkelijke en gemiddelde sudoku's altijd zonder het maken van extra notities, dwz, ik struin gewoon alle kolommen, rijen en blokjes af en kom zo tot de oplossing.

ik heb ook de moeilijkste sudoku's gedaan van The Daily Mirror
daar zitten echt heel erg pittige tussen

daar moet je haast wel gaan noteren.

dan vind je dus op een gegeven moment wel een rij, kolom of blok waarbij de situatie zo is, dat er óf maar 1 bepaald getal is dat in een bepaald vakje past, of dat er maar 1 bepaald vakje is waar een bepaald getal in past.

maar soms werkt dat ook niet helemaal lekker.

er zijn ook moeilijker oplossingen mogelijk.

een goed voorbeeld is bijvoorbeeld, dat je erachter komt dat de 7 in het blokje rechtsboven helemaal bovenaan moet zitten, maar je weet niet waar. je komt erachter dat de 7 in het blokje linksboven helemaal onderaan moet zitten, maar je weet niet waar. dan weet je dus dat in het middelste blokje bovenaan de 7 ergens in het midden zit.

zo moet je soms dingen combineren en dan was dit nog een vrij simpel voorbeeld.

het kan ook heel fijn zijn om bijv. te zien dat in het blok linksboven nog 1, 2 en 4 missen. als je er dan achterkomt dat die alleen maar helemaal links kunnen zitten, weet je dat de overige zes vakjes van de linker kolom níet de cijfers 1, 2 en 4 bevatten maar dus 3, 5, 6, 7, 8 en 9.

vaak kun je dan ook al cijfers invullen.
Gaat voor de BHFH-award 2005!
Humanitas est in bestias bonitas.
I am the hole I can't get out of.
  woensdag 1 februari 2006 @ 16:15:41 #53
72762 marq
Mr. Psychonaut
pi_34683371
quote:
Op woensdag 28 december 2005 23:28 schreef gexxz het volgende:
Een vriend van me heeft er een programmaatje voor geschreven
hihi, heb je t over mij??

ik heb zojuist de mn 4e algoritme voor het laatst geoptimaliseerd en het is nu met extreem moeilijke sudoku's nog steeds retesnel. de standaard sudoku's worden sowieso binnen 0.01 seconden opgelost als je computer > 1500MHz is.

om mn talenkennis te verbreden heb ik ervoor gekozen om het dit keer in C# te doen mbv mono onder linux.

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
using System;
using System.Collections;

namespace StateSolvingTest {

    class StateSolvingTest {
        /// Private attributes ///

        // Holds the list of empty cells
        private int[] emptyCells = new int[81];

        // Holds the 27 candidate lists 1..9
        private BitArray[] candidates = new BitArray[27];

        // Holds the sudoku as a linear array
        private int[] pattern = new int[81];

        // True when a solution has been found
        private bool ready;

        /// Properties ///

        public int[] Pattern {
            get {
                return pattern;
            }

            set {
                pattern = value;
            }
        }

        /// Constructors ///

        public StateSolvingTest() {
            // Instantiate the candidatelists
            for (int i = 0; i < 27; i++) {
                candidates[i] = new BitArray(10);
            }
        }

        /// Public methods ///

        public void FindSolution() {
            // Holds the indices of the candidatelists
            int column = 0;
            int row = 0;
            int region = 0;

            // Temporary store all empty cells
            ArrayList tempList = new ArrayList();

            // Fill the candidate lists with all 9 bits set
            for (int i = 0; i < 27; i++) {
                candidates[i].SetAll(true);
            }

            // Exclude invalid candidates from the lists and get empty cells
            for (int i = 0; i < 81; i++) {
                if (pattern[i] != 0) {
                    // Check which arraylists to remove from
                    GetCandidateLists(i, ref column, ref row, ref region);

                    candidates[column].Set(pattern[i], false);
                    candidates[row].Set(pattern[i], false);
                    candidates[region].Set(pattern[i], false);
                } else {
                    tempList.Addi;
                }
            }

            // Copy the list into an int[]
            emptyCells = new int[tempList.Count];
            tempList.CopyTo(emptyCells);

            // Set the ready flag to false
            ready = false;

            // Run the backtracking method from position 0
            FindSolution(0);
        }

        // Recursive backtracking algorithm
        private void FindSolution(int eIndex) {
            // Holds the indices of the candidatelists
            int column = 0;
            int row = 0;
            int region = 0;

            // Check if we are before the end of the pattern
            if (eIndex < emptyCells.Length) {

                // Get the corresponding candidatelists
                GetCandidateLists(emptyCells[eIndex], ref column, ref row, ref region);

                // Testing 1..9
                for (int i = 1; i < 10; i++) {
                    // Check if the candidate exists in the corresponding lists
                    if (candidates[column].Geti && candidates[row].Geti && candidates[region].Geti) {
                        // Add the number to the pattern
                        pattern[emptyCells[eIndex]] = i;

                        // Exclude this number from the corresponding candidatelists
                        candidates[column].Set(i, false);
                        candidates[row].Set(i, false);
                        candidates[region].Set(i, false);

                        // Don't advance if a solution has been found
                        if (ready) return;

                        // Advance to the next cell
                        FindSolution(eIndex + 1);

                        // Don't revert if a solution has been found
                        if (ready) return;

                        // Reset the cell
                        pattern[emptyCells[eIndex]] = 0;

                        // Put the tested number back into the candidatelists
                        candidates[column].Set(i, true);
                        candidates[row].Set(i, true);
                        candidates[region].Set(i, true);
                    }
                }
            } else {
                // A solution has been found, get out of recursion
            ready = true;
            }
        }

        // Obtain the corresponding candidatelists
        private void GetCandidateLists(int position, ref int column, ref int row, ref int region) {
            column = position % 9;
            row = 9 + position / 9;
            region = 18 + column / 3 + 3 * ((row - 9) / 3);
        }

        public void DisplayPattern() {
            for (int i = 0; i < 81; i++) {
                if (i % 9 == 0) {
                    Console.Write("\n\t");
                }
                Console.Write(pattern[i]);
            }

            Console.WriteLine();
        }

        public static void Main(String[] args) {
            Console.WriteLine("StateSolvingTest v0.1");
            Console.WriteLine("Code by Markus\n");

            StateSolvingTest sst = new StateSolvingTest();

            int[] pattern = {   0,7,0,0,0,3,2,0,0,
                                0,0,5,6,9,0,0,0,0,
                                0,0,0,0,0,0,0,0,0,
                                0,0,0,0,8,0,7,0,3,
                                0,0,4,0,0,0,8,0,0,
                                9,0,1,0,2,0,0,0,0,
                                0,0,0,0,0,0,0,0,0,
                                0,0,0,0,5,8,4,0,0,
                                0,0,6,4,0,0,0,1,0};

            sst.Pattern = pattern;

            DateTime startTime = DateTime.Now;

            sst.FindSolution();

            TimeSpan elapsed = DateTime.Now - startTime;
            Console.WriteLine("\tExecution time: {0}s", elapsed.TotalSeconds.ToString());

            sst.DisplayPattern();
        }

    }

}


mocht iemand dit willen gebruiken..
dit is een console applicatie.. strip de Main en de ShowPattern en je houdt de klasse over die al het werk voor je doet. In de Main kun je zien hoe de klasse te benaderen..

voor andere rommel

http://mark.space.servehttp.com/sudoku/

EDIT
overal waar dat domme blauwe ietje staat moet ( i ) staan (zonder spaties als t een beetje kan

[ Bericht 0% gewijzigd door marq op 01-02-2006 16:28:36 ]
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
  woensdag 1 februari 2006 @ 16:21:34 #54
72762 marq
Mr. Psychonaut
pi_34683566
quote:
Op donderdag 29 december 2005 15:18 schreef ThE_ED het volgende:
Ik vraag me af wat nou (voor een computer) de snelste manier van oplossen is (als we even een database met alle mogelijkheden niet meerekenen.) zelf zou ik het zo aanpakken als TS denk ik. Zo ver kom ik nog wel met mijn beperkte wiskundige vermogens, maar blijkbaar is dat nog niet helemaal sluitend.
Er zijn enorm veel verschillende methodes om ze op te lossen.. BruteForce (recursief backtracken) is de meest voorkomende manier, maar de een backtrackt heel anders dan de andere. Ik heb bv verschillende backtrackers geschreven maar mn 3e manier van aanpak is dan weer vele malen efficienter.

de meest snelle manier is nog altijd Donald Knuth's Dancing Links!

http://mark.space.serveht(...)ncingLinks-paper.pdf

let wel op dat het echt geen flikker met rekenen heeft uit te maken. het is PUUR logica. vergelijken van getallen, elimineren van kandidaten.. niks rekenen of wiskunde.
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
  woensdag 1 februari 2006 @ 16:24:28 #55
72762 marq
Mr. Psychonaut
pi_34683663
quote:
Op donderdag 29 december 2005 20:42 schreef soulsurvivor het volgende:
Als je dit spel kan kraken met simpele formules is er volgens mij gelijk geen reet meer an.
er is geen `simpele formule` om dit op te lossen. want met formules reken je, en met sudoku's niet.
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
pi_34683823
quote:
Op woensdag 1 februari 2006 16:15 schreef marq het volgende:

[..]

hihi, heb je t over mij??

ik heb zojuist de mn 4e algoritme voor het laatst geoptimaliseerd en het is nu met extreem moeilijke sudoku's nog steeds retesnel. de standaard sudoku's worden sowieso binnen 0.01 seconden opgelost als je computer > 1500MHz is.

om mn talenkennis te verbreden heb ik ervoor gekozen om het dit keer in C# te doen mbv mono onder linux.
[ code verwijderd ]

mocht iemand dit willen gebruiken..
dit is een console applicatie.. strip de Main en de ShowPattern en je houdt de klasse over die al het werk voor je doet. In de Main kun je zien hoe de klasse te benaderen..

voor andere rommel

http://mark.space.servehttp.com/sudoku/
Hoe moet je dit compileren?
  woensdag 1 februari 2006 @ 16:35:19 #57
72762 marq
Mr. Psychonaut
pi_34684082
ik gebruik mono
compile : mcs StateSolvingTest.cs
run : mono StateSolvingTest.exe

hoewel ik geen windows gebruik is dit wel gewoon met de .NET compiler te doen die je bij Visual Studio .NET krijgt.

als je de Main eruit stript kan ie iig niet meer compileren als exe want dan heeft ie geen `entrance`

eventueel kun je mono voor windows gaan installeren of visual studio .NEt gebruiken, maar daar heb ik nog nooit mee gewerkt

het is eigenlijk bedoeld als klasse binnen een sudoku programma met interface enzo..
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
pi_34684316
Ik heb ook geen windows, dus dat komt goed uit. . Interfaces interesseren me ook geen donder, dus ook dat komt goed uit.

Ik zou trouwens een algoritme dat recursief backtrackt wel rekenen willen noemen. Rekenen doe je niet alleen maar met getallen of formules.
  woensdag 1 februari 2006 @ 16:46:05 #59
72762 marq
Mr. Psychonaut
pi_34684458
naja, dan moet je mono zeker installeren.. geef 't ding een naam en met mcs kun je hem echt in 1x compileren.

maar het enige echte rekenwerk in bovnestaande code is het bereken van de corresponderende kandidaat lijsten.. misschien hebben we beide een andere definitie voor rekenen aangezien ik dit neit als berekenen bestempel

http://www.vandale.nl/opzoeken/woordenboek/?zoekwoord=rekenen

re·ke·nen1 (onov.ww.)
1 met getallen, cijfers werken, volgens de regels hoeveelheden, aantallen benoemen, samenstellen en ontbinden => cijferen

vandale is het wel een beetje met jou eens
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
pi_34684721
Je zou je implementatie denk ik zelfs nog iets sneller kunnen maken door bitrepresentaties te gebruiken voor je kandidatenlijstje. Dan hoef je niet alle kandidaten af te gaan, maar verzamel je gewoon met een or-operator alles wat je al hebt en dan elimineer je dat met and(not) in de cel waarmee je bezig bent.
  woensdag 1 februari 2006 @ 17:01:29 #61
72762 marq
Mr. Psychonaut
pi_34684992
die implementatie gebruik ik in mijn MSX versie. AND om te controleren of de bit TRUE is, bitshift, inversie en AND/OR om ze te setten/unsetten.

hier gebruik ik de BitArray om dit te doen, de C# library voorziet hier in en is vele malen sneller dan conventionele lijsten (ArrayList). Dus wat je zegt, is al reeds geimplementeerd

in een eerdere versie van deze 3e aanpak had ik nog wel gewoon ArrayLists maar toen was ie ook een stuk trager

mocht ik dit nog niet weten, dan zou ik je post als enorm waardevol beschouwen hihihi
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
pi_34685173
Ah, okee. Ik ken C# niet. .
  woensdag 1 februari 2006 @ 17:09:09 #63
36971 Invictus_
Religieuze Minderheid
pi_34685272
quote:
Op woensdag 28 december 2005 21:38 schreef thabit het volgende:
Regel 1. Stel je hebt een verzameling cijfers S en een rij/kolom/blok waarvoor geldt dat het aantal vakjes v met a(v) deelverzameling van S minstens gelijk is aan het aantal elementen van S, dan mag je in alle andere vakjes van je rij/kolom/blok de cijfers van S wegstrepen.
Staat hier niet gewoon ieder getal mag maar één keer voorkomen in elke rij, kolom en blok maar dan onduidelijker?
Now I'm walking on the sunnyside of the street
pi_34685354
quote:
Op woensdag 1 februari 2006 17:09 schreef Invictus_ het volgende:

[..]

Staat hier niet gewoon ieder getal mag maar één keer voorkomen in elke rij, kolom en blok maar dan onduidelijker?
Nee, het is een generalisatie van die regel.
  woensdag 1 februari 2006 @ 17:12:11 #65
72762 marq
Mr. Psychonaut
pi_34685372
quote:
Op woensdag 1 februari 2006 17:05 schreef thabit het volgende:
Ah, okee. Ik ken C# niet. .
dat maakt niet uit. je ontbeert het inzicht kennelijk niet anders had je me die tip nooit gegeven

C# is de `java` van microsoft. niet echt geweldig aangezien de heren van het mono project gedwongen zijn de boel te `reverse engineren`.

maar ja, een beetje programmeur verbreedt zijn talenkennis *kuch*
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
pi_34685420
quote:
Op woensdag 28 december 2005 22:10 schreef Angel_of_Dth het volgende:

[..]

Het stond enkele weken terug in een computerblad dat een oud-leraar van me op het perron stond te lezen.
PC-Active

* JapyDooge heeft

maar het was niet 'simpel'
EVE Online: CEO van Jovian Legacy, alliance executor van Jovian Empire. Join 'JOVLEG Public' ingame. Blink spelen? http://cogdev.net/blink/ gebruik referalcode 'jovianblink' voor gratis startcredits. IRC
  maandag 13 februari 2006 @ 21:22:23 #68
119078 McCarthy
communistenjager
pi_35054468
quote:
Op donderdag 29 december 2005 19:19 schreef thabit het volgende:

[..]

Ik neem aan dat met "zonder gokwerk" bedoeld wordt dat de oplossing eenduidig is.
ik dacht dat er sudoku's waren met meerdere oplossingen.

Je moet trouwens prolog gebruiken. Kan je vrij makkelijk dit soort backtracking problemen mee solven (denk ik). Zal eens kijken wat ik kan.
Het nationaal product is hetzelfde als een taart waar uiteraard iedereen recht op heeft, als overheden met geld smijten heet het investeren en als bedrijven investeren heet het een sprinkhanenplaag. McCarthy
  maandag 13 februari 2006 @ 21:25:58 #69
119078 McCarthy
communistenjager
pi_35054672
quote:
Op woensdag 1 februari 2006 16:15 schreef marq het volgende:

[..]

hihi, heb je t over mij??

ik heb zojuist de mn 4e algoritme voor het laatst geoptimaliseerd en het is nu met extreem moeilijke sudoku's nog steeds retesnel. de standaard sudoku's worden sowieso binnen 0.01 seconden opgelost als je computer > 1500MHz is.

om mn talenkennis te verbreden heb ik ervoor gekozen om het dit keer in C# te doen mbv mono onder linux.
[ code verwijderd ]

mocht iemand dit willen gebruiken..
dit is een console applicatie.. strip de Main en de ShowPattern en je houdt de klasse over die al het werk voor je doet. In de Main kun je zien hoe de klasse te benaderen..

voor andere rommel

http://mark.space.servehttp.com/sudoku/

EDIT
overal waar dat domme blauwe ietje staat moet ( i ) staan (zonder spaties als t een beetje kan
wat gebruikte je eerst dan?
Het nationaal product is hetzelfde als een taart waar uiteraard iedereen recht op heeft, als overheden met geld smijten heet het investeren en als bedrijven investeren heet het een sprinkhanenplaag. McCarthy
pi_35055073
quote:
Op maandag 13 februari 2006 21:22 schreef McCarthy het volgende:

[..]

ik dacht dat er sudoku's waren met meerdere oplossingen.
Natuurlijk. Bijvoorbeeld de sudoku waar in het begin nog niets ingevuld is.
pi_35056744
De makkelijkste manier om sudoku`s op te lossen is als volgt:
Je hebt alleen een pen en de opgave zelf nodig.
Maak gebruik van punten.
Elk punt stelt een cijfer voor, links boven 1, midden boven 2, rechtsboven 3, links midden 4, midden midden 5, enzovoort net zo als de toetsen van je mobieltje.
Staat er dus ergens een 1, maak dan punten links boven in alle hokjes die daar op betrekking hebben.
Maak echter ook een puntje in het hokje van de gegeven 1 zelf, dan weet je waar je gebleven bent als je even naar de wc moet.
doe dat met alle gegevens.
Ga dan na of er hokjes met 8 ingevulde punten zijn, het ontbrekende puntje geeft aan welk cijfer je in moet vullen.
Vul bij elk gevonden cijfer meteen alle punten in, in de hokjes die daar weer betrekking op hebben.
Houdt het dan op om op deze wijze cijfers te vinden ga dan "vissen".
Dit houdt in dat je in elke regel, kolom of vierkant 3x3 nagaat of van de cijfers 1 tem 9 er een puntje ontbreekt.
Het komt een enkele keer voor dat je moet gokken.
Dit houdt in dat je in een hokje waar 2 punten ontbreken een van de twee mogelijke getallen invult.
Doe dat met potlood want blijkt dat je het verkeerde hebt gekozen dan kun je het weer uitgummen.
Probeer dan de andere mogelijkheid.
Eigenlijk vindt ik sudoku`soplossen niks meer aan.
De enige reden waarom ik dagelijks de sudoku uit de krant oplos is om mijn nauwkeurigheid scherp te houden.
pi_35061977
quote:
Op maandag 13 februari 2006 22:06 schreef Schonedal het volgende:Het komt een enkele keer voor dat je moet gokken.
dat ben ik nog nooit tegen gekomen in een sudoku.
als je moet gokken heb je iets over het hoofd gezien
Extremistisch gematigd.
  dinsdag 14 februari 2006 @ 00:00:23 #73
32768 DionysuZ
Respect my authority!
pi_35062163
inderdaad. Iedere sudoku is zo opgebouwd dat hij op te lossen is zonder gokwerk.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_35066676
ik vraag me wel af wat men nog onder gokken verstaat
kijk als je op een gegeven moment drie posities hebt in een rij waarin een drie kan komen te staan en je volgt dan logischerwijs voor elk van die mogelijkheden de gevolgen van het plaatsen van een 3 en je komt tot de conclusie dat ie maar in één van de vakjes kan staan, is dat dan gokken?

dan hangt "gokken" blijkbaar af van je genialiteit, dwz je vermogen tot het "uitrekenen" van de gevolgen van een bepaalde "zet", zoals een schaakcomputer ook kan bijv.

er zijn bijv. mogelijkheden bij het invullen van een sudoku om te zien dat bijv. een 7 alleen links kan zitten in een vierkantje
als je dan van het vierkant daar twee boven weet dat de 7 alleen rechts kan zitten, zit ie bij de driehoek daartussenin dus in het midden. dan kun je naar rechts kijken en als daar de 7 bovenaan moet komen (wat je ook nog eens kunt bepalen door twee andere vierkanten), weet je dat ie bij het vierkant daar weer rechts van in het midden of onderaan moet komen, en links ook.

nou ja zo kun je doorgaan
Gaat voor de BHFH-award 2005!
Humanitas est in bestias bonitas.
I am the hole I can't get out of.
pi_35077007
quote:
Op dinsdag 14 februari 2006 09:10 schreef JohnDDD het volgende:
ik vraag me wel af wat men nog onder gokken verstaat
kijk als je op een gegeven moment drie posities hebt in een rij waarin een drie kan komen te staan en je volgt dan logischerwijs voor elk van die mogelijkheden de gevolgen van het plaatsen van een 3 en je komt tot de conclusie dat ie maar in één van de vakjes kan staan, is dat dan gokken?

dan hangt "gokken" blijkbaar af van je genialiteit, dwz je vermogen tot het "uitrekenen" van de gevolgen van een bepaalde "zet", zoals een schaakcomputer ook kan bijv.

er zijn bijv. mogelijkheden bij het invullen van een sudoku om te zien dat bijv. een 7 alleen links kan zitten in een vierkantje
als je dan van het vierkant daar twee boven weet dat de 7 alleen rechts kan zitten, zit ie bij de driehoek daartussenin dus in het midden. dan kun je naar rechts kijken en als daar de 7 bovenaan moet komen (wat je ook nog eens kunt bepalen door twee andere vierkanten), weet je dat ie bij het vierkant daar weer rechts van in het midden of onderaan moet komen, en links ook.

nou ja zo kun je doorgaan
ik snap geen hol van je hele post maar gokken is als je een cijfer moet invullen terwijl je nog niet weet of die wel of niet op die plek hoort. Als je moet gokken betekent dat dat iets buiten je beredeneerskillz ligt, of dat je iets over het hoofd hebt gezien.
en volgens mij hoef je nooit verder te kijken dan "1 zet verder" als je de keuze hebt uit 2 vakjes voor 1 cijfer. Maar ook nu ik dit schrijf vraag ik me dit hard af, omdat zulke situaties ook van de andere kant bekeken kunnen worden (--> uitsluiten dat een cijfer niet in een hokje past)
Extremistisch gematigd.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')