Skip to content

[๐Ÿš€ ์‚ฌ์ดํด1 - ๋ฏธ์…˜ (๋ณด๋“œ ์ดˆ๊ธฐํ™” + ๊ธฐ๋ฌผ ์ด๋™)] ์—๋ฒ„ ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#265

Open
Chocoding1 wants to merge 99 commits intowoowacourse:chocoding1from
Chocoding1:step1

Conversation

@Chocoding1
Copy link
Copy Markdown

@Chocoding1 Chocoding1 commented Mar 30, 2026

์ฒดํฌ ๋ฆฌ์ŠคํŠธ

  • ๋ฏธ์…˜์˜ ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”?
  • Gradle test๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต๊ณผํ–ˆ๋‚˜์š”?
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋‚˜์š”?

์–ด๋–ค ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•˜์—ฌ ๋ฆฌ๋ทฐํ•ด์•ผ ํ• ๊นŒ์š”?

1. View์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ static์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ

๋ณ€ํ™˜ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ตณ์ด ์ƒํƒœ๊ฐ€ ์—†๊ณ , ์œ ํ‹ธ๋ฆฌํ‹ฐ์„ฑ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ๋А๊ปด์กŒ์Šต๋‹ˆ๋‹ค.
์ •์ƒ ์ž…๋ ฅ์ด ๋  ๋•Œ๊นŒ์ง€ retryํ•˜๋Š” ActionExecutor๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ, ์ด ๋•Œ์—๋„ OutputView๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฌด์˜๋ฏธํ•˜๋‹ค๊ณ  ๋А๊ปด์กŒ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ํ™•์žฅ์„ฑ ์ธก๋ฉด์„ ์ƒ๊ฐํ•ด์„œ, ๊ฐ์ฒด๋กœ ๋‘๋Š”๊ฒŒ ๋‚˜์€๊ฐ€ ๊ณ ๋ฏผ๋„ ๋ฉ๋‹ˆ๋‹ค... ์ง€๊ธˆ ๊ทœ๋ชจ์—์„œ๋Š” ๊ดœ์ฐฎ์„๊นŒ์š”? ์•„๋‹ˆ๋ฉด ์ง€๊ธˆ ๋ฐ”๋กœ ์ฑ™๊ฒจ์•ผ ํ•  ํ™•์žฅ์„ฑ์ผ๊นŒ์š”?

2. Position ๊ด€๋ฆฌ์— ๋Œ€ํ•ด

Position์€ ์ขŒํ‘œ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด์ด๊ณ , ๊ฐ’ ๊ธฐ๋ฐ˜ ๋น„๊ต๋ฅผ ์œ„ํ•ด equals/hashCode๋ฅผ ์žฌ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ๋Š” ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด์„œ Map์˜ key๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
Position์„ โ€œ๋„๋ฉ”์ธ ๊ฐ’ ๊ฐ์ฒดโ€๋กœ ๋ด๋„ ๋˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ๋„ˆ๋ฌด ๋ฒ”์šฉ์ ์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š”์ง€ ๋ฆฌ๋ทฐ์–ด๋‹˜์˜ ์˜๊ฒฌ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

3. move()์™€ canMove()์˜ ์ฑ…์ž„ ๋ถ„๋ฆฌ์— ๋Œ€ํ•ด

ํ˜„์žฌ ์ฝ”๋“œ๋Š” canMove()๋กœ ๋จผ์ € ์ด๋™ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•œ ๋’ค, ๊ทธ ๋‹ค์Œ move()๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
์ด ๋ฐฉ์‹์€ ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์ด โ€œ์ด๋™ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ๋จผ์ € ํ™•์ธํ•ด์•ผ ํ•œ๋‹คโ€๋Š” ์‚ฌ์‹ค์„ ์•Œ์•„์•ผ ํ•œ๋‹ค๋Š” ์ ์—์„œ ๊ณ ๋ฏผ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
move() ๋‚ด๋ถ€์—์„œ canMove()๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฒ€์ฆ๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ํ•œ ๋ฉ”์„œ๋“œ์— ํ•จ๊ป˜ ๋“ค์–ด๊ฐ€๋ฉด์„œ ์ฑ…์ž„์ด ์„ž์ธ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ €๋Š” ์ง€๊ธˆ์€ ๊ฒ€์ฆ(canMove)๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ(move)์„ ๋ถ„๋ฆฌํ•˜๋Š” ์ชฝ์„ ์„ ํƒํ–ˆ๋Š”๋ฐ, ์ด ๋ถ„๋ฆฌ๊ฐ€ ์ ์ ˆํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

ํŠนํžˆ ์•„๋ž˜ ๊ด€์ ์—์„œ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์ด ๊ฒ€์ฆ ์ˆœ์„œ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๊ดœ์ฐฎ์€์ง€
  • move()๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฒ€์ฆ๊นŒ์ง€ ์ฑ…์ž„์ง€๋Š” ํŽธ์ด ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด์ง€
  • ํ˜„์žฌ์ฒ˜๋Ÿผ canMove()์™€ move()๋ฅผ ๋ถ„๋ฆฌํ–ˆ์„ ๋•Œ ์ฑ…์ž„์ด ๋” ๋ช…ํ™•ํ•ด์ง€๋Š”์ง€

4. ์ƒˆ๋กœ์šด ๊ฐ์ฒด ์ƒ์„ฑ์— ๋Œ€ํ•ด

์ด๋ฒˆ ๊ตฌํ˜„์—์„œ๋Š” ์–ด๋””๊นŒ์ง€ ๊ฐ€๋ณ€์œผ๋กœ ๋‘๊ณ , ์–ด๋””๋ถ€ํ„ฐ ๋ถˆ๋ณ€์œผ๋กœ ๋‘˜์ง€ ๊ณ ๋ฏผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ๋Š” JanggiGame๋งŒ ๊ฐ€๋ณ€ ๊ฐ์ฒด๋กœ ๋‘๊ณ , Turn, Board ๋“ฑ ํ•˜์œ„ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋Š” ์ƒˆ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ถˆ๋ณ€์„ ์˜๋„๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ถ”ํ›„ ๊ธฐ๋ณด ์กฐํšŒ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์œผ๋กœ Turn๋งˆ๋‹ค ๋ณด๋“œํŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ฒŒ ํ•˜๋ ค๊ณ  ์„ค๊ณ„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๋‹ค๋งŒ ์ด๋Ÿฐ ์‹์œผ๋กœ ์„ค๊ณ„ํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐ๊ฐ์˜ Turn ๋‚ด๋ถ€์˜ ๊ธฐ๋ก์ด ์™ธ๋ถ€์—์„œ ๋ฐ”๋€Œ์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

boyekim and others added 30 commits March 25, 2026 16:16
Copy link
Copy Markdown
Member

@Arachneee Arachneee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์•ˆ๋…•ํ•˜์„ธ์š” ์—๋ฒ„!

๋ฆฌ๋ทฐ์–ด ๋ฐฑํ˜ธ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜„

๋ฏธ์…˜ํ•˜๋А๋ผ ๊ณ ์ƒํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„์— ๋Œ€ํ•ด ์ข€ ๋” ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”. ์ฝ”๋ฉ˜ํŠธ ํ™•์ธ๋ถ€ํƒ๋“œ๋ ค์š”~

  1. View์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ static์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ
    ๋ณ€ํ™˜ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ...
    ํ•˜์ง€๋งŒ ํ™•์žฅ์„ฑ ์ธก๋ฉด์„ ์ƒ๊ฐํ•ด์„œ, ๊ฐ์ฒด๋กœ ๋‘๋Š”๊ฒŒ ๋‚˜์€๊ฐ€ ๊ณ ๋ฏผ๋„ ๋ฉ๋‹ˆ๋‹ค... ์ง€๊ธˆ ๊ทœ๋ชจ์—์„œ๋Š” ๊ดœ์ฐฎ์„๊นŒ์š”? ์•„๋‹ˆ๋ฉด ์ง€๊ธˆ ๋ฐ”๋กœ ์ฑ™๊ฒจ์•ผ ํ•  ํ™•์žฅ์„ฑ์ผ๊นŒ์š”?

๊ฐ์ฒด๋กœ ๋‘๋ฉด ์–ด๋–ค ํ™•์žฅ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์„๊นŒ์š”??

  1. Position ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ...
    Position์„ โ€œ๋„๋ฉ”์ธ ๊ฐ’ ๊ฐ์ฒดโ€๋กœ ๋ด๋„ ๋˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ๋„ˆ๋ฌด ๋ฒ”์šฉ์ ์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š”์ง€ ๋ฆฌ๋ทฐ์–ด๋‹˜์˜ ์˜๊ฒฌ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์—๋ฒ„๋Š” ๋„๋ฉ”์ธ์ด ๋ญ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? ๋„๋ฉ”์ธ ๊ฐ’ ๊ฐ์ฒด๋Š” ์™œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ผ๊นŒ์š”? ๊ด€๋ จ ์ฝ”๋ฉ˜ํŠธ๋„ ๋งŽ์ด ๋‚จ๊ฒจ๋†จ์Šต๋‹ˆ๋‹ค!

  1. move()์™€ canMove()์˜ ์ฑ…์ž„ ๋ถ„๋ฆฌ์— ๋Œ€ํ•ด
    ์ €๋Š” ์ง€๊ธˆ์€ ๊ฒ€์ฆ(canMove)๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ(move)์„ ๋ถ„๋ฆฌํ•˜๋Š” ์ชฝ์„ ์„ ํƒํ–ˆ๋Š”๋ฐ, ์ด ๋ถ„๋ฆฌ๊ฐ€ ์ ์ ˆํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์—๋ฒ„๋Š” ์ฑ…์ž„์ด ๋ญ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒ€์ฆ์ด ์—†๋Š”๋ฐ ๊ทธ๊ฑธ ์ฑ…์ž„์ด ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

  1. ์ƒˆ๋กœ์šด ๊ฐ์ฒด ์ƒ์„ฑ์— ๋Œ€ํ•ด
    ์ด๋ฒˆ ๊ตฌํ˜„์—์„œ๋Š” ์–ด๋””๊นŒ์ง€ ๊ฐ€๋ณ€์œผ๋กœ ๋‘๊ณ , ์–ด๋””๋ถ€ํ„ฐ ๋ถˆ๋ณ€์œผ๋กœ ๋‘˜์ง€ ๊ณ ๋ฏผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ...
    ๋‹ค๋งŒ ์ด๋Ÿฐ ์‹์œผ๋กœ ์„ค๊ณ„ํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐ๊ฐ์˜ Turn ๋‚ด๋ถ€์˜ ๊ธฐ๋ก์ด ์™ธ๋ถ€์—์„œ ๋ฐ”๋€Œ์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์—๋ฒ„๋Š” ๊ฐ์ฒด๋ฅผ ์™œ ๋ถˆ๋ณ€์œผ๋กœ ๋‘์…จ๋‚˜์š”? ๊ฐ€๋ณ€ ๊ฐ์ฒด์™€์˜ ์žฅ๋‹จ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”??

@@ -0,0 +1,16 @@
package janggi.domain.piece;

import janggi.domain.Board;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Piece๊ฐ€ Board๋ฅผ ์˜์กดํ•˜๊ณ  Board๋Š” Piece๋ฅผ ์˜์กดํ•˜๊ณ  ์žˆ๋„ค์š”. ์ด๋Ÿฐ ์ˆœํ™˜์ฐธ์กฐ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋ฉด ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์„๊นŒ์š”?

Copy link
Copy Markdown
Author

@Chocoding1 Chocoding1 Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ถ”ํ›„์— Board์˜ ๋ฉ”์„œ๋“œ๋ช…์ด ๋ณ€๊ฒฝ๋˜๋ฉด Piece์—์„œ๋„ ๋ณ€๊ฒฝ์„ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด Board๊ฐ€ ํ•„์š”ํ•œ ๋กœ์ง๋“ค์„ Board๋กœ ์˜ฎ๊ธฐ๊ณ  ๊ทธ ๋กœ์ง์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ Piece๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜ค๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!
๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ ๋กœ์ง์ด ๊น”๋”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์€ ๋“ค์ง€ ์•Š๋Š”๋ฐ์š”, ํ˜น์‹œ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค:)

Comment on lines +86 to +92
private boolean isSamePosition(int startX, int startY, int endX, int endY) {
return startX == endX && startY == endY;
}

private boolean isStraightDirection(int startX, int startY, int endX, int endY) {
return startX == endX || startY == endY;
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ขŒํ‘œ๊ฐ€ ๊ฐ™์€์ง€ ์ง์„ ์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์€ ๋ˆ„๊ตฌ์˜ ์ฑ…์ž„์ผ๊นŒ์š”? ํŒ๋‹จํ•˜๋Š”๋ฐ ์–ด๋–ค ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ณ  ํ•ด๋‹น ์ •๋ณด๋Š” ๋ˆ„๊ฐ€ ์ œ์ผ ์ž˜ ์•Œ๊ณ ์žˆ๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”!

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ขŒํ‘œ ๊ด€๋ จ ์—ฐ์‚ฐ์€ ์ขŒํ‘œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Position์— ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!

Comment on lines +74 to +78
private boolean isSamePosition(int distanceX, int distanceY) {
return distanceX == 0 && distanceY == 0;
}

private boolean isOneStep(int distanceX, int distanceY) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์—ฌ๊ธฐ๋„ ์ด ๋ฉ”์†Œ๋“œ๋Š” ๋ˆ„๊ฐ€ ์ œ์ผ ์ž˜ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”!
Cha์™€ ์ค‘๋ณต๋œ ๋ฉ”์†Œ๋“œ๋„ ์žˆ๋„ค์š”.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ•ด๋‹น ๋กœ์ง๋„ ์ขŒํ‘œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Position ๊ฐ์ฒด์—์„œ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ Position ๊ฐ์ฒด๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค!

.findFirst();
}

private boolean isSamePosition(int distanceX, int distanceY) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto

Comment on lines +64 to +77
private List<MovePath> createPaths() {
if (teamType == TeamType.HAN) {
return List.of(
new MovePath(List.of(Delta.createDown())),
new MovePath(List.of(Delta.createLeft())),
new MovePath(List.of(Delta.createRight()))
);
}
return List.of(
new MovePath(List.of(Delta.createUp())),
new MovePath(List.of(Delta.createLeft())),
new MovePath(List.of(Delta.createRight()))
);
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋งค๋ฒˆ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ํ•„์š”์—†์ด ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†”๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”. ๋‹ค๋ฅธ Piece์˜ ๊ฒฝ๋กœ ๋ฆฌ๋ทฐ๋Š” ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

Copy link
Copy Markdown
Author

@Chocoding1 Chocoding1 Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ง์”€ํ•ด์ฃผ์‹ ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ๊ฐ’์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ๋งค๋ฒˆ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด, ๊ฐ ํด๋ž˜์Šค์— List๋ฅผ ์ƒ์ˆ˜๋กœ ๊ฐ€์ง€๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ MovePath๊ฐ์ฒด๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” PieceType์ด๋ผ๋Š” enum ํด๋ž˜์Šค์˜ ํ•„๋“œ๋กœ List๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊นŒ๋„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ ๊ธฐ๋ฌผ์˜ ์ด๋™ ๋ฐฉ์‹์ด ์ˆ˜์ •๋  ๋•Œ ๋ณ€๊ฒฝํ•ด์•ผํ•  ๊ณณ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋”ฐ์กŒ์„ ๋•Œ, List๋ฅผ enum ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ๋‘๋‚˜, ๊ฐ ๊ธฐ๋ฌผ ํด๋ž˜์Šค์˜ ์ƒ์ˆ˜๋กœ ๋‘๋‚˜ ๋ณ€๊ฒฝํ•  ๊ณณ์˜ ๊ฐœ์ˆ˜๋Š” ์ฐจ์ด๊ฐ€ ์—†๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด, ์ƒ๋Œ€์ ์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•œ ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜น์‹œ ์ œ๊ฐ€ ์ƒ๊ฐํ•œ ๋ฐฉ๋ฒ• ์™ธ์—๋„ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

Comment on lines +122 to +127
private Board createMovedBoard(TeamType currentTeamType, Team updatedCurrentTeam, Team updatedOpponentTeam) {
if (currentTeamType == TeamType.CHU) {
return new Board(updatedCurrentTeam, updatedOpponentTeam);
}
return new Board(updatedOpponentTeam, updatedCurrentTeam);
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Board๋ฅผ ๋ถˆ๋ณ€๊ฐ์ฒด๋กœ ๋งŒ๋“ค๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์žˆ๋‚˜์š”??

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ˜„์žฌ List์„ ํ†ตํ•ด ๊ธฐ๋ณด๋ฅผ ๊ธฐ๋กํ•˜๋„๋ก ์„ค๊ณ„๋ฅผ ํ–ˆ๊ณ , ๊ฐ Turn ์•ˆ์—๋Š” ํ„ด๋งˆ๋‹ค์˜ Board ์ƒํƒœ๊ฐ€ ํ•„๋“œ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
์ด Board๋ฅผ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๋ฉด ๋‹ค๋ฅธ Turn์—์„œ์˜ Board ๋ณ€๊ฒฝ์ด ์ด์ „ Turn์˜ Board์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ฒŒ ๋˜๊ณ , ์ด๋กœ ์ธํ•ด ๊ฐ ํ„ด์—์„œ์˜ Board ์ƒํƒœ๋ฅผ ์˜จ์ „ํžˆ ๋ณด์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

@@ -0,0 +1,52 @@
package janggi.domain;

public class Delta {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delta์™€ Position์€ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ์š”?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delta๋Š” ๋™๋“ฑ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ๋ญ˜๊นŒ์š”?

Copy link
Copy Markdown
Author

@Chocoding1 Chocoding1 Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Position์€ ๊ธฐ๋ฌผ๋“ค์˜ ์œ„์น˜ ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด์ด๊ณ , Delta๋Š” ๋‹จ์œ„ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.
Delta ๊ฐ์ฒด๋ผ๋ฆฌ ๋น„๊ตํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—†์–ด์„œ ๋”ฐ๋กœ ๋™๋“ฑ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ Delta ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€์˜ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ๊ฐ™๋‹ค๊ณ  ๋ณด๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋™๋“ฑ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

Delta๋ฅผ enum ํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ๋™๋“ฑ์„ฑ์„ ๋ณด์žฅํ•˜๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!

์ถ”๊ฐ€๋กœ ๋‚ด๋ถ€ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋™๋“ฑ์„ฑ์„ ํŒ๋‹จํ•œ๋‹ค๋Š” ๋ฉด์—์„œ๋Š” Position๊ณผ Delta์˜ ์ฐจ์ด๋Š” ์—†๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋Š”๋ฐ, ํ˜น์‹œ ํ‹€๋ ธ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Comment on lines +13 to +15
public static Delta createUp() {
return new Delta(0, 1);
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

createUp์„ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค Delta ์ธ์Šคํ„ด์Šค๋ฅผ ๊ณ„์† ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์•ผํ• ๊นŒ์š”?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delta ๊ฐ์ฒด๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— enum ํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ณ„์†ํ•ด์„œ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!

Comment on lines +56 to +66
private int totalDx() {
return path.stream()
.mapToInt(Delta::dx)
.sum();
}

private int totalDy() {
return path.stream()
.mapToInt(Delta::dy)
.sum();
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MovePath๋ณด๋‹ค ๋” ์ž˜ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”!

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MovePath๊ฐ€ List๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ Delta๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋กœ์ง์€ MovePath์—์„œ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š”๋ฐ์š”,
์ œ๊ฐ€ ๋ฏธ์ฒ˜ ์ƒ๊ฐํ•˜์ง€ ๋ชป ํ•œ ๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€ ๋ง์”€ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

Comment on lines +14 to +18
public boolean matches(int dx, int dy) {
return totalDx() == dx && totalDy() == dy;
}

public boolean matchesDirection(int dx, int dy) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto

@Chocoding1
Copy link
Copy Markdown
Author

์•ˆ๋…•ํ•˜์„ธ์š” ์—๋ฒ„!

๋ฆฌ๋ทฐ์–ด ๋ฐฑํ˜ธ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜„

๋ฏธ์…˜ํ•˜๋А๋ผ ๊ณ ์ƒํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„์— ๋Œ€ํ•ด ์ข€ ๋” ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”. ์ฝ”๋ฉ˜ํŠธ ํ™•์ธ๋ถ€ํƒ๋“œ๋ ค์š”~

  1. View์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ static์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ
    ๋ณ€ํ™˜ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ...
    ํ•˜์ง€๋งŒ ํ™•์žฅ์„ฑ ์ธก๋ฉด์„ ์ƒ๊ฐํ•ด์„œ, ๊ฐ์ฒด๋กœ ๋‘๋Š”๊ฒŒ ๋‚˜์€๊ฐ€ ๊ณ ๋ฏผ๋„ ๋ฉ๋‹ˆ๋‹ค... ์ง€๊ธˆ ๊ทœ๋ชจ์—์„œ๋Š” ๊ดœ์ฐฎ์„๊นŒ์š”? ์•„๋‹ˆ๋ฉด ์ง€๊ธˆ ๋ฐ”๋กœ ์ฑ™๊ฒจ์•ผ ํ•  ํ™•์žฅ์„ฑ์ผ๊นŒ์š”?

๊ฐ์ฒด๋กœ ๋‘๋ฉด ์–ด๋–ค ํ™•์žฅ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์„๊นŒ์š”??

View๋ฅผ ๊ฐ์ฒด๋กœ ๋‘๋ฉด ์ถ”ํ›„์— ์ฝ˜์†” ํ™”๋ฉด์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ํ™”๋ฉด์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋งŒ ๊ฐˆ์•„๋ผ์›Œ๋„ ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ static ๋ฉ”์„œ๋“œ์˜ ๊ฒฝ์šฐ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•˜์ง€ ๋ชป ํ•˜๋Š” ๋‹จ์ ์ด ์กด์žฌํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. Position ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ...
    Position์„ โ€œ๋„๋ฉ”์ธ ๊ฐ’ ๊ฐ์ฒดโ€๋กœ ๋ด๋„ ๋˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ๋„ˆ๋ฌด ๋ฒ”์šฉ์ ์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š”์ง€ ๋ฆฌ๋ทฐ์–ด๋‹˜์˜ ์˜๊ฒฌ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์—๋ฒ„๋Š” ๋„๋ฉ”์ธ์ด ๋ญ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? ๋„๋ฉ”์ธ ๊ฐ’ ๊ฐ์ฒด๋Š” ์™œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ผ๊นŒ์š”? ๊ด€๋ จ ์ฝ”๋ฉ˜ํŠธ๋„ ๋งŽ์ด ๋‚จ๊ฒจ๋†จ์Šต๋‹ˆ๋‹ค!

๋„๋ฉ”์ธ์€ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ํŠน์ • ๋ถ„์•ผ์˜ ์ง€์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹จ์ˆœํ•œ ๊ฐ์ฒด์— ๋„๋ฉ”์ธ ์ง€์‹์ด ๋“ค์–ด๊ฐ€๋Š” ์ˆœ๊ฐ„ ๋„๋ฉ”์ธ ๊ฐ์ฒด๊ฐ€ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ฐ’ ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€ ์†์„ฑ์ด ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ๊ฐ์ฒด์ธ ํŠน์„ฑ์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ’ ๊ฐ์ฒด์— ๋„๋ฉ”์ธ ์ง€์‹์ด ๋…น์—ฌ์ง„ ๊ฒƒ์„ ๋„๋ฉ”์ธ ๊ฐ’ ๊ฐ์ฒด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ Position ๊ฐ์ฒด์— ๋…น์—ฌ์ง„ ๋„๋ฉ”์ธ ์ง€์‹์€ "Position์€ ์ขŒํ‘œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด์•ผ ํ•˜๋ฉด ๊ฐ ์ž…๋ ฅ๊ฐ’์€ ์ˆซ์ž์—ฌ์•ผ ํ•œ๋‹ค" ์ •๋„์ž…๋‹ˆ๋‹ค.
Position์ด ๊ผญ ๋‘ ๊ฐœ์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์ ์—์„œ ํ˜„์žฌ Position์— ์žˆ๋Š” ๋„๋ฉ”์ธ ์ง€์‹์€ ๊ทธ ๊ฐ€์น˜๋ฅผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ,
์žฅ๊ธฐ์˜ ์ง์ ‘์ ์ธ ๋„๋ฉ”์ธ ๊ทœ์น™(์ขŒํ‘œ ๋ฒ”์œ„ ๊ฒ€์ฆ)์ด ๋“ค์–ด๊ฐ€ ์žˆ์ง€ ์•Š๋‹ค๋Š” ์ ์—์„œ ๊ณผ์—ฐ ์žฅ๊ธฐ๋งŒ์„ ์œ„ํ•œ Position์ผ๊นŒ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ญ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ƒํƒœ์˜ Position ๊ฐ์ฒด๋ฅผ View๋‹จ์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ณผ์—ฐ ์ ํ•ฉํ•œ ๊ฒƒ์ผ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

  1. move()์™€ canMove()์˜ ์ฑ…์ž„ ๋ถ„๋ฆฌ์— ๋Œ€ํ•ด
    ์ €๋Š” ์ง€๊ธˆ์€ ๊ฒ€์ฆ(canMove)๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ(move)์„ ๋ถ„๋ฆฌํ•˜๋Š” ์ชฝ์„ ์„ ํƒํ–ˆ๋Š”๋ฐ, ์ด ๋ถ„๋ฆฌ๊ฐ€ ์ ์ ˆํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์—๋ฒ„๋Š” ์ฑ…์ž„์ด ๋ญ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒ€์ฆ์ด ์—†๋Š”๋ฐ ๊ทธ๊ฑธ ์ฑ…์ž„์ด ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

canMove๋ฅผ ํ†ตํ•ด ๋ชฉ์ ์ง€ ์ขŒํ‘œ๋ฅผ ์žฌ์ž…๋ ฅ๋ฐ›์„์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค!

  1. ์ƒˆ๋กœ์šด ๊ฐ์ฒด ์ƒ์„ฑ์— ๋Œ€ํ•ด
    ์ด๋ฒˆ ๊ตฌํ˜„์—์„œ๋Š” ์–ด๋””๊นŒ์ง€ ๊ฐ€๋ณ€์œผ๋กœ ๋‘๊ณ , ์–ด๋””๋ถ€ํ„ฐ ๋ถˆ๋ณ€์œผ๋กœ ๋‘˜์ง€ ๊ณ ๋ฏผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ...
    ๋‹ค๋งŒ ์ด๋Ÿฐ ์‹์œผ๋กœ ์„ค๊ณ„ํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐ๊ฐ์˜ Turn ๋‚ด๋ถ€์˜ ๊ธฐ๋ก์ด ์™ธ๋ถ€์—์„œ ๋ฐ”๋€Œ์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์—๋ฒ„๋Š” ๊ฐ์ฒด๋ฅผ ์™œ ๋ถˆ๋ณ€์œผ๋กœ ๋‘์…จ๋‚˜์š”? ๊ฐ€๋ณ€ ๊ฐ์ฒด์™€์˜ ์žฅ๋‹จ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”??

๊ฐ Turn์˜ ์ •๋ณด๋“ค์ด ๋‹ค๋ฅธ Turn์— ์˜ํ•ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋งŒ ์ด๋ ‡๊ฒŒ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ๋‘๋Š” ๊ฒฝ์šฐ ๋งค ํ„ด๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์— ์ง€์žฅ์ด ์žˆ์ง„ ์•Š์„๊นŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ์ฒ˜๋Ÿผ ๊ฐ ํ„ด์ด ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ ์ ˆํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants