軽車両を除く

ちゃんとしない・しっかりしない・きちんとしない

ChatGPTにダメ出しをくり返して,作らせたゲーム

import pygame
import random

# 初期化
pygame.init()

# ゲーム画面の設定
width, height = 800, 600
screen = pygame.display.set_mode*1
pygame.display.set_caption("Galaxian")

# 色の設定
black = (0, 0, 0)
white = (255, 255, 255)
yellow = (255, 255, 0)

# プレイヤーの設定
player_width = 50
player_height = 50
player_x = width // 2 - player_width // 2
player_y = height - 2 * player_height
player_speed = 5

# 敵の設定
enemy_width = 50
enemy_height = 50
enemies =

# 弾の設定
bullet_width = 5
bullet_height = 10
bullet_speed = 7
player_bullets =
enemy_bullets = []

# フォントの設定
font = pygame.font.SysFont(None, 55)

# スコアの初期化
score = 0

# ゲームループ
running = True
clock = pygame.time.Clock()

def create_enemy():
    enemy_x = random.randint(0, width - enemy_width)
    enemy_y = random.randint(-50, -10)
    enemy_speed = random.uniform(1, 3)  # ランダムな速度
    return [enemy_x, enemy_y, enemy_speed]

for i in range(5):
    enemies.append(create_enemy())

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 0:
        player_x -= player_speed
    if keys[pygame.K_RIGHT] and player_x < width - player_width:
        player_x += player_speed
    if keys[pygame.K_UP] and player_y > 0:
        player_y -= player_speed
    if keys[pygame.K_DOWN] and player_y < height - player_height:
        player_y += player_speed

    # 弾の発射
    if keys[pygame.K_SPACE]:
        bullet_x = player_x + player_width // 2 - bullet_width // 2
        bullet_y = player_y
        player_bullets.append([bullet_x, bullet_y])

    # 敵の移動
    for enemy in enemies:
        enemy[1] += enemy[2]  # 速度を考慮
        if enemy[1] > height:
            enemies.remove(enemy)
            enemies.append(create_enemy())
            score += 10

        # 敵がランダムで弾を発射
        if random.randint(1, 100) == 1:
            enemy_bullet_x = enemy[0] + enemy_width // 2 - bullet_width // 2
            enemy_bullet_y = enemy[1] + enemy_height
            enemy_bullets.append([enemy_bullet_x, enemy_bullet_y])

    # 弾の移動と当たり判定
    for bullet in player_bullets:
        bullet[1] -= bullet_speed
        if bullet[1] < 0:
            player_bullets.remove(bullet)

        for enemy in enemies:
            if (
                enemy[0] < bullet[0] < enemy[0] + enemy_width
                and enemy[1] < bullet[1] < enemy[1] + enemy_height
            ):
                player_bullets.remove(bullet)
                enemies.remove(enemy)
                score += 100

    # プレイヤーと敵の当たり判定
    for enemy in enemies:
        if (
            player_x < enemy[0] + enemy_width
            and player_x + player_width > enemy[0]
            and player_y < enemy[1] + enemy_height
            and player_y + player_height > enemy[1]
        ):
            running = False

    # 敵の弾の移動と当たり判定
    for bullet in enemy_bullets:
        bullet[1] += bullet_speed
        if bullet[1] > height:
            enemy_bullets.remove(bullet)

        if (
            player_x < bullet[0] < player_x + player_width
            and player_y < bullet[1] < player_y + player_height
        ):
            running = False

    # 描画
    screen.fill(black)

    pygame.draw.rect(screen, white, [player_x, player_y, player_width, player_height])

    for enemy in enemies:
        pygame.draw.rect(screen, yellow, [enemy[0], enemy[1], enemy_width, enemy_height])

    for bullet in player_bullets:
        pygame.draw.rect(screen, white, [bullet[0], bullet[1], bullet_width, bullet_height])

    for bullet in enemy_bullets:
        pygame.draw.rect(screen, yellow, [bullet[0], bullet[1], bullet_width, bullet_height])

    # スコア表示
    score_text = font.render("Score: " + str(score), True, white)
    screen.blit(score_text, [10, 10])

    # ゲーム終了条件の判定
    if not enemies:
        win_text = font.render("YOU WIN!", True, white)
        screen.blit(win_text, [width // 2 - 100, height // 2])
        pygame.display.flip()
        pygame.time.delay(2000)  # 2秒間待機
        running = False
    elif not running:
        game_over_text = font.render("GAME OVER", True, white)
        screen.blit(game_over_text, [width // 2 - 120, height // 2])
        pygame.display.flip()
        pygame.time.delay(2000)  # 2秒間待機

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

*1:width, height

おのがこゝろの慰めと知れ

 帰ろうと駐車場に出たら,同僚Aさんの左前輪がペシャンコになっているのを発見。さーどっち?

  A:見なかったことにして帰宅
  B:パンクを知らせてスペアタイヤへのはきかえを手伝う

 もちろんB。さっさっと慣れた手つきでナットを緩め,ジャッキアップしてからナットを外し,パンクタイヤを外して,スペアタイヤを装着,ナットを締めてジャッキを下ろし,ナットを増し締めして,「っじゃ!」と軽く手を挙げ,「お名前は?」と聞かれ「名乗るほどのもんじゃありません」と言い残し,馬にまたがって夕日に消える・・・はずだった。

 どいうわけかナットが…ね,回らない。ナットとホイル穴の間隔が狭くて,車載セットのレンチが入らない,入らない,回せない。それでも,なんとか1個を緩めることに成功。なら,他の3つもいけるはずと,やってみたけど入らない,入らない,入らない。

 そこへ同僚Bさん登場。私の「だめだこりゃ」を聞いて,1番近いガソリンスタンドへ電話する。
 すぐに颯爽とガソリンスタンド店長登場。ナットとホイルの狭い間に入り込むことができる肉厚の薄い高級レンチを入れて,回す,回す。あっという間に,スペアへの交換終了。「2000円くらいですね」と見積もりを言って,パンクタイヤ直すために夕日に消えた。

 情けは人の為ならず,おのがこゝろの慰めと知れ。

行く価値のある授業になっているかな

Aさんが言います。

「子どもに、次の授業どうするの?って聞く先生がいたんですよ。授業には行くべきじゃないっすかあ。子供の状態に合わせてとか、寄り添ってとか言って授業に出ない選択を認めちゃったら、気分次第で授業に出なくなって、わがままを認めることになっちゃいますよね。」

私「ほほう。」

A「ぼくなら、絶対に行かせます。行かないんだったら理由を聞きます。理由を聞いて体調不良を訴えたら、授業に参加できないくらいの体調不良ということで、親に連絡して早退だねって子どもに言います。で、早退させますね。」

私「ほほう。」

A「どうしたって楽な方を選びますよ。それをいちいち認めてったら、自己中心的な子どもになってしまいます。主導権は教師が握っておくべきです。・・・あ、別に矢萩先生を非難してるわけじゃないっすよ。」

私(されてんなー(泣)。

A「授業に行く。行かない場合は、理由を問い詰める。結局、勉強したくないんですよ。問い詰めて、授業には行くもんだと言い続ければ半年くらいで、授業に行くようになりますね。」

私「ほほー。でも、実際、行くのが嫌になる授業ってあるからね。忘れ物してもフォローしてもらえない、そもそも味噌っかす状態で教室にいるのに授業の外に置かれてるとかね。そんな授業だったら行きたくないよねー。その人が行きたくなるような楽しい授業なのかなあ?授業者批判は難しいし、授業についていけないのは自分が悪いからだと思い込んで、授業に参加できなくなっちゃっているかもね。まずは、その授業がその人にとって行くに値するものにするべきなんじゃなーい?」

何もしなくていいんだよ

「なにもしなくていいんだよ。」

 Aさんは、交流授業への参加をやめて支援級で「ものづくり」の授業を始めた。

 授業は「ものづくり」だが、Aさんは「絵を描きたい」と思っていた。

 しかし、「何を描こうか」決まらない。ネットから題材をさがしてみるが、自分でかく気になるものが見つからない。描きたいのに描くものが決まらないのだ。

 それはストレスとなり、イライラの表出が始まった。机乱打、ノート破壊、呻き泣きなど。

 1時間の癇癪が鎮静して、ぐったりしているAさんに冒頭の言葉を話した。「何を描きたいの?」「一緒にさがそう」とかは、AさんにとってはNG。

 ぼーっとしているように見えるAさんに目を閉じることをすすめる。次にイヤマフで耳も閉じることをすすめる。

 視覚、聴覚を遮断したAさんは、20分ほど瞑想状態に入った。

 その後、Aさんは「スポンジボブ」を描いて、この授業を終えた。

学習発表会出ません。

「俺,学習発表会出ません。」
きたー!こういうこと,はっきり言っちゃえる人を目指してきたけど本当に言うようになったよ。どうする?私「そっか。で,なんで?」
「A君が嫌だし,セリフ覚えられないし。」
それって,聞かれたから作り出した理由だよね。聞くだけ無駄だった「出ないのは,クラス発表?」
「はい。」
ひょっとして,リアルの観客前ステージ発表をイメージできないから不安なだけかも「じゃ,当日は登校して裏方の仕事とかやるってのは,あり?」
「それは,できます。」
大勢の前での生演技に不安になっちゃったんだな「まだ本番まで1週間あるから,ゆっくり考えて,月曜日に決めましょう。」

その学力は,幸せにつながっているのか?

 担当が全員を集めて話した。

「10ポイントも平均から落ちています。」

「漢字と計算が弱いです。」

「習熟の時間を作りたいです。」

 分析と今後の取組が提案された。この時点で頭が痛くなってきた。

 「その10ポイントあげたところで,平均でしょ。漢字書けたり,計算できたりするのはいいと思うよ。その学力って,ウチの子の幸せにつながってるの?」と言いたかったが,退勤時刻まで10分。ぶっぱなしたところで,すったもんだできる時間はない。

「朝の時間を使って,やらせましょう!」

 「何をやらせるの?」「どうやらせるの?」「できない子や,学びから逃げる子には何をしてあげたらいいの?」

 担当からは,デジタルドリルや大量印刷した問題集の使用が提案された。

 ま,印刷でもデジタルでも,なんかやらせるでしょ。「できない」「わからない」をフォローしきれるのかな?担任が,個別指導するような話があったけど,可能なのか?それができなから「-10ポイント」なんじゃないか?

 そもそも,学力を向上させようという問題意識は誰が持っているのか?今のところ,教師が勝手に話し合っている。子どもたちは,ぜーんぜん己の学力を向上させたいとは思っていない。平均より低いなんて,知らないし。

 学力向上の主体は子どもたちなのに,教師たちが学力向上させようとしている。余計なお世話だよな,子どもたちにしたら。

 「さあ,君たちの学力を向上させてあげるよ。このプリントを毎朝やって,自分で採点するんだよ。わからなかったり,できなかったりしたら先生に相談してね」なんて言ったら,「うるせー!」って子どもに叱られそう。

「やれば,のびます。たくさんやらせなければなりません!」

 と言うけれど,成果が出るまでの個人差に耐える自信はあるのだろうか?学力向上対策キャンペーンですぐに結果を出す子もいるだろうけど,なかなか結果にならない子もいるだろう。結果が出ない理由は,様々だ。ワーキングメモリー,発達,認知などなどなどなど,いくらでもある。

「最初は,文句を言う保護者もいますが,最終的には,「自分で勉強するようになりました」って感謝してたよ。」

と自慢する声もあった。「自分で勉強する」ようになれば,いいのか。

 この手の話をすると気分悪くなるのは,結局,何を目指しているのかって言うと「NRTの数字を上げる」ことだから。ま,わかりやすいのだろうけど。その数字を足場にしながら,子どもたちをどこに登らせたいのかの話がない。子どもたちにどこに登りたいのか,登りたいと思っているのかさえ聞いていない。

 子どもたちの学力向上を願うなら,主体である子どもたちとよく対話して計画しないとかなあ。

忘れてやりたいんだよ。

 誤嚥性肺炎で入院していた認知症の母が退院して施設に戻った。

 「侵襲的治療は行わない」「自然の成り行きで看取る」という決断を父はした。

「お前はどう思う?」と聞いてくれたけど,同意した。母も同意するだろう。

 施設の相談員と話すと,だいたい2,3週間後らしい。

 実家に戻ってきて,葬儀のことや墓のことを話した。葬儀は花いっぱいの家族葬にしようと決まった。

「墓はつくらない。仏壇もかんたんなやつでいい。

 なるべく早く忘れてやりたいんだよ」

と父。墓や立派な仏壇をつくると,後の人に負担を残すことになるのが嫌なんだそうだ。そして,いつまでも引きずることなく,自由に生きていくのが本当の供養なんじゃないかと話してくれた。

 約20年,母の介護をしてきた父の言葉としては意外だったが,そうかもしれない。

 介護を優先してきたが,やりたいことややるべきことが父にあったのかもしれない。

 身勝手かもしれないが,墓参りよりも,生き生きと生きている自分や子や孫の姿を母に見せたいと父は言う。

 家や資産の継承より,リア充の大切さを教えてもらった。