https://tuesday04.tistory.com/87
방향 전환 수학 이해를 위한 미니 게임
https://github.com/veryyounng/disosaur_game GitHub - veryyounng/disosaur_gameContribute to veryyounng/disosaur_game development by creating an account on GitHub.github.com 💡 제작 계기백준 알고리즘 문제 3190번 - 뱀을 풀던 중,뱀이 방
tuesday04.tistory.com
https://github.com/veryyounng/disosaur_game/tree/c7967c3e65f5fd755cd0fdb10678b6a95776fa98
GitHub - veryyounng/disosaur_game
Contribute to veryyounng/disosaur_game development by creating an account on GitHub.
github.com

기존에 있는 게임에서 방향 전환 기능과 초기화 기능을 추가하였다.
또한, 벽을 랜덤으로 설정하였다.
🧠 방향 전환과 선형대수학
공룡은 매번 1칸씩 이동한다. 이동 방향은 2차원 벡터로 표현된다.
📌 방향 벡터 정의
| ⬆️ 위 | [0, -1] |
| ⬇️ 아래 | [0, 1] |
| ⬅️ 왼쪽 | [-1, 0] |
| ➡️ 오른쪽 | [1, 0] |
// JavaScript 방향 변경 요청
fetch('/api/change_direction', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ direction: 'right' }),
});
# Python FastAPI - 이동 로직
dx, dy = DIRECTION
head_x, head_y = SNAKE[0]
nx, ny = head_x + dx, head_y + dy
이처럼 다음 좌표는 현재 좌표 + 방향 벡터로 계산되며, 이건 선형대수학에서 말하는 벡터 합 그 자체다.
🎯 방향키 UI 구성
방향키는 시각적으로 방향을 쉽게 인식할 수 있도록 2x2 격자 구조로 구성했다.
<div class="direction-buttons">
<button onclick="changeDir('up')">⬆️</button>
<button onclick="changeDir('down')">⬇️</button>
<button onclick="changeDir('left')">⬅️</button>
<button onclick="changeDir('right')">➡️</button>
</div>
현재 위치 벡터 + 방향 벡터 = 다음 위치
# 회전 예시 (90도 우회전 시)
# [0, -1] → [1, 0] → [0, 1] → [-1, 0]
이렇게 방향 벡터 구조를 생각하면서 구현하였다.
'개발로 사고하기' 카테고리의 다른 글
| 경기데이터드림- 경기도 지역서점 데이터 OpenAPI 연동기 (3) | 2025.08.25 |
|---|---|
| 🦖 미니 공룡 게임으로 배우는 방향 벡터 완성 (3) | 2025.08.19 |
| 방향 전환 수학 이해를 위한 미니 게임 (3) | 2025.08.14 |
| Tic Tac Toe 게임- 미니맥스(Minimax) 알고리즘 (2) | 2025.08.13 |
| 행렬을 활용한 Tic Tac Toe 게임- AI와 2인 플레이어 모드 분기 구현 (4) | 2025.08.13 |