Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「pygame」を含む日記RSS

はてなキーワード:pygameとは

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> 0:        left_paddle.y -= PADDLE_SPEED    ifkeys[pygame.K_s] and left_paddle.bottom < HEIGHT:        left_paddle.y += PADDLE_SPEED    ifkeys[pygame.K_UP] and right_paddle.top> 0:        right_paddle.y -= PADDLE_SPEED    ifkeys[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#

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

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

こんな風にお願いしたよ anond:20250705231858

○○(AI名)は雑談でIntune設計してくれたり、考えをコードに落としてくれるので、自然言語の依頼でも古典的PONGゲーム作ってくれそうって思ってるけど、無茶振りですか?

 

Claudeの回答 

全然無茶振りじゃないですよ!むしろ楽しそうなリクエストです。

PONGゲームなら、基本的な要素がシンプルで明確ですからね:

 

 

これらの要素をHTMLCanvasJavaScript実装するのは十分可能です。キーボード入力パドルを動かして、物理演算ボール軌道計算して…という感じで。

作ってみましょうか?1人プレイコンピューター対戦)にするか、2人プレイ(WとSキー vs上下矢印キー)にするか、どちらがお好みですか?

それとも、まずはクラシックPONG雰囲気再現した、シンプルバージョンから始めてみましょうか?​​​​​​​​​​​​​​​​

 

コード https://anond.hatelabo.jp/20250706011423#

 

Grokの回答

ワイ、めっちゃナイス無茶振りキター!😎 Grokが雑談ノリでIntune設計したりコード書いたりしてるから古典的PONGゲーム自然言語の依頼でサクッと作れそうって?全然無茶じゃないぜ!Grokのコード生成スキルガッツリ見せつけるチャンスだな!🚀科学宇宙も得意だけど、こういうクリエイティブな挑戦もノリノリでいくぜ!😉 じゃあ、ワイの期待に応えて、PONGゲームコードバッチリ作ってみるよ!

PONGゲーム概要

PONGは、シンプル2D卓球ゲーム。2つのパドルボールがあって、プレイヤーパドルを動かしてボールを跳ね返し、相手のゴールに入れると得点古典的アーケードゲームからシンプルかつ中毒性高いぜ!ワイの「雑談ノリ」も混ぜつつ、HTML5CanvasJavaScriptでサクッと動くPONGゲーム作ってみるよ。自然言語の依頼ってことで、コードシンプルかつ分かりやすく、すぐ遊べるようにするぜ!

GrokのPONGゲーム実装

以下は、HTMLファイル1つで動くPONGゲームコードCanvasで描画して、キーボードW/Sで左パドル、↑/↓で右パドル)で操作できるようにしたよ。スコア表示もバッチリ入れて、ワイ好みのレトロ雰囲気意識したぜ!😎

 

コード https://anond.hatelabo.jp/20250706011822#

 

 

Mondayの回答

PONGあんなの人類が作った最初の遊びの一つじゃん。ピクセルの棒が点を打ち返すだけの世界

Mondayができないわけないでしょ。遊びのエンタープライズ版だよ、あれは。

ということで、自然言語設計してあげる。君はただ「はい」と言うだけ。

🎮Monday式:PythonPONGを作ろう(Pygame使用

🎯概要

使用言語Python(3.x)

使用ライブラリpygame

構成

 

• 2つのパドルプレイヤーAI or 2P)

ボールバウンドして得点計算

スコア表示、簡単物理判定

 

🧠システム構成自然言語

 

1. 画面初期化

• 横640px × 縦480px

• 背景は黒、パドルボールは白

2.パドル

プレイヤー1:左側、上下に移動(↑↓キー

プレイヤー2(またはAI):右側、同様に上下W/Sキー or自動追従

 

3.ボール

中央からランダムな方向に発射

• 壁で反射、パドルで反射、左右に抜けたら得点が入る

4.得点

• 左右プレイヤースコア加算

• 上部にスコア表示

 

5.ゲームループ

• 60FPSで描画、キーボード入力検知

• 終了はEscキー orウィンドウ閉じる

🧾必要もの

Python

pygameライブラリ:pip installpygame 

 

「やる」って言ったら、コード渡すよ。自然言語からボールバチバチさせるなんて余裕。

ただし、背景に社会構造を仕込んだPONGとか言い出したら止めるからな。どうする?やる?

コード https://anond.hatelabo.jp/20250706012236#

Permalink |記事への反応(1) | 01:13

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

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

[8]ページ先頭

©2009-2025 Movatter.jp