
懐かしのBASICプログラムでテニスゲームと奥さんと仲直りしたい
〜3月12日 22:00
BASICは初心者向けのプログラミング言語で、昔からゲーム作成によく使われてきました。ここでは、シンプルなテニスゲーム(Pongのようなもの)を古典的なBASIC風のコードで説明します。わかりやすくするために、QBASICや昔のBASICに似た形式で書きます。
以下は、簡単なテニスゲームのサンプルコードです。画面上でボールが動き、パドルで跳ね返すイメージです。
```basic
10 CLS ' 画面をクリア
20 PRINT "シンプルなテニスゲーム"
30 X = 40 ' ボールのX座標(初期位置)
40 Y = 12 ' ボールのY座標(初期位置)
50 DX = 1 ' ボールのX方向の速度
60 DY = 1 ' ボールのY方向の速度
70 PX = 10 ' パドルのX座標
80 PY = 20 ' パドルのY座標
90 SCORE = 0 ' スコア初期化
100 ' メインループ
110 LOCATE X, Y: PRINT "O" ' ボールを表示
120 LOCATE PX, PY: PRINT "===" ' パドルを表示
130 LOCATE 1, 1: PRINT "SCORE:"; SCORE
140 ' パドルの移動(仮にキー入力で左右に動かす)
150 IF INKEY$ = "a" AND PX > 1 THEN PX = PX - 1
160 IF INKEY$ = "d" AND PX < 75 THEN PX = PX + 1
170 ' ボールの移動
180 X = X + DX
190 Y = Y + DY
200 ' 壁の跳ね返り
210 IF X <= 1 OR X >= 79 THEN DX = -DX
220 IF Y <= 1 THEN DY = -DY
230 ' パドルとの衝突判定
240 IF Y = PY - 1 AND X >= PX AND X <= PX + 3 THEN
250 DY = -DY
260 SCORE = SCORE + 10
270 END IF
280 ' ゲームオーバー判定(ボールが下に落ちた場合)
290 IF Y >= 24 THEN
300 CLS
310 PRINT "ゲームオーバー!スコア:"; SCORE
320 END
330 END IF
340 ' 画面を少し待機(速度調整)
350 FOR I = 1 TO 1000: NEXT I
360 CLS
370 GOTO 100
```
### コードの説明
1. **初期設定 (10-90)**:
- 画面をクリアし、ボールとパドルの初期位置、速度、スコアを設定します。
- ボールは「O」、パドルは「===」で表現します。
2. **メインループ (100-370)**:
- ボールとパドルを表示し、スコアを更新。
- `INKEY$`でキー入力(例: "a"で左、"d"で右)を検知してパドルを動かします。
- ボールが壁やパドルに当たると跳ね返るロジックを入れています。
3. **衝突とゲームオーバー**:
- ボールがパドルに当たると跳ね返り、スコアが加算されます。
- ボールが画面下に落ちるとゲームオーバーになります。
### 注意点
- このコードは古典的なBASIC(例えばQBASIC)を想定しています。現代のBASIC方言(Visual Basicなど)では動作しない場合があります。
- 実際の動作には、BASICインタプリタやエミュレータ(例えばDOSBoxでQBASICを動かす)が必要です。
- グラフィックやサウンドを追加したい場合、BASICのバージョンに応じた命令(`LINE`や`SOUND`など)を使うと良いですが、ここではシンプルにテキストベースで書きました。
ここからが本題
日曜日に奥さんと喧嘩して険悪なムードなのでちょっとベーシックの力を借りて仲直りしたので下記に記します笑
10 CLS
20 PRINT "奥さんへ"
30 PRINT "ごめんね、喧嘩してしまって..."
40 PRINT "君が大好きだよ、いつもそばにいてくれてありがとう"
50 FOR I = 1 TO 5
60 PRINT "<3 "; ' ハートマーク(ちょっとした可愛さ)
70 FOR J = 1 TO 1000: NEXT J ' 少し待機して演出
80 NEXT I
90 PRINT
100 PRINT "仲直りしてくれると嬉しいな..."
110 INPUT "許してくれる? (Y/N)"; ANSWER$
120 IF ANSWER$ = "Y" OR ANSWER$ = "y" THEN
130 PRINT "やった!ありがとう、大好きだよ!"
140 ELSE
150 PRINT "うう...もう少し頑張るね、ごめんね"
160 END IF
ここから先は
2月26日 22:00 〜 3月12日 22:00

この記事が気に入ったらチップで応援してみませんか?