概要
mindが、謎なので調べてみた。
練習問題やってみた。
練習問題
mindで、オセロを書け。
サンプルコード
banは 64個の 変数。
盤表示とは
数1は 変数
数2は 変数
8で 回数指定して
回数を 数1に 入れ
8で 回数指定して
数1に 8を 掛けて 回数を 加えて 8を 引いて 数2に 入れ
もし ban(数2)が 2に 等しい
ならば
「o 」を 表示し
つぎに
もし ban(数2)が 1に 等しい
ならば
「_ 」を 表示し
つぎに
もし ban(数2)が 0に 等しい
ならば
「x 」を 表示し
つぎに
繰り返し
改行し
繰り返し
。
移動可とは (位置、方向 → 結果)
数1は 変数
数2は 変数
数3は 変数
数4は 変数
結果は 変数
数2に 入れ
数1に 入れ
数1を 1を 引き 数1に 入れ
数1を 8で 割った余りを 数3に 入れ
数1を 8で 割り 数4に 入れ
結果に 0を 入れ
もし 数3が 0に 等しく かつ 数2が -9に 等しい ならば
結果に 1を 入れ
つぎに
もし 数3が 0に 等しく かつ 数2が -1に 等しい ならば
結果に 1を 入れ
つぎに
もし 数3が 0に 等しく かつ 数2が 7に 等しい ならば
結果に 1を 入れ
つぎに
もし 数3が 7に 等しく かつ 数2が -7に 等しい ならば
結果に 1を 入れ
つぎに
もし 数3が 7に 等しく かつ 数2が 1に 等しい ならば
結果に 1を 入れ
つぎに
もし 数3が 7に 等しく かつ 数2が 9に 等しい ならば
結果に 1を 入れ
つぎに
もし 数4が 0に 等しく かつ 数2が -9に 等しい ならば
結果に 1を 入れ
つぎに
もし 数4が 0に 等しく かつ 数2が -8に 等しい ならば
結果に 1を 入れ
つぎに
もし 数4が 0に 等しく かつ 数2が -7に 等しい ならば
結果に 1を 入れ
つぎに
もし 数4が 7に 等しく かつ 数2が 7に 等しい ならば
結果に 1を 入れ
つぎに
もし 数4が 7に 等しく かつ 数2が 8に 等しい ならば
結果に 1を 入れ
つぎに
もし 数4が 7に 等しく かつ 数2が 9に 等しい ならば
結果に 1を 入れ
つぎに
結果を 返す
。
テストとは (位置、色 → 結果)
数1は 変数
数2は 変数
数3は 変数
数4は 変数
数5は 変数
数6は 変数
数7は 変数
数8は 変数
数9は 変数
結果は 変数
dirは 8個の 変数
数2に 入れ
数1に 入れ
dir(1)に -9を 入れ
dir(2)に -8を 入れ
dir(3)に -7を 入れ
dir(4)に -1を 入れ
dir(5)に 1を 入れ
dir(6)に 7を 入れ
dir(7)に 8を 入れ
dir(8)に 9を 入れ
結果に 0を 入れ
数7に 0を 入れ
もし 数2が 0に 等しい
ならば
数7に 2を 入れ
つぎに
もし ban(数1)が 1に 等しい
ならば
8を 回数指定して
回数を 数3に 入れ
数4に 数1を 入れ
数6に dir(数3)を 入れ
数8に 0を 入れ
ここから
数4と 数6で 移動可し 数5に 入れ
もし 数5が 1に 等しい
ならば
数8に 0を 入れ
打ち切り
つぎに
数4に 数6を 加え 数4に 入れ
もし ban(数4)が 1に 等しい
ならば
数8に 0を 入れ
打ち切り
つぎに
もし ban(数4)が 数7に 等しい
ならば
数8に 1を 加え 数8に 入れ
つぎに
もし ban(数4)が 数2に 等しい
ならば
もし 数8が 0より 大きい
ならば
打ち切り
さもなければ
数8に 0を 入れ
打ち切り
つぎに
つぎに
繰り返す
もし 数8が 0より 大きい
ならば
結果に 1を 入れ
数4に 数1を 入れ
数6に dir(数3)を 入れ
数8に 0を 入れ
ここから
数4と 数6で 移動可し 数5に 入れ
もし 数5が 1に 等しい
ならば
数8に 0を 入れ
打ち切り
つぎに
ban(数4)に 数2を 入れ
数4に 数6を 加え 数4に 入れ
もし ban(数4)が 1に 等しい
ならば
数8に 0を 入れ
打ち切り
つぎに
もし ban(数4)が 数7に 等しい
ならば
数8に 1を 加え 数8に 入れ
つぎに
もし ban(数4)が 数2に 等しい
ならば
もし 数8が 0より 大きい
ならば
打ち切り
さもなければ
数8に 0を 入れ
打ち切り
つぎに
つぎに
繰り返す
つぎに
繰り返す
つぎに
結果を 返す
。
指すとは
数1は 変数
数2は 変数
sujiは 60個の 変数
suji(1)に 0を 入れ
suji(2)に 7を 入れ
suji(3)に 56を 入れ
suji(4)に 63を 入れ
suji(5)に 18を 入れ
suji(6)に 21を 入れ
suji(7)に 42を 入れ
suji(8)に 45を 入れ
suji(9)に 2を 入れ
suji(10)に 16を 入れ
suji(11)に 5を 入れ
suji(12)に 23を 入れ
suji(13)に 40を 入れ
suji(14)に 58を 入れ
suji(15)に 47を 入れ
suji(16)に 61を 入れ
suji(17)に 3を 入れ
suji(18)に 4を 入れ
suji(19)に 11を 入れ
suji(20)に 12を 入れ
suji(21)に 19を 入れ
suji(22)に 20を 入れ
suji(23)に 24を 入れ
suji(24)に 25を 入れ
suji(25)に 26を 入れ
suji(26)に 32を 入れ
suji(27)に 33を 入れ
suji(28)に 34を 入れ
suji(29)に 29を 入れ
suji(30)に 30を 入れ
suji(31)に 31を 入れ
suji(32)に 37を 入れ
suji(33)に 38を 入れ
suji(34)に 39を 入れ
suji(35)に 43を 入れ
suji(36)に 44を 入れ
suji(37)に 51を 入れ
suji(38)に 52を 入れ
suji(39)に 59を 入れ
suji(40)に 60を 入れ
suji(41)に 1を 入れ
suji(42)に 8を 入れ
suji(43)に 9を 入れ
suji(44)に 10を 入れ
suji(45)に 17を 入れ
suji(46)に 6を 入れ
suji(47)に 13を 入れ
suji(48)に 14を 入れ
suji(49)に 15を 入れ
suji(50)に 22を 入れ
suji(51)に 41を 入れ
suji(52)に 48を 入れ
suji(53)に 49を 入れ
suji(54)に 50を 入れ
suji(55)に 57を 入れ
suji(56)に 46を 入れ
suji(57)に 53を 入れ
suji(58)に 54を 入れ
suji(59)に 55を 入れ
suji(60)に 62を 入れ
60で 回数指定して
suji(回数)を 数1に 入れ
数1に 1を 加え 数1に 入れ
数1と 2で テストし 数2に 入れ
もし 数2が 0より 大きい
ならば
打ち切り
つぎに
繰り返す
数1を 返す
。
メインとは
数1は 変数
数2は 変数
数3は 変数
数4は 変数
64で 回数指定して
ban(回数)に 1を 入れ
もし 回数が 28に 等しい
ならば
ban(28)に 0を 入れ
つぎに
もし 回数が 29に 等しい
ならば
ban(29)に 2を 入れ
つぎに
もし 回数が 36に 等しい
ならば
ban(36)に 2を 入れ
つぎに
もし 回数が 37に 等しい
ならば
ban(37)に 0を 入れ
つぎに
繰り返し
盤表示
「あなたは、xです。」と 一行表示し
ここから
「YX入力 」と 表示し 数値入力し 数1に 入れ
数1を 10で 割った余りを 数2に 入れ
数1を 10で 割り 8を 掛けて 数2を 加えて 8を 引いて 数1に 入れ
数1と 0で テストし 数4に 入れ
もし 数4が 0に 等しい
ならば
「置けません。」を 表示し
もう一度
つぎに
盤表示
指す 数3に 入れ
数3を 8で 割った余りを 数2に 入れ
数3を 8で 割り 10を 掛けて 数2を 加えて 10を 加えて 数3に 入れ
数4を 数値入力し
数3を 数値表示し 改行し
盤表示
繰り返し
。
実行結果
>osero
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ x o _ _ _
_ _ _ o x _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
あなたは、xです。
YX入力 35
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ x _ _ _
_ _ _ x x _ _ _
_ _ _ o x _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
36
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ x o _ _
_ _ _ x o _ _ _
_ _ _ o x _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
YX入力
以上。