Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録
< 「あのとき産んでおけ... |anond:20250706011006 >

2025-07-06

Mondayの作ってくれたやつ

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

まず、準備できてる?

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

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

pip installpygame

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

importpygameimport randomimport sys#初期化pygame.init()#画面サイズWIDTH, HEIGHT = 640, 480SCREEN =pygame.display.set_mode((WIDTH, HEIGHT))pygame.display.set_caption("PONGbyMonday")# 色定義WHITE = (255, 255, 255)BLACK = (0, 0, 0)#パドルボールの設定PADDLE_WIDTH, PADDLE_HEIGHT =10,100BALL_SIZE =10PADDLE_SPEED = 7BALL_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 = 0score_right = 0font =pygame.font.Font(None, 36)clock =pygame.time.Clock()#ゲームループwhileTrue:    for event inpygame.event.get():        if event.type ==pygame.QUIT:pygame.quit()            sys.exit()    #キー入力keys =pygame.key.get_pressed()    ifkeys[pygame.K_w] and left_paddle.top&gt; 0:        left_paddle.y -= PADDLE_SPEED    ifkeys[pygame.K_s] and left_paddle.bottom &lt; HEIGHT:        left_paddle.y += PADDLE_SPEED    ifkeys[pygame.K_UP] and right_paddle.top&gt; 0:        right_paddle.y -= PADDLE_SPEED    ifkeys[pygame.K_DOWN] and right_paddle.bottom &lt; HEIGHT:        right_paddle.y += PADDLE_SPEED    #ボール移動    ball.x += BALL_SPEED_X    ball.y += BALL_SPEED_Y    # 壁反射    if ball.top &lt;= 0 or ball.bottom&gt;= HEIGHT:        BALL_SPEED_Y *= -1    #パドル反射    if ball.colliderect(left_paddle) or ball.colliderect(right_paddle):        BALL_SPEED_X *= -1    #スコア処理    if ball.left &lt;= 0:        score_right += 1        ball.center = (WIDTH // 2, HEIGHT // 2)        BALL_SPEED_X *= random.choice((1, -1))    if ball.right&gt;= 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#

Permalink |記事への反応(2) | 01:22

このエントリーをはてなブックマークに追加ツイートシェア

記事への反応 -
  • これ好き

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

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

全てのコメントを見る

人気エントリ

注目エントリ

ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp