見出し画像

懐かしの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

ここから先は

86字

セール中
¥300
¥ 240

2月26日 22:00 〜 3月12日 22:00

PayPay
PayPayで支払うと抽選でお得

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