#クエスト9 社内の人にSlackで陰口言われてる限界エンジニアがポンコツ野球ゲームを作成した
1.はじめに
タイトルの通り人に笑われ馬鹿にされている限界エンジニアの登場です‼️
詳細を書いてしまうと特定されてしまいますからね、曖昧にしますが、別部門の方とSlackでやりとりした数分後、その方のマネージャーが急に悪口というか馬鹿にするような一言を誤ってやりとりの続きにポン🎵と送信してきました‼️
「あ〜さっきのやりとりのことで、あーでもないこーでもないって話してたんだろうな。それにしてもこんなこと言ってるんだぁ。へぇ〜😃」
1~2分経過してからですかね?静かに削除されてました。🤣
いや〜唐突に気付かされるんですね。正直30超えのおじさんでも陰口とかってあるんだなぁと感心しました。
あーあ、仕事なんかしないでも生きていけるようになれればなぁ〜。
というわけで、野球ゲーム⚾️を作っていきます(笑)
2.開発環境
言語:Python
ライブラリ:Pygame
エディタ:Visual Studio Code
実行環境:Mac mini
3.コード
import pygame
import sys
import random
import math
pygame.init()
WIDTH, HEIGHT = 800, 400
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ホームラン競争")
clock = pygame.time.Clock()
FONT = pygame.font.SysFont(None, 36)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
# ゲーム変数
bat_swinging = False
swing_timer = 0
ball_active = False
ball_x, ball_y = 0, 0
ball_speed_x, ball_speed_y = 0, 0
hit = False
distance = 0
pitch_timer = random.randint(60, 180)
batter_x, batter_y = 100, HEIGHT - 100
pitcher_x, pitcher_y = WIDTH - 100, HEIGHT - 100
def draw_stickman(x, y, face_left=True):
head = pygame.Rect(x - 5, y - 60, 10, 10)
body = pygame.Rect(x - 1, y - 50, 2, 20)
arm1 = pygame.Rect(x - 10, y - 50, 10, 2)
arm2 = pygame.Rect(x, y - 50, 10, 2)
leg1 = pygame.Rect(x - 5, y - 30, 2, 10)
leg2 = pygame.Rect(x + 3, y - 30, 2, 10)
pygame.draw.ellipse(screen, WHITE, head)
pygame.draw.rect(screen, WHITE, body)
pygame.draw.rect(screen, WHITE, arm1)
pygame.draw.rect(screen, WHITE, arm2)
pygame.draw.rect(screen, WHITE, leg1)
pygame.draw.rect(screen, WHITE, leg2)
def draw_bat(x, y, swing_timer):
# バットの回転の中心点(左肩)
origin_x = x - 10
origin_y = y - 50
# スイング角度(構えは 210° → スイング後 90° に向かって反時計回り)
angle_deg = 210 - min(swing_timer, 10) * 12 # 210° → 90°
angle_rad = math.radians(angle_deg)
# バットの長さ
bat_length = 60
# バットの先端位置(回転)
end_x = origin_x + bat_length * math.cos(angle_rad)
end_y = origin_y + bat_length * math.sin(angle_rad)
# バット描画(肩→先端)
pygame.draw.line(screen, WHITE, (origin_x, origin_y), (end_x, end_y), 5)
def show_text(text, x, y):
img = FONT.render(text, True, WHITE)
screen.blit(img, (x, y))
while True:
screen.fill(BLACK)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
bat_swinging = True
swing_timer = 0
if ball_active and batter_x + 30 < ball_x < batter_x + 60 and ball_y < batter_y:
hit = True
ball_speed_x = 8
ball_speed_y = -10
if bat_swinging:
swing_timer += 1
if swing_timer > 10:
bat_swinging = False
swing_timer = 0
draw_stickman(pitcher_x, pitcher_y, face_left=False)
draw_stickman(batter_x, batter_y)
draw_bat(batter_x, batter_y, swing_timer)
pitch_timer -= 1
if pitch_timer == 0 and not ball_active:
ball_x = pitcher_x - 20
ball_y = pitcher_y - 60
ball_speed_x = -6
ball_speed_y = 0
ball_active = True
hit = False
distance = 0
if ball_active:
ball_x += ball_speed_x
ball_y += ball_speed_y
if hit:
ball_speed_y += 0.5 # 重力
distance += ball_speed_x
pygame.draw.circle(screen, WHITE, (int(ball_x), int(ball_y)), 5)
if ball_y > HEIGHT:
ball_active = False
pitch_timer = random.randint(60, 180)
if hit:
show_text(f"飛距離: {int(distance)}m", 50, 50)
pygame.display.flip()
clock.tick(60)4.ChatGPTとの共同開発フロー
自分でもなぜかわからないですが、Pythonで作成してしまいました。
動揺しているんですかね。(笑)
完成動画を見ていただければわかるのですが、思うような野球ゲームは作成できませんでした。投手がボール投げて打者が打ち返すというシンプルなゲームにしたんですが、いかんせん打者が思うような軌道でバットを振ってくれません。いらすとやさんの画像も提供したのですが、どうにもなりませんでした…。


5.最終的に
完成したゲーム🎮です。ホームラン競争と銘打ってますが、メジャーリーガーもびっくり飛距離は決まって432mです🤪。スペースキー連打してないとボールに当たりません…
社内の人にSlackで陰口言われてる限界エンジニアがPythonにリベンジしてポンコツ野球ゲームを作成した。#クエスト9#ChatGPT#chatgpt4o #生成AI #AI#Python #ホームラン競争 pic.twitter.com/KmvTptL4qc
— sabe (@sabe_tech) July 8, 2025
6.結論
いや〜ポンコツゲームですね👍。
人間もポンコツなら作るゲームもポンコツですね‼️
そんな自分から自分へ自分の好きな言葉をプレゼントします。
「笑われていこうじゃねえか 高みを目指せば出す拳の見つからねえケンカもあるもんだ‼️」
なんと記事にしてる方もいました‼️
次回を乞うご期待。
