mindの研究 その71

# 概要
mindが、謎なので調べてみた。
練習問題やってみた。

# 練習問題
mindで、オセロを書け。


# サンプルコード

```
banは　64個の　変数。

盤表示とは
　数１は　変数
　数２は　変数
　８で　回数指定して
　　回数を　数１に　入れ
　　８で　回数指定して
　　　数１に　８を　掛けて　回数を　加えて　８を　引いて　数２に　入れ
　　　もし　ban(数２)が　２に　等しい
　　　ならば
　　　　「o 」を　表示し
　　　つぎに
　　　もし　ban(数２)が　1に　等しい
　　　ならば
　　　　「_ 」を　表示し
　　　つぎに
　　　もし　ban(数２)が　0に　等しい
　　　ならば
　　　　「x 」を　表示し
　　　つぎに
　　繰り返し
　　改行し
　繰り返し
。

移動可とは　（位置、方向　→　結果）
　数１は　変数
　数２は　変数
　数３は　変数
　数４は　変数
　結果は　変数
　数２に　入れ
　数１に　入れ
　数１を　１を　引き　数１に　入れ
　数１を　８で　割った余りを　数３に　入れ
　数１を　８で　割り　数４に　入れ
　結果に　０を　入れ
　もし　数３が　０に　等しく　かつ　数２が　－９に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数３が　０に　等しく　かつ　数２が　－１に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数３が　０に　等しく　かつ　数２が　７に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数３が　７に　等しく　かつ　数２が　－７に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数３が　７に　等しく　かつ　数２が　１に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数３が　７に　等しく　かつ　数２が　９に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数４が　０に　等しく　かつ　数２が　－９に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数４が　０に　等しく　かつ　数２が　－８に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数４が　０に　等しく　かつ　数２が　－７に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数４が　７に　等しく　かつ　数２が　７に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数４が　７に　等しく　かつ　数２が　８に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　もし　数４が　７に　等しく　かつ　数２が　９に　等しい　ならば
　　結果に　１を　入れ
　つぎに
　結果を　返す
。

テストとは　（位置、色　→　結果）
　数１は　変数
　数２は　変数
　数３は　変数
　数４は　変数
　数５は　変数
　数６は　変数
　数７は　変数
　数８は　変数
　数９は　変数
　結果は　変数
　dirは　８個の　変数
　数２に　入れ
　数１に　入れ
　dir(1)に　－９を　入れ
　dir(2)に　－８を　入れ
　dir(3)に　－７を　入れ
　dir(4)に　－１を　入れ
　dir(5)に　１を　入れ
　dir(6)に　７を　入れ
　dir(7)に　８を　入れ
　dir(8)に　９を　入れ
　結果に　０を　入れ
　数７に　０を　入れ
　もし　数２が　０に　等しい
　ならば
　　数７に　２を　入れ
　つぎに
　もし　ban(数１)が　１に　等しい
　ならば
　　８を　回数指定して
　　　回数を　数３に　入れ
　　　数４に　数１を　入れ
　　　数６に　dir(数３)を　入れ
　　　数８に　０を　入れ
　　　ここから
　　　　数４と　数６で　移動可し　数５に　入れ
　　　　もし　数５が　１に　等しい
　　　　ならば
　　　　　数８に　０を　入れ
　　　　　打ち切り
　　　　つぎに
　　　　数４に　数６を　加え　数４に　入れ
　　　　もし　ban(数４)が　１に　等しい
　　　　ならば
　　　　　数８に　０を　入れ
　　　　　打ち切り
　　　　つぎに
　　　　もし　ban(数４)が　数７に　等しい
　　　　ならば
　　　　　数８に　１を　加え　数８に　入れ
　　　　つぎに
　　　　もし　ban(数４)が　数２に　等しい
　　　　ならば
　　　　　もし　数８が　０より　大きい
　　　　　ならば
　　　　　　打ち切り
　　　　　さもなければ
　　　　　　数８に　０を　入れ
　　　　　　打ち切り
　　　　　つぎに
　　　　つぎに
　　　繰り返す
　　　もし　数８が　０より　大きい
　　　ならば
　　　　結果に　１を　入れ
　　　　数４に　数１を　入れ
　　　　数６に　dir(数３)を　入れ
　　　　数８に　０を　入れ
　　　　ここから
　　　　　数４と　数６で　移動可し　数５に　入れ
　　　　　もし　数５が　１に　等しい
　　　　　ならば
　　　　　　数８に　０を　入れ
　　　　　　打ち切り
　　　　　つぎに
　　　　　ban(数４)に　数２を　入れ
　　　　　数４に　数６を　加え　数４に　入れ
　　　　　もし　ban(数４)が　１に　等しい
　　　　　ならば
　　　　　　数８に　０を　入れ
　　　　　　打ち切り
　　　　　つぎに
　　　　　もし　ban(数４)が　数７に　等しい
　　　　　ならば
　　　　　　数８に　１を　加え　数８に　入れ
　　　　　つぎに
　　　　　もし　ban(数４)が　数２に　等しい
　　　　　ならば
　　　　　　もし　数８が　０より　大きい
　　　　　　ならば
　　　　　　　打ち切り
　　　　　　さもなければ
　　　　　　　数８に　０を　入れ
　　　　　　　打ち切り
　　　　　　つぎに
　　　　　つぎに
　　　　繰り返す
　　　つぎに
　　繰り返す
　つぎに
　結果を　返す
。

指すとは
　数１は　変数
　数２は　変数
　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を　入れ
　６０で　回数指定して
　　suji(回数)を　数１に　入れ
　　数１に　１を　加え　数１に　入れ
　　数１と　２で　テストし　数２に　入れ
　　もし　数２が　０より　大きい
　　ならば
　　　打ち切り
　　つぎに
　繰り返す
　数１を　返す
。

メインとは
　数１は　変数
　数２は　変数
　数３は　変数
　数４は　変数
　６４で　回数指定して
　　ban(回数)に　１を　入れ
　　もし　回数が　２８に　等しい
　　ならば
　　　ban(28)に　０を　入れ
　　つぎに
　　もし　回数が　２９に　等しい
　　ならば
　　　ban(２９)に　２を　入れ
　　つぎに
　　もし　回数が　３６に　等しい
　　ならば
　　　ban(３６)に　２を　入れ
　　つぎに
　　もし　回数が　３７に　等しい
　　ならば
　　　ban(３７)に　０を　入れ
　　つぎに
　繰り返し
　盤表示
　「あなたは、xです。」と　一行表示し
　ここから
　　「YX入力　」と　表示し　数値入力し　数１に　入れ
　　数１を　１０で　割った余りを　数２に　入れ
　　数１を　１０で　割り　８を　掛けて　数２を　加えて　８を　引いて　数１に　入れ
　　数１と　０で　テストし　数４に　入れ
　　もし　数４が　０に　等しい
　　ならば
　　　「置けません。」を　表示し
　　　もう一度
　　つぎに
　　盤表示
　　指す　数３に　入れ
　　数３を　８で　割った余りを　数２に　入れ
　　数３を　８で　割り　１０を　掛けて　数２を　加えて　１０を　加えて　数３に　入れ
　　数４を　数値入力し
　　数３を　数値表示し　改行し
　　盤表示
　繰り返し
。





```

# 実行結果

```
>osero
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ x o _ _ _
_ _ _ o x _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
あなたは、xです。
YX入力　35
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ x _ _ _
_ _ _ x x _ _ _
_ _ _ o x _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _

36
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ x o _ _
_ _ _ x o _ _ _
_ _ _ o x _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
YX入力　
```

以上。