[이달의 싸피 2023.09] 일타싸피 - 코드로 포켓볼을 치자!

라니·2023년 9월 26일
4

SSAFYcial

목록 보기
4/16
post-thumbnail

본 포스팅은 SSAFYcial 10기로서 포스팅하는 개인적인 견해임을 밝힙니다. 😄

싸피에는 아주 특별한 시험이 있는데요!
바로바로...
입니당!!


🎮 일타싸피가 뭔데?

일타싸피는 게임으로 알고리즘을 평가하는 SSAFY만의 평가시스템으로!
당구에서 착안한 알고리즘 게임입니다.

포켓볼과 규칙은 비슷하지만, 다른 점은 공이 6개라는 것!
우리팀의 목적구 3개를 먼저 넣는 팀이 승리하는 게임입니다.
희망하는 언어의 코드로 공의 위치와 세기를 계산하고 로직을 구현해야합니다.

일타싸피는 알고리즘 게임이기 전에 평가시스템으로 과목평가라는 것을 잊지 말아야합니다.🤔

그럼 평가는 어떻게할까요?

일타싸피는 Stage Mode(과목평가)와 Competition Mode(전국대항전)으로 크게 두 가지 모드로 나누어집니다.

그중에서 Stage Mode(과목평가)에서는 총 6개의 Stage로 구성되어 있는데요!

Evaluation 버튼을 눌러 Stage 1~6까지 하나의 코드를 제출하여 얻은 점수 중 최고점이 최종 점수로 인정됩니다!

각 스테이지마다 얻을 수 있는 점수가 다르며 모든 스테이지를 클리어 할 경우 100점을 얻을 수 있습니다.💯

저의 경우 100점을 얻어 수학과의 자존심(그런게 있었어?)을 지켰습니다😎


🎱 전략?

친절한 싸피에서는 고등학교 이후로 수학에 손을 놓은 학생들도 과목평가를 통과할 수 있도록 각도를 계산하는 전략을 미리 알려주는데요!

삼각함수와 제2코사인 법칙을 사용한 전략이라 중고등학교 수학을 되짚어보면서 주말동안 학습했다면 어렵지 않게 통과할 수 있었을 것 같습니다😄

저도 기본적으로 삼각함수와 제2코사인 법칙을 이용하여 각도를 구했고 추가적인 전략은 다음과 같습니다.

  1. 홀의 쿠션을 고려하여 홀의 좌표에서 반지름(r)만큼 빼거나 더한 보정 홀을 목적으로 한다.
    만약 주어진 홀의 좌표를 그대로 사용한다면 홀 주변의 쿠션때문에 목표하고자 한 곳에 도달하지 못하고 튕겨져 나올 수 있습니다.

    때문에 6개의 홀 중에 모서리의 4개 홀에 반지름만큼 빼거나 더해 보정된 홀의 좌표를 목표로 하였습니다.

  2. 홀과 흰 색 공의 안쪽에 목적구가 있는지, 바깥쪽에 목적구가 있는지 계산하여 각도를 조정한다.
    앞서 말했던 싸피에서 알려준 제2코사인 법칙을 이용한 각도 구하기는 위와 같이 홀과 흰 색 공의 바깥쪽에 목적구가 있는 상황을 가정합니다.

    이때는 (가)(나)의 각도를 더하면 흰 색 공이 가야할 각도가 구해집니다.
    하지만 위 그림과 같이 목적구가 홀과 흰 색공의 안쪽에 있다면? (가)에서 (나)를 빼주면 되겠죠!

    그럼 목적구가 홀과 흰 색공의 바깥쪽에 있는지, 안쪽에 있는지 어떻게 판단하면 될까요?
    저는 이를 홀과 흰 색공의 각도, 홀과 목적구의 각도를 arccos함수를 이용하여 구하고
    (다)(라) 중에서 (다)가 더 크다면 안 쪽에, (라)가 더 크다면 바깥쪽에 있다고 판단하였습니다.


마치며...

처음으로 객관식, 주관식, 파일 제출형이 아닌 특이한 방식의 평가를 치면서 걱정이 많이 되기도 했습니다.
하지만 걱정했던것보다 어렵지 않았고 시험이후에 반 친구들과 코드로 대결하면서 재미있는 상황이 많이 발생해 오랜만에 깔깔 웃는 시간이 되지 않았나 싶습니다.🤣

1학기엔 일타싸피가 있다면 2학기엔 싸피레이스가 있습니다.😎
이번 일타싸피에선 아쉽게도 팀전인 반 대항전에서 1등을 차지하진 못했지만 2학기 싸피레이스에서는 1등을 거머쥐도록 노력하겠습니다💪

profile
강아지를 좋아합니다🐶

2개의 댓글

comment-user-thumbnail
2023년 9월 26일

이 글을 일타싸피 전에 봤더라면..제 일타싸피 성적도 올랐을텐데 아깝네요ㅠㅠ

1개의 답글