概要
mindが、謎なので調べてみた。
練習問題やってみた。
練習問題
mindで、ブロック崩しを書け。
サンプルコード
場は 308個の 変数。
バイト化とは
変換後は 文字列実体
数1は 変数
数1に 入れ
変換後を クリア
数1を 0FFHと ANDし 変換後に 一文字追加し
変換後を 返すこと
。
メインとは
数1は 変数
数2は 変数
数3は 変数
数4は 変数
数5は 変数
数9は 変数
数10は 変数
数11は 変数
数12は 変数
数13は 変数
結果は 変数
ターゲットは 変数
結果xは 変数
結果yは 変数
-11をつみ
"kernel32"と "GetStdHandle"で API呼出し1 結果に 入れ
エラー?
ならば
エラー文字列を 一行表示し 終り
つぎに
結果を ターゲットに 入れ
結果を 数値表示し 改行し
ターゲットをつみ
結果xの アドレスをつみ
"kernel32"と "GetConsoleMode"で API呼出し2 結果に 入れ
エラー?
ならば
エラー文字列を 一行表示し 終り
つぎに
結果xを 004Hと ORし 結果xに 入れ
結果xを 数値表示し 改行し
ターゲットをつみ
結果xをつみ
"kernel32"と "SetConsoleMode"で API呼出し2 結果に 入れ
エラー?
ならば
エラー文字列を 一行表示し 終り
つぎに
※____________________________
※[ ww ww ww ww ww ww ]
※[ ww ww ww ww ww ww ]
※[ ]
※[ ]
※[ ]
※[ o ]
※[ ]
※[ ]
※[ __ ]
※[__________________________]
28を 回数指定し
回数を 数1に 入れ
場(数1)に 1を 入れ
繰り返し
26を 回数指定し
回数に 281を 加え 数1に 入れ
場(数1)に 1を 入れ
繰り返し
10を 回数指定し
回数に 28を 掛け 1を 加え 数1に 入れ
場(数1)に 2を 入れ
数1に 27を 加え 数1に 入れ
場(数1)に 3を 入れ
繰り返し
6を 回数指定し
回数に 4を 掛け 28を 加え 数1に 入れ
場(数1)に 4を 入れ
数1に 1を 加え 数1に 入れ
場(数1)に 4を 入れ
数1に 27を 加え 数1に 入れ
場(数1)に 4を 入れ
数1に 1を 加え 数1に 入れ
場(数1)に 4を 入れ
繰り返し
場(270)に 5を 入れ
場(271)に 5を 入れ
場(156)に 6を 入れ
数9に 29を 入れ
数10に 270を 入れ
数11に 271を 入れ
数12に 156を 入れ
数13に 0を 入れ
ここから
27を バイト化し 表示し 「[1;1H」を 表示し
27を バイト化し 表示し 「[2J」を 表示し
11を 回数指定し
回数を 数1に 入れ
28を 回数指定し
数1に 28を 掛け 回数を 加え 28を 引き 数2に 入れ
もし 場(数2)が 0に 等しい
ならば
「 」を 表示し
つぎに
もし 場(数2)が 1に 等しい
ならば
「_」を 表示し
つぎに
もし 場(数2)が 2に 等しい
ならば
「[」を 表示し
つぎに
もし 場(数2)が 3に 等しい
ならば
「]」を 表示し
つぎに
もし 場(数2)が 4に 等しい
ならば
「w」を 表示し
つぎに
もし 場(数2)が 5に 等しい
ならば
「-」を 表示し
つぎに
もし 場(数2)が 6に 等しい
ならば
「o」を 表示し
つぎに
繰り返し
改行し
繰り返し
37をつみ
"user32"と "GetKeyState"で API呼出し1 結果に 入れ
エラー?
ならば
「エラー文字列」を 一行表示し 終り
つぎに
結果が 1より 大きい かつ 数10が 254より 大きい
ならば
場(数10)に 0を 入れ
場(数11)に 0を 入れ
数10から 2を 引き 数10に 入れ
数11から 2を 引き 数11に 入れ
場(数10)に 5を 入れ
場(数11)に 5を 入れ
つぎに
39をつみ
"user32"と "GetKeyState"で API呼出し1 結果に 入れ
エラー?
ならば
「エラー文字列」を 一行表示し 終り
つぎに
結果が 1より 大きい かつ 数10が 278より 小さい
ならば
場(数10)に 0を 入れ
場(数11)に 0を 入れ
数10に 2を 加え 数10に 入れ
数11に 2を 加え 数11に 入れ
場(数10)に 5を 入れ
場(数11)に 5を 入れ
つぎに
場(数12)に 数13を 入れ
数12に 数9を 加え 数12に 入れ
数13に 場(数12)を 入れ
場(数12)に 6を 入れ
※+ + -29 -27
※ o
※+ + 27 29
もし 数13が 1に 等しい かつ 数12が 270より 大きい
ならば
打ち切り
つぎに
もし 数13が 1に 等しい
ならば
もし 数9が -29に 等しい
ならば
数9に 27を 入れ
さもなければ
数9に 29を 入れ
つぎに
つぎに
もし 数13が 2に 等しい
ならば
もし 数9が -29に 等しい
ならば
数9に -27を 入れ
さもなければ
数9に 29を 入れ
つぎに
つぎに
もし 数13が 3に 等しい
ならば
もし 数9が -27に 等しい
ならば
数9に -29を 入れ
さもなければ
数9に 27を 入れ
つぎに
つぎに
もし 数13が 4に 等しい
ならば
数13に 0を 入れ
数12から 1を 引き 数3に 入れ
もし 場(数3)が 4に 等しい
ならば
場(数3)に 0を 入れ
つぎに
数12に 1を 加え 数3に 入れ
もし 場(数3)が 4に 等しい
ならば
場(数3)に 0を 入れ
つぎに
つぎに
もし 数12が 数10に 等しい
ならば
もし 数9が 27に 等しい
ならば
数9に -29を 入れ
さもなければ
数9に -27を 入れ
つぎに
つぎに
もし 数12が 数11に 等しい
ならば
もし 数9が 27に 等しい
ならば
数9に -29を 入れ
さもなければ
数9に -27を 入れ
つぎに
つぎに
一秒待つ
繰り返し
「game over」を 一行表示
。
実行結果
____________________________
[ ww ww ww ww ww ww ]
[ ww ww ww ww ww ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ o -- ]
[__________________________]
game over
以上。