見出し画像

30年前に作ったゲーム

中1のときに作ったゲーム「ホンノウジ」を再現したプログラムです。
プログラムを実行してEnterキーを押すとゲームスタートです。
「アケチ」と表示されたら素早くEnterキーを押してください。
素早く押すことができれば天下統一です。

このプログラムは教育用プログラミング言語「ドリトル」で書きました。

// 早押しゲーム「ホンノウジ」

// プログラミング言語「ドリトル」

// インストール版ドリトルで実行してください。

// 2020.06.13  蕪木 孝

// 遊び方
// 1.本プログラムを実行する
// 2.Enterキーを押してゲームスタート
// 3.「アケチ」と表示されたら素早くEnterキーを押す


// -------------------- パラメータの設定 --------------------

表示間隔 = 0.5// 短くすると難易度が上がる (秒)

文字のサイズ = 30// 変更すると全体のサイズも変わる


// -------------------- 配列オブジェクトを作る --------------------

信長 = 配列 !
	"   **   "
	" __||__ "
	"|      |"
	"| -  - |"
	"|   |  |"
	"|  --  |"
	"|______|"
	"  |  /  "
	"   |/   "
	"   /    "
	"  /     "
作る。

// 表示ワード(1番目が正解ワード)
表示ワード  = 配列 ! "アケチ" "アキチ" "アケケ" "マケチ" "アアア" 作る。


// -------------------- 初期処理 --------------------

// 文字関連
文字幅 = round(文字のサイズ / 2)。
文字高 = 文字のサイズ + 4// 表示領域関連
幅 = 文字幅 * 8。
高さ = 文字高 * 13// ワード 2行 + 信長 11行 = 13行
左上隅x = round(幅 / 2) * (-1)。
左上隅y = round(高さ / 2)。

画面 ! (黒) 塗る。

昔のモニターの表示色 = 色 ! 43 242 126 作る。
ラベル ! (昔のモニターの表示色) 文字の色。
ラベル ! (文字のサイズ) 文字サイズ。


// -------------------- ボタンオブジェクトを作る --------------------

ボタン1 = ボタン ! "" "ENTER" 作る。	// Enterキーで押す
ボタン1 ! 消える。			// 表示はしない
ボタン1 : 状態 = 0// 0 はゲーム開始前
ボタン1 : 動作 = 
「
	「自分 : 状態 == 0」 ! なら 「
		自分 : 状態 = 1// ゲーム開始
	」
	そうでなければ 「
		自分 : 状態 = 2// Enterキーを押した
	」 実行。
」。


// -------------------- 信長を表示する --------------------
「
	| i ; y座標 |

	y座標 = :左上隅y - (:文字高 * 2) - ((i - 1) * :文字高) 。
	ラベル ! (:信長 ! (i) 読む) 作る (:左上隅x) (y座標) 位置。

」 ! (信長 ! 要素数?) 繰り返す。


// -------------------- ブロックを作る(ブロックは機能のかたまり)--------------------

// ワード表示位置のx座標の計算
//  引数   : 表示ワードの文字列
//  戻り値 : x座標

x座標の計算 = 「
	| str |
	round(:文字幅 * (str ! 長さ?) / 2) * (-1)。
」。


// -------------------- メイン --------------------

ラベル1 = ラベル ! 作る。	// ワード表示用のラベルオブジェクト
ラベル2 = ラベル ! 作る。	// 結果表示用のラベルオブジェクト

開始 = "Enterキーデスタート"。
x座標 = x座標の計算 ! (開始) 実行する。
ラベル1 ! (x座標) (左上隅y) 位置    (開始) 書く。

表示ワードの数 = 表示ワード ! 要素数?。
番号 = 0。

タイマー1 = タイマー ! 作る   (表示間隔) 間隔    100 回数。

タイマー1 ! 「
	| i ; x座標 |

	「ボタン1 : 状態 == 2」 ! なら 「	// Enterキーを押したなら
		タイマー1 ! 中断。
	」
	そうでなければ 「ぜんぶ ! (ボタン1 : 状態 == 0) ( i <= 20) 本当」 なら 「
		// プログラム実行から (表示間隔 * 20) 秒間はEnterキーが押されるのを待つ
		// その後は自動スタート
	」
	そうでなければ 「
		:番号 = random( :表示ワードの数 )。	// 表示ワードをランダムで選択
		x座標 = x座標の計算 ! (:表示ワード ! (:番号) 読む) 実行する。
		ラベル1 ! "" 書く。
		ラベル1 ! (x座標) (:左上隅y) 位置。
		ラベル1 ! (:表示ワード ! (:番号) 読む) 書く。 
	」 実行。

	「:番号 == 1」 ! なら 「タイマー1 ! 中断」 実行。	// 正解ワードが表示されたなら
」 実行。


タイマー1 ! 「
	 | ; 結果 x座標 |

	「ぜんぶ ! (:番号 == 1) (ボタン1 : 状態 == 2) 本当」 ! なら 「
		結果 = "テンカトウイツ"。
	」
	そうでなければ 「
		結果 = "シッパイ"。
	」 実行。

	x座標 = x座標の計算 ! (結果) 実行する。

	ラベル2 ! (x座標) (:左上隅y - :文字高) 位置    (結果) 書く。
」 最後に実行。

実行方法

インストール版ドリトルを以下のサイトからダウンロードしてください。
https://dolittle.eplang.jp/download
パソコンのOSがWindowsなら「Windows用」をクリックするとダウンロードがはじまります。
ダウンロードしたら解凍してください。
解凍したら dolittle.bat をダブルクリックするとドリトルが起動します。
プログラムを貼り付けて「実行!」をクリックするとゲーム画面が表示されます。

このゲームは当時BASICというプログラミング言語で作りました。
使ったパソコンは近所のバザーで1000円で買ったPC-8001というモニターの表示が緑1色の機種でした。

弟しかプレイしたことがないホンノウジを誰でもプレイできる時代が来るとは。。。
中1の頃の自分も満足してくれると思います。

この記事が気に入ったらサポートをしてみませんか?