BCDカウンタ、AIソース。


スイッチをbitに見立てて利用する一例です。
四則演算はできません。
足し算なら加算処理+足し算処理のAI
引き算なら減算処理+引き算処理のAI
という組み合わせで更に処理を用意する必要があるでしょうが
メイドイン俺でこれをやらせるのは無駄かも。


不規則な分岐処理を実現したいときの一手段として(多数決を取る演出とか)。
ただ、4通り程度の分岐ならわざわざカウンターを使わず
スイッチで論理組む方がスマートだと思ったです。


メイドイン俺】BCDカウンター(加算動作)、ソースコード。【俺AI】

「ぶったい」、「アニメ」「AI」は定義してるもののみを記載してます。
あえて記載してる未定義状態のものは × として表記してます。
「アニメ」のコマ[n]以降の ”” の中身は文字データではなく
画像として表示されるものとなってます。


[絵]おえかき
	はいけい
		×

	ぶったい
		ぶったい[1]「SW」
			アニメ[A]「そのまま」
				コマ[1]”SW”

		ぶったい[2]「bit0」
			アニメ[A]「オフ」
				コマ[1]”0”
			アニメ[B]「オン」
				コマ[1]”1”

		ぶったい[3]「bit1」
			アニメ[A]「オフ」
				コマ[1]”0”
			アニメ[B]「オン」
				コマ[1]”1”

		ぶったい[4]「bit2」
			アニメ[A]「オフ」
				コマ[1]”0”
			アニメ[B]「オン」
				コマ[1]”1”

		ぶったい[5]「bit3」
			アニメ[A]「オフ」
				コマ[1]”0”
			アニメ[B]「オン」
				コマ[1]”1”


[音]おとづくり
	フレーズ
		×


[組]くみたて
	しれいメッセージ
		「2しんかさんき 」

	AI
		せいこうじょうけん
			×

		ステージ
			画面レイアウト
			※画面中央に、下記のように「ぶったい」を横並びに配置
			 各ぶったいの配置は、 ばしょはステージ[] にて設定する
			[   「bit3」「bit2」「bit1」「bit0」 「SW」   ]

			ぶったい並び順
				↑手前
				ぶったい[1]「SW」
				ぶったい[2]「bit0」
				ぶったい[3]「bit1」
				ぶったい[4]「bit2」
				ぶったい[5]「bit3」
				↓奥

		ぶったい
			ぶったい[1][AI]「SW」
				はじめ
					アニメはそのまま
					ばしょはステージ[]
				AI[1]
					キッカケ
						自分がタッチされた とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオンにする

				AI[2]
					キッカケ
						自分のスイッチがオンである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオフにする

			ぶったい[2][AI]「bit0」
				はじめ
					アニメはオフ
					ばしょはステージ[]
				AI[1]
					キッカケ
						SWのスイッチがオフ→オン &
						自分のスイッチがオフである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオンにする
						アニメをオンにかえる

				AI[2]
					キッカケ
						SWのスイッチがオフ→オン &
						自分のスイッチがオンである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオフにする
						アニメをオフにかえる

			ぶったい[3][AI]「bit1」
				はじめ
					アニメはオフ
					ばしょはステージ[]
				AI[1]
					キッカケ
						bit0のスイッチがオン→オフ &
						自分のスイッチがオフである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオンにする
						アニメをオンにかえる

				AI[2]
					キッカケ
						bit0のスイッチがオン→オフ &
						自分のスイッチがオンである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオフにする
						アニメをオフにかえる

			ぶったい[4][AI]「bit2」
				はじめ
					アニメはオフ
					ばしょはステージ[]
				AI[1]
					キッカケ
						bit1のスイッチがオン→オフ &
						自分のスイッチがオフである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオンにする
						アニメをオンにかえる

				AI[2]
					キッカケ
						bit1のスイッチがオン→オフ &
						自分のスイッチがオンである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオフにする
						アニメをオフにかえる

			ぶったい[5][AI]「bit3」
				はじめ
					アニメはオフ
					ばしょはステージ[]
				AI[1]
					キッカケ
						bit2のスイッチがオン→オフ &
						自分のスイッチがオフである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオンにする
						アニメをオンにかえる

				AI[2]
					キッカケ
						bit2のスイッチがオン→オフ &
						自分のスイッチがオンである とき
					−−−−−−−−−−−−−
					アクション
						自分のスイッチをオフにする
						アニメをオフにかえる


[設]せってい
	ゲームの名前
		「BCD−INCC」

	ゲームの長さ
		ながい


AIの解説。
ぶったい「SW」でタッチがあるか調べて、タッチがあったらスイッチオン(フラグを立てる)。
スイッチオンのままだと不味いので自身のスイッチがオンになってたらオフに戻す動作も盛り込む。


ぶったい「bit0」はぶったい「SW」がタッチされたら動作。
自身がスイッチオフ(”0”)であればスイッチオン(”1”)に、
スイッチオン(”1”)であればスイッチオフ(”0”)にするだけ。


ぶったい「bit1」は自身の一桁下の位にあたるぶったい「bit0」の動作を見る。
ぶったい「bit0」が”1”→”0”という加算動作の繰り上がりを行ったら
自身がスイッチオフ(”0”)であればスイッチオン(”1”)に、
スイッチオン(”1”)であればスイッチオフ(”0”)にする。


ぶったい「bit2」以降は、ぶったい「bit1」と同じ動作を
自身の一桁下の位に行ってけば良い。
ぶったい15個全部を使えば14bit分(16384通り)の状態が作れる。


が、メイドイン俺でそれをやっても肝心のゲームを組む領域が無くなり本末転倒だったりするので
簡単な算術処理を実現したいときの参考程度とすると良いかと。


あと減算動作の場合、加算動作とは逆に、
ぶったい「bit1」はぶったい「bit0」の繰り下がり動作(”0”→”1”)を見て
自身がオン(”1”)ならオフ(”0”)に、オフ(”0”)ならオン(”1”)としてやるだけ。
ぶったい「bit2」以降は、ぶったい「bit1」と同じ動作を
自身の一桁下の位に行ってけば良い。
(ぶったい「SW」「bit0」のAIは加算動作と同じ。)


ただしこれだけだと加算と減算の共存はできないので
その場合もう一工夫必要だったりするが。