AW: [Python-de] Meine Denksportaufgabe

Gerson Kurz Gerson.Kurz at t-online.de
Tue Oct 15 21:14:28 EDT 2002


> War da nicht noch was mit Minimalabstaenden? ;)
>
> -schorsch

Shit ;) Der Fehler tritt bei meinen sonstigen Tests sehr selten auf (warum,
siehe unten), und gerade in dem Beispiel, das ich posten will sehe ich ihn
nicht! Ärgerlich...

Erstens, ich habe jetzt einen hack eingebaut, um die Zufallszahlen
vorhersagbar zu machen, man kann den random seed an der k-zeile angeben.
Ansonsten war das Reproduzieren von Fehlern Glücksspiel...

Zweitens, Ich hatte zwar überprüft, ob der Startpunkt einer Figur frei ist,
aber nicht, ob er auch komplett frei liegt. Beispiel: Gegeben

  o*
**
 *

dann liegt der Startpunkt o zwar frei, aber es gibt keine gültige Figur für
diesen Punkt.

=> Fehler 1: Startpunkt muß ganz frei sein.
=> Fehler 2: Wenns' vom Startpunkt net weiter geht, stirbt diese Figur.

Dritters, der Fehler schlechthin: wenn ein punkt nicht passt, nicht auf den
Punkt zuvor zurückgehen, sondern zwei Punkte!!! Das war der eigentliche
Fehler. Nimm folgende Figur

|------(Bildschirmrand)
|oooo
|
|********

o möchte nach unten und stösst in Zeile drei auf "*". Dann hat bisher der
Algorithmus Zeile zwei erlaubt, weil die Punkte auf der Linie lagen (-1).
Jetzt "erkennt" der A daß das nicht geht und bricht die Figur ab. Damit
scheints erheblich besser zu funktionieren. Auf dem Bildspace

Mit kasterl -x=75 -y=25 -r=1860 -s=1860 >test.txt

kriegt man (nach geraumer Denkpause) jetzt z.b. das hier:

222           22222    1111111111111111  6666                ddd
2 22222222222 2   2    1              1  6  6                d d
2           2 2   2    1      eee     1  6  6         000000 d d 00000  000
2 22222222222 2   2    1      e e 4444444644644444    0    0 ddd 0   0  0 0
2 2           2 99999  1 0000 eee 4   1  6  6    444  0    0     0   0  0 0
222222222222222 9 2 9  1 0  0     4   1  6  6      4  0    000000000 000000
  2             9999999999999999  4   1  6666   0004000          0 0    0
  222222222222    2 9  1 0  0  9  4   1         0  4       5555  0 0    0
             2    2 9  1 0  0  9  4   1         0  4       5  5  0 0    0
    888888   2 999999  1 000000900400010000000000004000000050050000000  0
    8    8   2 9  2    1    0  9  4   1         0  4       5  5  0 0 0  0
1111811118111219112111111111111911411111111     0  4    ccccccccccccccccccc
1   8    8   2 9  2    1    0  9  4   1   1     0  4    c  5  5  0 0 0  0 c
1   888888   2 9  2    1    0  9  4   1   1     00040000c0050050000000  0 c
1            2 9  2 1111    0  9  4   1   1        4    c  5  5  0 0    0 c
1  333333    2 9  2 1       0  9  4   1   1   77777777  ccccccccccccccccccc
1  3    3    2 9  2 1       0 99  4   1111111 7    4 7     5  5  0 0    0
1  3  333    2292222222222  0 9   4       1 1 7    44744   5  5  0 0 bbbbbb
1  3 33        9  2 1    2  0 9   4  aaa  1 1 7      7 4   5  5  0 0 b  0 b
1  333         999999999 2  00900 4  a a  1 1 777777 7 4   5  5  0 0 bbbbbb
1                 2 1  9 2    9 0 4  aaa  111      777 4   5555  0 0    0
1                 22222922   99 0 4                    4         0 000000
111111111           1  9     9  0040000000000000000000040000000000
        1111111111111  9     9    4                    4
                       9999999    4444444444444444444444

Sehr schön sind die Linien 2 und 0. (Nochmal nachguck, ob diesmal auch
wirklich nix anstössiges dabei ist ;) Ich spiels gleich auf den Server...








More information about the Python-de mailing list