Skip to content

banosae/Tetris-BlockBusters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

47 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Tetris-BlockBusters

๐ŸŒŸ Table of Contents

๐Ÿงฉ Introduction

LOL(League of Legends)์ด๋ผ๋Š” ๊ฒŒ์ž„๋„ ์ด์ œ ์–ด๋Š๋ง ์ถœ์‹œํ•œ์ง€ 15์ฃผ๋…„์ด ๋˜์–ด ๊ฐ‘๋‹ˆ๋‹ค. ์–ด๋ฆด ์  ์Šคํƒ€ํฌ๋ž˜ํ”„ํŠธ ๋ฐ€๋ฆฌ์™€ ์œ ์ฆˆ๋งต์„ ํ•˜๋˜ ์‹œ์ ˆ์„ ๋– ์˜ฌ๋ฆฌ๋ฉด ์‹ค๋‚ด ํก์—ฐ์ด ๊ฐ€๋Šฅํ•˜๋˜ ๋‹ด๋ฐฐ ์ฐŒ๋“  ํ”ผ์‹œ๋ฐฉ ๋ƒ„์ƒˆ๊ฐ€ ๋– ์˜ค๋ฅด๊ณค ํ•ฉ๋‹ˆ๋‹ค. Tetris๋„ 5060 ์–ด๋ฅด์‹ ๋“ค์—๊ฒ ํ–ฅ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ์ „ ๊ทผ๋ณธ ๋น„๋””์˜ค ๊ฒŒ์ž„ Tetris๋ฅผ java๋กœ ์žฌ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก Basic Tetris Rules

Block move Block rotation

์œ„์™€ ๊ฐ™์ด Tetris๋Š” block๋“ค์„ ์ขŒ, ์šฐ, ์•„๋ž˜๋กœ ์›€์ง์ด๊ณ  ์›€์ง์ด๋Š” ๋™์•ˆ ํšŒ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Remove line Game end

Block๋“ค์„ ์ž˜ ์Œ“์•„์„œ ์™„์„ฑ๋œ ์ค„์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ์ค„์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ƒ๋‹จ๊นŒ์ง€ block๋“ค์ด ์Œ“์ด๊ฒŒ ๋˜๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

โ–ถ How to Play

๊ฒŒ์ž„์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์•„๋ž˜ file์„ ์‹คํ–‰์‹œ์ผœ์ฃผ์„ธ์š”:

./src/main/TetrisGame.java

๐Ÿ›ก๏ธ Overall Code Design

image

Tetris-BlockBusters๋Š” ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ด 3๊ฐœ์˜ package๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Package๋“ค์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด:

  • main: TetrisGame์˜ ๋ฉ”์ธ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” package์ž…๋‹ˆ๋‹ค. main ํ•จ์ˆ˜์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • model: Tetris ๊ฒŒ์ž„์— ํ•„์ˆ˜์ ์ธ ๋ณด๋“œ์™€ ๋ธ”๋ก, ์‚ฌ์šฉ์ž(์ ์ˆ˜, ๋“ฑ์ˆ˜), ๊ทธ๋ฆฌ๊ณ  ๋ฐฐ๊ฒฝ ์Œ์•…์ด๋‚˜ ๊ธ€์”จ์ฒด์— ๊ด€๋ จ๋œ class๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • view: Start, end ๋˜๋Š” ์‹ค์ œ๋กœ game์„ ์ง„ํ–‰ํ• ๋•Œ ํ•„์š”ํ•œ graphic์— ๊ด€๋ จ๋œ class๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿง๐ŸŽฎ Single Play

image

Single mode๋กœ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด UserID์™€ ๋‚œ์ด๋„๋ฅผ ์„ค์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‚œ์ด๋„๋Š” ์ „๋ฐ˜์ ์œผ๋กœ block์ด ๋‚ด๋ ค์˜ค๋Š” ์†๋„์— ๊ด€๋ จ๋˜์–ด ์žˆ๊ณ  ์ด๋ฅผ delay๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚œ์ด๋„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • Easy: ๋ณด์กฐ ๊ฒฉ์ขŒ ์ถ”๊ฐ€ / 500ms
  • Normal: 500ms
  • Hard: 350ms

์ถ”๊ฐ€์ ์œผ๋กœ ๋™์‹œ์— ์—†์• ๋Š” ์ค„์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ์„œ ์ ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. (๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๋™์‹œ์— ๋งŽ์€ ์ค„์„ ์—†์• ๋Š”๊ฒŒ ์ ์ˆ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. :) )

  • 1์ค„: +100์ 
  • 2์ค„: +300์ 
  • 3์ค„: +500์ 
  • 4์ค„: +800์ 

ezgif com-video-to-gif-converter

Single mode ๊ฒŒ์ž„ ์ง„ํ–‰ ์˜ˆ์‹œ ์˜์ƒ์ž…๋‹ˆ๋‹ค.

image

๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ๋‚œ์ด๋„์—์„œ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๋ฐ›์€ Top3 user์˜ ID์™€ ์ ์ˆ˜๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด 3๊ฐ€์ง€๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

  • Retry: ๊ฐ™์€ ๋‚œ์ด๋„์™€ ๊ฐ™์€ User ID๋กœ ๊ฒŒ์ž„์„ ์žฌ์‹คํ–‰
  • New User: - ์ƒˆ๋กœ์šด User ID์™€ ๋‚œ์ด๋„๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์„ค์ •ํ•˜์—ฌ ๊ฒŒ์ž„์„ ์‹คํ–‰
  • Exit: - ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

๐Ÿ‘ซ๐ŸŽฎ Multi Play

image

Multi node๋กœ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ ๋ช…์˜ UserID๋ฅผ ๊ฐ๊ฐ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋–„, ๊ฒŒ์ž„์˜ ๋‚œ์ด๋„๋Š” normal๋กœ ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค.

TetrisGame-MultiMode2024-12-0922-40-48-ezgif com-video-to-gif-converter

Multi mode ๊ฒŒ์ž„ ์ง„ํ–‰ ์˜ˆ์‹œ ์˜์ƒ์ž…๋‹ˆ๋‹ค.

image

๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜๋ฉด "(๋‘ ์œ ์ € ์ค‘ ๋†’์€ ์ ์ˆ˜๋ฅผ ์–ป์€ User ID) wins!" ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‘ User์˜ ์ ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด, Draw๋ผ๋Š” ๋ฌธ๊ตฌ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, single mode์™€ ๋น„์Šทํ•˜๊ฒŒ ์„ธ๊ฐ€์ง€ ์˜ต์…˜์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

  • Retry: - ๊ฐ™์€ User ID๋“ค๋ผ๋ฆฌ ๋‹ค์‹œ ๊ฒŒ์ž„์„ ์ง„ํ–‰
  • New User: - ์ƒˆ๋กœ์šด User ID๋กœ multi mode ๊ฒŒ์ž„ ์ง„ํ–‰
  • Exit: - ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

๐Ÿ”ง Debugging Issues

Tetris-BlockBusters ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ debugging issues๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค:

  • Block spin: Block์„ ํšŒ์ „์‹œํ‚ค๋Š” ๊ฒฝ์šฐ์— block๋“ค์˜ ํ˜•ํƒœ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ํ˜•ํƒœ์˜ ์ค‘์‹ฌ์„ ์ง€์ •ํ•˜๊ณ  ํšŒ์ „์‹œํ‚ค๋Š”๊ฒƒ์— ์–ด๋ ค์›€์ด ์žˆ์–ด ๋ชจ๋“  block๋“ค์˜ 90๋„์”ฉ ํšŒ์ „ํ•œ ์ƒํƒœ๋“ค์„ ๋ชจ๋‘ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Parallel Key Input: Multi mode๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋‘ user๊ฐ€ ๋™์‹œ์— ํ‚ค๋ฅผ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ, ๋™์‹œ์— ์ด๋ค„์ง€์ง€ ์•Š์•„ input์ด ๋ฌด์‹œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋‚˜, ๊ฐ ํ‚ค๊ฐ€ ๋ˆŒ๋ ค ์žˆ๋Š”์ง€๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ณ€์ˆ˜ ๋ฐฐ์—ด ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ๋™์‹œ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“„Program Manual

Manual ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”! โ†’ Manual.pdf

๐ŸŽฅ Demo Video

Single mode์—์„œ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ์‹œ์—ฐํ•œ ์˜์ƒ์••๋‹ˆ๋‹ค. ๋‹ค์Œ ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”! โ†’ Tetris_demoVideo

๐Ÿ’ฌ Conclusion

Tetris๋ผ๋Š” ๊ฒŒ์ž„์ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐ„๋‹จํ•  ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ, ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์šด ๋ถ€๋ถ„๋“ค์ด ๋งŽ์ด ์กด์žฌํ–ˆ๊ณ , ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋‹ˆ ์• ์ •์„ ๊ฐ€์ง€๊ฒŒ๋˜๊ณ  ์• ์ •์„ ๊ฐ€์ง€๊ฒŒ๋˜๋‹ˆ ๋ฐฐ๊ฒฝ์Œ์•…, ์ด๋ฏธ์ง€, ํฐํŠธ๊นŒ์ง€ customizeํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ํฐ scale์˜ ๊ฒŒ์ž„๋“ค์„ ๊ฐœ๋ฐœํ•˜๋Š”๊ฒƒ์—๋„ ์š•์‹ฌ์ด ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋ฐ”์œ ์‹œ๋Œ€๋ฅผ ์‚ด์•„๊ฐ€๊ณ  ์žˆ์ง€๋งŒ, ์ž ๊น์˜ ์—ฌ์œ ๋ฅผ ๊ฐ€์ ธ Tetris-BlockBusters๋ฅผ ํ†ตํ•ด ์ž ๊น์ด๋‚˜๋งˆ ์˜› ์ถ”์–ต์— ์ –์–ด๋“ค์–ด๋ณด๋Š”๊ฑด ์–ด๋– ์‹ ๊ฐ€์š”? (์ด์™•์ด๋ฉด ๋…ธ๋ž˜๋„ ํ‚ค๊ณ  ํ”Œ๋ ˆ์ดํ•ด๋ณด์„ธ์š”! :) )

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages