IT/Java

[Spring Boot] 더지니어스 결합게임

잿호 2023. 10. 9. 05:09

※PC용으로 만들어진 사이트입니다. 모바일에서는 제대로 작동하지 않을 수 있습니다.※

 

결합

 

재호.온라인.한국/combine

- 더지니어스 결합게임 -

     


    업데이트 

    23-10-09 스프링부트로 이식후 배포

    ...

    23-09-22 Spring 개발완료 github 배포

    23-09-20 프론트엔드(jsp) 개발완료

    23-09-19 백엔드 개발완료 (Spring)


    - 추가예정 -

     

    1. 타이머를 추가해 시간안에 얻은 점수를 기록한다.

    1-1. 합은 +1점, 결은 +3점 실패시 -1점을 부여해 점수를 합산하는 기능

    2. 다른 플레이어 들의 최고기록을 보여주는 기능 점수경쟁 가능(데이터베이스 연동)

     


    결합이란?

     

    1. 게임에 사용되는 그림은 도형(○, △, □), 도형의 색(파란색, 빨간색, 노란색), 배경색(흰색, 회색, 검정색)의 세 가지 속성이 각각 다르게 조합된 27장의 그림으로 게임이 진행된다.

     

    - 예시 -


    2. 라운드마다 27장 중 9장의 그림이 공개되며, 플레이어들은 이 되는 3장의 그림을 찾아야 한다.

    3. '합'이란 3가지 속성이 모두 같거나 모두 다른 그림들로 이루어진 3장의 그림을 말한다.

     

    합이 되는 경우
    배경색 모두 같음 (O)
    도형 모두 같음 (O)
    도형 색 모두 다름 (O)
    배경색 모두 다름 (O)
    도형 모두 다름 (O)
    도형 색 모두 다름 (O)

    4. 호명한 그림이 합이 맞을 경우 +1점. 아닐 경우엔 -1점이 된다.

    5. 만약 9장의 그림 안에 더 이상 합이 없다고 판단된다면 '결'을 외칠 수 있다. 이 때 합이 되는 그림이 더 이상 없을 경우, 플레이어는 승점 +3점이 된다.

    6. '결'을 외친 시점에서 합이 되는 그림 조합이 남아있다면 해당 플레이어는 -1점이 된다.


     

    알고리즘

    [배경색] 흰색 = 1, 회색 = 2,  검은색 =3

    [도형색] 노랑 = 1, 빨강 = 2, 파랑 = 3

    [도형] 세모 = 1, 동그라미 = 2, 네모 = 3

     

    합이 되는 경우를 살펴보자

    - 배경색 모두다름 (O) , 도형색 모두다름 (O), 도형 모두같음(O)으로 합이된다. -

     

    위에 경우를 앞에 숫자로 대입해보면 111, 231, 321 이된다.

    각각 요소의 숫자를 더한뒤 3으로 나눈 나머지는 (1+2+3) (1+3+2) (1+1+1) 모두 0이된다. 이를 이용해

    순열 알고리즘을 활용하여 9개의 그림중 3개를 확인하는 모든과정을 거쳐 합이되는 모든 경우를 찾아낸다.


    - 콘솔에는 9의 타일의 고유번호와 합의 모든 답이 나온다. -

     

    - 콘솔의 결과를 통해 보면 이 예제의 정답은 [4,6,9] 결이 된다. -

     


    실행

     

     

    - 실행 예시 -

     


    마무리

    스프링으로 만들어놨었던 결합게임입니다.

    스프링부트를 배운뒤 바로 스프링부트로 이식하고 최적화 후 배포 했습니다.

    다음에는 데이터베이스를 연동해서 점수 기능을 추가해보겠습니다. 감사합니다

    반응형