テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

OCamlで碁ソフトをちょっと書いてみた

とてもしょうもないけど, とりあえず碁盤がプリント出来た. 今後, まずは完全な碁盤を作ろうと思う. 本を読んで納得したので, あとは実践を積むだけ. 関数の書き方も分からないとかふつうに起こるが, そうであったそうであったと思い出しながらやっていく.

テストは, ネットに転がってる棋譜をぶちこんでみて, ちゃんと動作するか(最終図が同じかとか). このテストでは性能も測れる. 碁盤を作ったあとは, ゴミのようなAIを作って, 天頂の碁(PS3)と戦わせてみようかと思う.

open Array
type t = int array array
let make n = make_matrix (n+2) (n+2) 2
let show b =
  Printf.printf "   [1 2 3 4 5 6 7 8 9 10111213141516171819]\n" ;
  let p i = match i w
  | 0 -> '@'
  | 1 -> 'O'
  | _ -> ' '
  in
  for i = 1 to (length b) - 2 do
    Printf.printf "%2d| " i;
    for j = 1 to (length b) - 2 do
      Printf.printf "%c " (p (get (get b i) j)) ;
    done ;
    print_newline () ;
  done
let put_stone t (i, j) a = set (get t i) j a
let can_put t (i, j) = assert false

let b = make 19 ;;
put_stone b (4, 4) 0 ;
put_stone b (16, 16) 1 ;
put_stone b (17, 14) 0 ;
put_stone b (14, 16) 1 ;
put_stone b (16, 10) 0 ;
show b ;
   [1 2 3 4 5 6 7 8 9 10111213141516171819]
 1|
 2|
 3|
 4|       @
 5|
 6|
 7|
 8|
 9|
10|
11|
12|
13|
14|                               O
15|
16|                   @           O
17|                           @
18|
19|

アプリ最高