2016/02/16

UNIX V6で森田オセロ V6.1が動作した

UNIX V6上で森田オセロV6.1が動作しました。問題点を突き止めるため、リンクするオブジェクトファイルを1つずつ追加しながら、異常になるファイルを探しました。リンク時に未定義関数エラーが出ますが、スタブで対処しました。

その結果cell.cが怪しいと分かりました。『思考ゲームプログラミング』の178頁には「8ビット用のCでは2000~3000程度に変更する」という但書があります。PDP-11は8ビットCPUではありませんが、メモリ空間が64Kなので、実質的には8ビット用と同様の制約を受けるのかもしれません。

MAXCELLが7000だったので2000に変更したところ、無事に動作してくれました。幾つか気になっている個所が残っていますが、とりあえず一安心しました。
# ./a.out

MORITAN OTHELLO Ver 6.1
Copyright (C) 1986 by K.Morita


1.man-com 2.com-man 3.com-com
select = 1
Level = 3

  a b c d e f g h
1 . . . . . . . .
2 . . . . . . . .
3 . . . . . . . .
4 . . . 0 X . . .
5 . . . X 0 . . .
6 . . . . . . . .
7 . . . . . . . .
8 . . . . . . . .
black= 2 white= 2

Input your move ? f5

black:f5
  a b c d e f g h
1 . . . . . . . .
2 . . . . . . . .
3 . . . . . . . .
4 . . . 0 X . . .
5 . . . X X X . .
6 . . . . . . . .
7 . . . . . . . .
8 . . . . . . . .
black= 4 white= 1

white:f6
  a b c d e f g h
1 . . . . . . . .
2 . . . . . . . .
3 . . . . . . . .
4 . . . 0 X . . .
5 . . . X 0 X . .
6 . . . . . 0 . .
7 . . . . . . . .
8 . . . . . . . .
black= 3 white= 3

Input your move ?

0 件のコメント:

コメントを投稿