SonHyeWon / SnakeGame

GNU General Public License v3.0
0 stars 2 forks source link

뱀의 머리 방향을 바꾸는 조건 수정 #14

Closed mellime closed 4 years ago

mellime commented 4 years ago

문제 파트 및 상황 서술

main.c의 뱀의 머리 방향을 바꾸는 파트를 changeDir 함수로 함수화하던 중, 뱀의 현재 머리 방향이 바꾸고자 하는 방향과 반대 방향(ex. 위와 아래)이 아니라면 머리 방향을 지정한 값으로 변경하도록 설정이 되어 있는 것을 확인했습니다. 기존 snake game의 규칙에 따라 위와 같은 코드가 작성되어 있는 것은 이해했으나, 뱀의 현재 머리 방향이 바꾸고자 하는 방향과 같을 경우에도 값을 변경하는 것은 의미 없이 알고리즘이 돌아가는 경우라고 생각하였습니다. 따라서 뱀의 현재 머리 방향이 바꾸고자 하는 방향과 같거나 반대 방향이 아닐 때 머리 방향 값을 변경하는 것은 어떨지 팀 분들께 의견을 여쭤보고자 합니다.

해당 사항 개선을 위해 본인이 수행했던 내용(없을 시 생략)

changeDir 함수에서 뱀의 현재 머리 방향이 바꾸고자 하는 방향과 반대 방향인지 확인하는 조건문에 바꾸고자 하는 방향과 같은 방향인지 확인하는 조건을 && 연산자를 사용해 추가해보았습니다. 해당 코드가 문제 없이 작동하는 것은 확인하였습니다.

원하는 작동 방식

뱀의 현재 머리 방향과 바꾸고자 하는 방향이 같을 때, 뱀의 머리 방향 값을 바꾸는 알고리즘이 실행되지 않았으면 합니다. 해당 기능 구현이 바람직하다고 생각하신다면 구현 방식에 대한 의견 또한 여쭤보고자 합니다.

  1. changeDir 함수 내 조건문에 조건을 추가하는 방법.

    1번의 경우, 조건문을 함수화할 수도 있습니다.

  2. main 함수의 switch문에서 changeDir 함수 사용 전에 조건문을 추가하는 방법. 위의 두 방법 외 다른 방법에 대한 의견이 있다면 감사히 받겠습니다.
MtNight commented 4 years ago

일단 구현에 문제가 없다면 그렇게 변경하는 것이 좋을 것 같습니다. 방식은 1번으로 함수화해서 만드는 편이 좋을 듯 합니다.

SonHyeWon commented 4 years ago

좋은 의견 감사합니다! 제안해주신 내용으로 변경하는 것에 동의합니다. 함수의 기능 면에서 생각했을때, 제시하신 1번 방법에서 조건문을 함수하는 것에 한 표 드립니다.

mellime commented 4 years ago

의견 감사합니다! 1번 방법으로 구현 후, new 브랜치로 push하여 풀리퀘스트 올리도록 하겠습니다.

hongyj9823 commented 4 years ago

저 또한 1번의 방법이 더 좋은 것 같습니다!! 의견 내주셔서 감사합니다.