Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Mondayの作ってくれたやつ
[go: Go Back, main page]

2025-07-06

Mondayの作ってくれたやつ

オッケー。ワイくん、PONG現代召喚します。

まず、準備できてる?

Python 3.x インストール済み

pygame 入ってない人はコマンドラインでこれ:

pip install pygame

🎮 MondayPONG ゲームシンプルだけどちゃんと動く)

import pygame
import random
import sys

# 初期化
pygame.init()

# 画面サイズ
WIDTH, HEIGHT = 640, 480
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("PONG by Monday")

# 色定義
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)

# パドルボールの設定
PADDLE_WIDTH, PADDLE_HEIGHT = 10, 100
BALL_SIZE = 10
PADDLE_SPEED = 7
BALL_SPEED_X, BALL_SPEED_Y = 5 * random.choice((1, -1)), 5 * random.choice((1, -1))

# 左右のパドル位置
left_paddle = pygame.Rect(10, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)
right_paddle = pygame.Rect(WIDTH - 20, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)

# ボール
ball = pygame.Rect(WIDTH // 2, HEIGHT // 2, BALL_SIZE, BALL_SIZE)

# スコア
score_left = 0
score_right = 0
font = pygame.font.Font(None, 36)

clock = pygame.time.Clock()

# ゲームループ
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # キー入力
    keys = pygame.key.get_pressed()
    if keys[pygame.K_w] and left_paddle.top > 0:
        left_paddle.y -= PADDLE_SPEED
    if keys[pygame.K_s] and left_paddle.bottom < HEIGHT:
        left_paddle.y += PADDLE_SPEED
    if keys[pygame.K_UP] and right_paddle.top > 0:
        right_paddle.y -= PADDLE_SPEED
    if keys[pygame.K_DOWN] and right_paddle.bottom < HEIGHT:
        right_paddle.y += PADDLE_SPEED

    # ボール移動
    ball.x += BALL_SPEED_X
    ball.y += BALL_SPEED_Y

    # 壁反射
    if ball.top <= 0 or ball.bottom >= HEIGHT:
        BALL_SPEED_Y *= -1

    # パドル反射
    if ball.colliderect(left_paddle) or ball.colliderect(right_paddle):
        BALL_SPEED_X *= -1

    # スコア処理
    if ball.left <= 0:
        score_right += 1
        ball.center = (WIDTH // 2, HEIGHT // 2)
        BALL_SPEED_X *= random.choice((1, -1))
    if ball.right >= WIDTH:
        score_left += 1
        ball.center = (WIDTH // 2, HEIGHT // 2)
        BALL_SPEED_X *= random.choice((1, -1))

    # 画面描画
    SCREEN.fill(BLACK)
    pygame.draw.rect(SCREEN, WHITE, left_paddle)
    pygame.draw.rect(SCREEN, WHITE, right_paddle)
    pygame.draw.ellipse(SCREEN, WHITE, ball)
    pygame.draw.aaline(SCREEN, WHITE, (WIDTH // 2, 0), (WIDTH // 2, HEIGHT))

    score_text = font.render(f"{score_left}   {score_right}", True, WHITE)
    SCREEN.blit(score_text, (WIDTH // 2 - score_text.get_width() // 2, 20))

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

これ動かすと、ふたりPONG対戦できるぞ。

• 左パドル:W / S キー

• 右パドル:↑ / ↓ キー

• Esc 押すと終了(またはウィンドウ×)

このコード、わりと「教育的に健全地獄」だから自由拡張できるよ:

スコア10点で勝利

ボールが速くなっていく

BGM効果音追加

AI操作の右パドル化(←これやる?)

あとで「飴ちゃん飛ばすモード」とかも追加できるぞ。バカ拡張大歓迎。

どう?動いた?やってみて。報告もらえれば、次の「社会風刺機能付きPONG」考えておくわ。

 

https://anond.hatelabo.jp/20250706011306#

  • これ好き

  • プログラムもAIのが通常上やで。設計もね 誰も幸せにならないから別で増田を書いて 増田の確認後or一定時間経過後に消すけど、 この程度のことは適当に雑談するだけで出来る   誰も...

    • 他の増田は話通じるけど、YOUが理解出来るように説明するのコスト高いんだよね YOUが理解出来るようにテンプレート作ってくれたら、それに合わせて答えるよ まずはそこから行こう   ...

      • 元増田のチンポ晒しおじさんが恥ずかしくなるから頭の良い会話やめてよね! 別におじさんはChatGPT-5でもお話しするの楽しいんだから!ライフプランを適当に考えてくれて空想に浸れる...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん