Skip to content

youznn/oss_personal_project_phase1

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date
Jun 13, 2024
Jun 5, 2024
Jun 5, 2024
Jun 13, 2024

Repository files navigation

Snake Eater ๐ŸŽฎ๐Ÿ๐ŸŽ

๋ณธ ๊ฒŒ์ž„์€ ์„ฑ๊ท ๊ด€๋Œ€ํ•™๊ต ์˜คํ”ˆ์†Œ์Šค์†Œํ”„ํŠธ์›จ์–ด ์‹ค์Šต ํ”„๋กœ์ ํŠธ์˜ ์ผํ™˜์œผ๋กœ python๊ณผ pygame ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•œ ๊ฐ„๋‹จํ•œ snake ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. rajatdiptabiswas์˜ snake-pygame์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹นํ•˜๋Š” ์›๋ณธ ์†Œ์Šค๋Š” rajatdiptabiswas/snake-pygame์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„ ๋ชฉํ‘œ

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” snake๐Ÿ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์‚ฌ๊ณผ๐ŸŽ๋ฅผ ๋จน์–ด ์ตœ๋Œ€ํ•œ ๋†’์€ ์ ์ˆ˜๋ฅผ ์–ป๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋Š” ์ด ์„ธ ๊ฐœ์˜ ๋ชฉ์ˆจโค๏ธ์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ, ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์กฐ๊ฑด ์ถฉ์กฑ ์‹œ๋งˆ๋‹ค ๋ชฉ์ˆจ์ด ํ•˜๋‚˜์”ฉ ๋‹ณ์•„ ๋ชฉ์ˆจ์ด ๋ชจ๋‘ ์†Œ์ง„๋˜๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

Features

๊ธฐ์กด ๊ธฐ๋Šฅ

  1. snake์˜ ๋จธ๋ฆฌ๊ฐ€ ๋จน์ด์— ๋‹ฟ์„ ๋•Œ๋งˆ๋‹ค ์ ์ˆ˜๊ฐ€ 1์”ฉ ์˜ค๋ฅด๊ณ  ๋ชธํ†ต์ด ๊ธธ์–ด์ง‘๋‹ˆ๋‹ค.
  2. ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์กฐ๊ฑด ์ถฉ์กฑ ์‹œ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
    1. snake์˜ ๋จธ๋ฆฌ๊ฐ€ ๋ฒฝ์— ๋‹ฟ๋Š” ๊ฒฝ์šฐ
    2. snake์˜ ๋จธ๋ฆฌ๊ฐ€ ์ž์‹ ์˜ ๋ชธํ†ต์— ๋‹ฟ๋Š” ๊ฒฝ์šฐ

์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  1. ์‹œ์ž‘ ์Šคํฌ๋ฆฐ ๊ตฌํ˜„

    • ํ”Œ๋ ˆ์ด์–ด๋Š” ์‹œ์ž‘ ์ „ EASY, MEDIUM, HARD, IMPOSSIBLE๋กœ ์ด๋ฃจ์–ด์ง„ ๋„ค ๊ฐ€์ง€์˜ ๋‚œ์ด๋„ ์ค‘ ํ•œ ๊ฐ€์ง€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ”Œ๋ ˆ์ด์–ด๋Š” Enter ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ฒŒ์ž„ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

    • ์ด๋ฏธ์ง€ ์ถ”๊ฐ€
      • snake, food, lives์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ์กด pygame์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ์„ ์—์„œ ์ด๋ฏธ์ง€๋กœ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ชฉ์ˆจ ์‹œ์Šคํ…œ
      • ํ”Œ๋ ˆ์ด์–ด๋Š” 3๊ฐœ์˜ ๋ชฉ์ˆจ์„ ๊ฐ€์ง€๋ฉฐ, ๊ฒŒ์ž„์˜ค๋ฒ„ ์กฐ๊ฑด ๋‹ฌ์„ฑ ์‹œ ๋ชฉ์ˆจ์„ ํ•˜๋‚˜์”ฉ ์žƒ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    • snake, food ํฌ๊ธฐ ์กฐ์ •
      • ๊ธฐ์กด snake์™€ food์˜ ๋‘ ๋ฐฐ๋กœ ์‚ฌ์ด์ฆˆ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๊ฐ€์‹œ์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.
  3. ์žฌ์‹œ์ž‘ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

  • ๋ชฉ์ˆจ์„ ๋ชจ๋‘ ์žƒ์„ ๊ฒฝ์šฐ, ์žฌ์‹œ์ž‘์„ ๋ฌป๋Š” ์Šคํฌ๋ฆฐ์œผ๋กœ ์ด๋™ํ•˜์—ฌ Enter ํ‚ค ์ž…๋ ฅ ์‹œ ๊ฒŒ์ž„ ์žฌ์‹œ์ž‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Reference

[1] https://github.com/pygame/pygame "pygame"

[2] https://www.dafont.com/retro-gaming.font "Retro Gaming Font"

[3] https://github.com/rajatdiptabiswas/snake-pygame "snake-pygame"

์‹คํ–‰ ์˜ˆ์‹œ

mygame

์ง€์› OS ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•

์ง€์› OS

OS ์ง€์›์—ฌ๋ถ€
Windows โญ•๏ธ
Linux โญ•๏ธ
Mac โญ•๏ธ

Windows

  1. python 3.12 ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. https://www.python.org/downloads/
  2. windows powershell์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ pygame์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
pip3 install pygame
  1. ์žฌ๋ถ€ํŒ… ์ดํ›„ python3 main.py๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ฒŒ์ž„์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

Linux

ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ๋‹ค์Œ ๊ณผ์ •์„ ์ฐจ๋ก€๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. python 3.12 ์„ค์น˜
sudo apt-get update
sudo apt-get install python3
  1. pip ์„ค์น˜
sudo apt-get install python3-pip
  1. pygame ์„ค์น˜
sudo apt-get install python3-pip
  1. ํ”„๋กœ์ ํŠธ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ python3 main.py๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ฒŒ์ž„์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

Mac OS

ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ๋‹ค์Œ ๊ณผ์ •์„ ์ฐจ๋ก€๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. pygame ์„ค์น˜
 pip3 install pygame
  1. ํ”„๋กœ์ ํŠธ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ python3 main.py๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ฒŒ์ž„์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ์„ค๋ช…

Functions

restart_button()

  • Description: ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์‹œ ์žฌ์‹œ์ž‘ ํ™”๋ฉด์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ Enter ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฒŒ์ž„์„ ์žฌ์‹œ์ž‘ํ•˜๊ณ , ESC ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

game_over(snake_body)

  • Description: ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์กฐ๊ฑด์„ ํ™•์ธํ•˜๊ณ , ๋ชฉ์ˆจ์ด ๋‚จ์•„ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๊ฒŒ์ž„์„ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
    • ๋ชฉ์ˆจ์ด ๋‚จ์•„ ์žˆ์„ ๊ฒฝ์šฐ ๋ฑ€์„ ์ค‘์•™์œผ๋กœ ์ด๋™์‹œํ‚ค๊ณ , ๋ชฉ์ˆจ์ด ๋ชจ๋‘ ์†Œ์ง„๋˜๋ฉด ์žฌ์‹œ์ž‘ ๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

blink_snake(snake_body)

  • Description: ๋ชฉ์ˆจ์ด ์†Œ์ง„๋œ ํ›„ ๋ฑ€์˜ ๋ชธ์„ ๊นœ๋ฐ•์ด๊ฒŒ ํ•˜๋Š” ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • 1์ดˆ ๋™์•ˆ ๋ฑ€์˜ ๋ชธ์„ ๊นœ๋ฐ•์ด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

start_screen()

  • Description: ๊ฒŒ์ž„ ์‹œ์ž‘ ํ™”๋ฉด์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ ๋‚œ์ด๋„๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ , Enter ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

show_score(choice, color, font, size)

  • Description: ํ˜„์žฌ ์ ์ˆ˜๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ ์ˆ˜์™€ ๋‚จ์€ ๋ชฉ์ˆจ(ํ•˜ํŠธ)์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

main()

  • Description: ๊ฒŒ์ž„์˜ ๋ฉ”์ธ ๋กœ์ง์„ ํฌํ•จํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • ๊ฒŒ์ž„ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”, ๋ฑ€๊ณผ ์Œ์‹์˜ ์œ„์น˜ ์„ค์ •, ๊ฒŒ์ž„ ๋ฃจํ”„, ๋ฑ€์˜ ์›€์ง์ž„, ์Œ์‹ ์ƒ์„ฑ, ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์กฐ๊ฑด ๋“ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Varients

  • apple_image, heart_image, snake_head_image, snake_body_image: ๊ฒŒ์ž„์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€๋“ค์„ ๋กœ๋“œํ•˜๊ณ  ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  • font_path: ํฐํŠธ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • difficulty: ๊ฒŒ์ž„์˜ ๋‚œ์ด๋„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 25์ž…๋‹ˆ๋‹ค.

  • frame_size_x, frame_size_y: ๊ฒŒ์ž„ ์ฐฝ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • black, white, yellow, orange, red, green, blue: ๊ฒŒ์ž„์— ์‚ฌ์šฉ๋  ์ƒ‰์ƒ๋“ค์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • score, lives: ์ ์ˆ˜์™€ ๋ชฉ์ˆจ์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์‹œ ๋ชฉ์ˆจ์ด ์ค„์–ด๋“ค๊ณ , ๋ชฉ์ˆจ์ด ๋ชจ๋‘ ์†Œ์ง„๋˜๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

Flow

์ดˆ๊ธฐํ™”

Pygame์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๊ฒŒ์ž„ ์ฐฝ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์™€ ์ƒ‰์ƒ ๋“ฑ์„ ๋กœ๋“œํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ ํ™”๋ฉด

start_screen() ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋‚œ์ด๋„๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒŒ์ž„ ๋ฃจํ”„

main() ํ•จ์ˆ˜์—์„œ ๊ฒŒ์ž„ ๋ฃจํ”„๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋ฑ€์˜ ์œ„์น˜์™€ ์Œ์‹์˜ ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜๊ณ , ๋ฑ€์˜ ์›€์ง์ž„์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์กฐ๊ฑด์„ ํ™•์ธํ•˜๊ณ , ์ ์ˆ˜์™€ ๋ชฉ์ˆจ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ์ž„ ์˜ค๋ฒ„

๋ฑ€์ด ๋ฒฝ์— ๋ถ€๋”ชํžˆ๊ฑฐ๋‚˜ ์ž์‹ ์˜ ๋ชธ๊ณผ ์ถฉ๋Œํ•˜๋ฉด ๊ฒŒ์ž„ ์˜ค๋ฒ„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ชฉ์ˆจ์ด ๋‚จ์•„ ์žˆ์„ ๊ฒฝ์šฐ ๊ฒŒ์ž„์„ ์žฌ์‹œ์ž‘ํ•˜๊ณ , ๋ชฉ์ˆจ์ด ๋ชจ๋‘ ์†Œ์ง„๋˜๋ฉด ์žฌ์‹œ์ž‘ ๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.


TODO

  • ๋ชธ ๊นœ๋ฐ•์ธ ํ›„ ์ด์ „ ์œ„์น˜๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •
  • ์œ ์ € ์ด๋ฆ„ ์ž…๋ ฅ๋ฐ›๊ณ , ๋ช…์˜ˆ์˜ ์ „๋‹น ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ์‚ฌ๊ณผ ๊ฐœ์ˆ˜ ๋Š˜๋ฆฌ๊ธฐ
  • ์ถ”๊ฐ€ ์žฅ์• ๋ฌผ ๋งŒ๋“ค๊ธฐ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages