• 検索結果がありません。

代数仕様言語 CafeOBJ による ボードゲームの形式的記述

N/A
N/A
Protected

Academic year: 2021

シェア "代数仕様言語 CafeOBJ による ボードゲームの形式的記述"

Copied!
1
0
0

読み込み中.... (全文を見る)

全文

(1)

代数仕様言語 CafeOBJ による ボードゲームの形式的記述

情報システム工学科3063 吉川 大介

1.概要

代数仕様言語

CafeOBJ

を用いて、プレイ ヤーが互いに盤上にコマを置くタイプのボ ードゲームの振舞仕様を記述した。

2.○×ゲームの概要

下図は○×ゲームの①交互に一つずつ、

②盤上の、③空いているコマに書き込んで いく、というルールを図示したものである。

3.○×ゲームの振舞仕様 以下に仕様の一部を示す。

ceq board(write(S,p1,xp,yp),xp',yp') = (if (xp == xp' and yp == yp') then O else board(S, xp', yp') fi)

if C-write(S, p1, xp, yp) .

write(S,p1,xp,yp)は,状態 S

において

p1

が(xp,yp)座標に○を書き込もうとした 後の状態である。

上記の条件付き等式の左辺

board(write(S, p1,xp,yp),xp',yp')は、事後状態における (xp',yp')座標のセルを表す。

条件部の項

C-write(S,p1,xp,yp)は、 write

操作が可能かどうかを判定する。

右 辺 で は 、 さ ら に 条 件 分 岐 し て お り 、

(xp,yp)座標と(xp',yp')座標が等しいとき

に○を返し、そうでないときに

board(S, xp',yp')、すなわち write

操作以前の状態

S

における(xp',yp')座標を返す。

4.仕様の実行

eq s1 = write(init, p1, 2, 2) . eq s2 = write(s1, p2, 3, 3) . red board(s2, 2, 2) .

初期状態

init

の座標(2,2)に

p1

が○を書き 込んだのが状態

s1。状態 s1

の座標(3,3)に

p2

が×を書き込んだのが状態

s2。

red

により項の簡約が行われ、指定された 座標の盤面の状態が出力される。

-- opening module OX.. done._*

-- reduce in %OX : (board(s2,2,2)):Cell (O):Cell

(0.000sec_for_parse,807rewrites(0.063 sec), 1377 matches)

5.まとめ

・○×ゲームの仕様は定式化した。

・定式化したときの

CELL

の数の変更やオ ペレータ追加の余地を残すことで、汎用性 を高められた。

・状態数が増えると、実行に時間がかかる。

例:red board(s9,2,2) .

-- reduce in %OX : (board(s9,2,2)):Cell (O):Cell

(0.000sec_for_parse,409231rewrites(17.

938 sec), 694769 matches)

6.今後の課題

・勝敗の決着や反則等の手順が途中で現れ た場合、それを出力できるようにする。

・より高度なボードゲームの仕様を定式化 していく。

参照

関連したドキュメント

語基の種類、標準語語幹 a語幹 o語幹 u語幹 si語幹 独立語基(基本形,推量形1) ex ・1 ▼▲ ・1 ▽△

Tone sandhi rule for pattern substitution in Suzhou Chinese: Verification using words beginning with a Ru syllable Masahiko MASUDA Kyushu University It is well known that in Wu

 “ボランティア”と言えば、ラテン語を語源とし、自

②上記以外の言語からの翻訳 ⇒ 各言語 200 語当たり 3,500 円上限 (1 字当たり 17.5

CPP (Critical Peak Pricing), PTR (Peak Time Rebate) 等、 DR サービスの種類に応じて、. 必要な

圧倒的多数の犯罪学者は,上述のように,非行をその個人のコソトロールの