Re: КОНКУРС для программистов ГО.
|
13, September, 2004 17:55
|
Если кому интересно. Я попробовал посмотреть как считает результат Gnu Go (это вне конкурса). Правда долго помучался. Создать именно функцию ScoreEndOfTheGame, согласно условиям не получилось. Если в GNU Go расставлять только конечную позицию, то она считает результат неправильно. По крайней мере у меня это не получилось сделать. Тогда я попробовал запустить саму gnugo.exe, загрузить файл, сделать пас, после этого она сгенерировала ход и только тогда написала результат, причем правильный. Пришлось так и делать. В функцию ScoreEndOfTheGame передавать имя файла, чтоб она сама его загрузила, и делать очередной пас и вызывать генерацию хода. Вот только после этого получились правильные рузультаты. Итого, на предложенной базе из 50-ти файлов, GNU Go неправильно посчитала только 2. Причем точно неправильно она посчитала 007.sgf, B+6.5 вместо W+1.5. А со вторым файлом 009.exe интересней. Дело в том, что GNU Go выдает 2 ответа - максимальный и минимальный результат и из них берется среднее арифметическое. На всех партиях оба значения совпадали и только на этой она посчитала результа от B+31.5 до W+6.5. А в файле 009.sgf указан результат W+6.5. Так что можно считать, она наполовину правильно его решила :).
Вот лог:
17:35:44 Алгоритм: GNU Go 3.5.10
17:35:45 + 001.sgf Score= 4, DeadB= 9, DeadW= 16, Komi=7.5, Res= 3.5, Diff= 0.0
17:35:45 + 002.sgf Score= -1, DeadB= 33, DeadW= 33, Komi=6.5, Res= -7.5, Diff= 0.0
17:35:45 + 003.sgf Score= -8, DeadB= 11, DeadW= 23, Komi=6.5, Res= -2.5, Diff= 0.0
17:35:46 + 004.sgf Score= 3, DeadB= 20, DeadW= 22, Komi=6.5, Res= -1.5, Diff= 0.0
17:35:47 + 005.sgf Score= 7, DeadB= 9, DeadW= 5, Komi=5.5, Res= -2.5, Diff= 0.0
17:35:49 + 006.sgf Score= 6, DeadB= 15, DeadW= 14, Komi=6.5, Res= -1.5, Diff= 0.0
17:35:49 - 007.sgf Score= 13, DeadB= 16, DeadW= 15, Komi=5.5, Res= -1.5, Diff= 8.0
17:35:50 + 008.sgf Score= 9, DeadB= 11, DeadW= 8, Komi=6.5, Res= -0.5, Diff= 0.0
17:35:51 - 009.sgf Score= 20, DeadB= 11, DeadW= 10, Komi=6.5, Res= -6.5, Diff= 19.0
17:35:51 + 010.sgf Score= -1, DeadB= 6, DeadW= 9, Komi=6.5, Res= -4.5, Diff= 0.0
17:35:52 + 011.sgf Score= -1, DeadB= 5, DeadW= 7, Komi=5.5, Res= -4.5, Diff= 0.0
17:35:52 + 012.sgf Score= 2, DeadB= 3, DeadW= 8, Komi=5.5, Res= 1.5, Diff= 0.0
17:35:53 + 013.sgf Score= 19, DeadB= 6, DeadW= 1, Komi=6.5, Res= 7.5, Diff= 0.0
17:35:54 + 014.sgf Score= 12, DeadB= 5, DeadW= 5, Komi=6.5, Res= 5.5, Diff= 0.0
17:35:54 + 015.sgf Score= 11, DeadB= 18, DeadW= 12, Komi=6.5, Res= -1.5, Diff= 0.0
17:35:55 + 016.sgf Score= 11, DeadB= 18, DeadW= 17, Komi=6.5, Res= 3.5, Diff= 0.0
17:35:55 + 017.sgf Score= 6, DeadB= 16, DeadW= 13, Komi=6.5, Res= -3.5, Diff= 0.0
17:35:55 + 018.sgf Score= -2, DeadB= 8, DeadW= 9, Komi=6.5, Res= -7.5, Diff= 0.0
17:35:56 + 019.sgf Score= -3, DeadB= 5, DeadW= 15, Komi=6.5, Res= 0.5, Diff= 0.0
17:35:57 + 020.sgf Score= 9, DeadB= 7, DeadW= 10, Komi=5.5, Res= 6.5, Diff= 0.0
17:35:57 + 021.sgf Score= 1, DeadB= 6, DeadW= 15, Komi=6.5, Res= 3.5, Diff= 0.0
17:35:58 + 022.sgf Score= 6, DeadB= 23, DeadW= 23, Komi=6.5, Res= -0.5, Diff= 0.0
17:35:58 + 023.sgf Score= 14, DeadB= 12, DeadW= 2, Komi=6.5, Res= -2.5, Diff= 0.0
17:35:58 + 024.sgf Score= 5, DeadB= 3, DeadW= 4, Komi=6.5, Res= -0.5, Diff= 0.0
17:35:58 + 025.sgf Score= 11, DeadB= 31, DeadW= 29, Komi=6.5, Res= 2.5, Diff= 0.0
17:36:00 + 026.sgf Score= 10, DeadB= 22, DeadW= 15, Komi=6.5, Res= -3.5, Diff= 0.0
17:36:01 + 027.sgf Score= 1, DeadB= 4, DeadW= 7, Komi=6.5, Res= -2.5, Diff= 0.0
17:36:01 + 028.sgf Score= 2, DeadB= 23, DeadW= 25, Komi=6.5, Res= -2.5, Diff= 0.0
17:36:01 + 029.sgf Score= 11, DeadB= 11, DeadW= 5, Komi=6.5, Res= -1.5, Diff= 0.0
17:36:02 + 030.sgf Score= 8, DeadB= 6, DeadW= 6, Komi=6.5, Res= 1.5, Diff= 0.0
17:36:02 + 031.sgf Score= 2, DeadB= 22, DeadW= 30, Komi=6.5, Res= 3.5, Diff= 0.0
17:36:02 + 032.sgf Score= 8, DeadB= 18, DeadW= 17, Komi=6.5, Res= 0.5, Diff= 0.0
17:36:03 + 033.sgf Score= 0, DeadB= 5, DeadW= 9, Komi=6.5, Res= -2.5, Diff= 0.0
17:36:03 + 034.sgf Score= 15, DeadB= 23, DeadW= 13, Komi=6.5, Res= -1.5, Diff= 0.0
17:36:03 + 035.sgf Score= 5, DeadB= 3, DeadW= 7, Komi=6.5, Res= 2.5, Diff= 0.0
17:36:04 + 036.sgf Score= 3, DeadB= 10, DeadW= 12, Komi=6.5, Res= -1.5, Diff= 0.0
17:36:05 + 037.sgf Score= 14, DeadB= 6, DeadW= 4, Komi=6.5, Res= 5.5, Diff= 0.0
17:36:06 + 038.sgf Score= 6, DeadB= 8, DeadW= 9, Komi=6.5, Res= 0.5, Diff= 0.0
17:36:06 + 039.sgf Score= 7, DeadB= 7, DeadW= 6, Komi=6.5, Res= -0.5, Diff= 0.0
17:36:07 + 040.sgf Score= 1, DeadB= 5, DeadW= 5, Komi=5.5, Res= -4.5, Diff= 0.0
17:36:07 + 041.sgf Score= 16, DeadB= 12, DeadW= 10, Komi=6.5, Res= 7.5, Diff= 0.0
17:36:08 + 042.sgf Score= 12, DeadB= 10, DeadW= 6, Komi=6.5, Res= 1.5, Diff= 0.0
17:36:08 + 043.sgf Score= 12, DeadB= 7, DeadW= 4, Komi=6.5, Res= 2.5, Diff= 0.0
17:36:09 + 044.sgf Score= 8, DeadB= 10, DeadW= 4, Komi=6.5, Res= -4.5, Diff= 0.0
17:36:10 + 045.sgf Score= 6, DeadB= 13, DeadW= 13, Komi=6.5, Res= -0.5, Diff= 0.0
17:36:11 + 046.sgf Score= 4, DeadB= 2, DeadW= 0, Komi=6.5, Res= -4.5, Diff= 0.0
17:36:12 + 047.sgf Score= 8, DeadB= 7, DeadW= 5, Komi=6.5, Res= -0.5, Diff= 0.0
17:36:12 + 048.sgf Score= 9, DeadB= 17, DeadW= 11, Komi=6.5, Res= -3.5, Diff= 0.0
17:36:16 + 049.sgf Score= 4, DeadB= 8, DeadW= 8, Komi=6.5, Res= -2.5, Diff= 0.0
17:36:16 + 050.sgf Score= -1, DeadB= 6, DeadW= 15, Komi=6.5, Res= 1.5, Diff= 0.0
17:36:16
17:36:16 Алгоритм: GNU Go 3.5.10
17:36:16 Всего партий: 50
17:36:16 Правильно: 48
17:36:16 Ошибочно: 2
17:36:16 Процент = 96.00
17:36:16
17:36:16 Время расчета=32.146000