目次
1.やりたいこと
2.やったこと
3.まとめ
1.やりたいこと
石を置いたときに置くことができるのか?を判断させる回路を作成する。
考え方としては、方向別に処理します。
2.やったこと
1)置いた場所の数値化
M5000からの置き場所情報を数値化します。
面倒なのでFOR-NEXT 64個検索ですが、TP製作で行別にした影響で80個検索となりました。
2)白黒手番の数値化
手番側を黒としたときに、リバース対象とはさみ対象を数値化します。
リバース対象=2ならリバースできる。はさみ対象=1があれば挟んでリバースできると判断します。
3)方向で検索前処理
右方向への処理を定義します。
判定する置き場所から右方向に進むので判定場所は+1右となります。
判定結果をいったんリセット処理します。
演算処理をCALLで読出します。
4)右方向にリバース対象があるなし判別
処理に負担がかかる、また、構造化したいのでサブルーチンで処理します。
リバース対象対象カウントをリセットし、最大8個の判別処理をします。
P199では、対象場所が-1以下または盤外にでたら演算しない条件としています。
また、BRAEKは対象がない場合およびはさみ対象を見つけたらP200へジャンプさせます。
5)各方向分の処理を作成します。
右方向は置いた場所から、右に+1、左の場合は-1、上の場合は-10、下の場合は+10、斜めの場合はそれぞれ-9、-11、+9、+11となります。
6)連続処理としてつなぎます。
右の処理、左の処理・・・を連続して行います。
M1000をSETしたら、実行し、右方向の処理へ(P111)ジャンプさせます。
完了したら、、左方向の処理へ移ります。
SET、RSTの順送りシーケンス回路です。
3.まとめ
まずは、ここまでで検索できるような処理を作ってみました。
実際に、リバース処理を実行させると不具合がでますので修正しました。
次は、リバース処理をします。
0コメント