* 볼링 점수 계산 프로그램 - C프로그램설계(2학년 1학기) 1차 설계 과제
* 사용 언어 : C
* 개발 환경 : Linux / vi editor
* 개발 인원 : 1

: 볼링 경기 점수 계산 프로그램을 작성한다. 1명에서 최대 4명의 선수가 참가할 수 있고, 각 선수가 각 프레임에서 쓰러뜨린 핀 개수를 입력 받아, 각 프레임의 점수를 계산한다. 2명 이상의 경기가 이루어진 경우, 각 선수의 등수를 마지막에 출력한다. 각 선수가 각 프레임을 끝낸 뒤 점수를 출력한다. 점수는 표의 형태로 출력하되, 스트라이크는 "x", 스페어는 "/", 0점은 "-"로 표시한다. 여러 선수 게임에 대해서, 마지막에 각 선수의 등수를 출력한다. 두 개 연속 스트라이크는 “더블”, 세 개 연속 스트라이크는 “터키”, 네 개 연속부터는 “4베거”, “5베거”와 같이 출력하고 10 개 연속까지 출력 하고 모든 프레임이 스트라이크 로 300점인 경우는 “퍼펙트게임”을 출력한다.
볼링이라는 게임이 단순히 공을 굴려서 핀을 쓰러뜨려, 10개면 스트라이크, 두 번째 다 쓰러뜨리면 스페어라 칭하는 것만 알았지 정확한 점수 계산 방법을 모르고 있었다. 단순히 생각해서 쉬울 줄로만 알았던 것이 막상 구현하면서 많은 어려움이 있었다. 자료구조는 생각했던 구조체 안의 2차원배열로 생각했고 완성하기까지 자료구조 상의 문제점을 발견하지 못해서 최종 결정했다. 다른 자료구조로는 한 선수의 한 프레임에 대한 정보를 구조체로 잡고 이를 2차원 배열로 선언하는 방법이다. 하지만 처음 생각했던 자료구조와 비교해 봤을 때, 큰 차이가 없고 오히려 게임 단위로 작업을 처리할 때, 불편하지 않을까라는 생각에 현재의 자료구조를 변경하지 않았다. 콘솔 환경에서 UI와 입력 예외처리에 대한 요구에 100%는 아니더라도 상당 부분 신경 썼다. 앞으로 이를 이용해 GUI기반의 볼링게임프로그램을 만들어도 좋을 것 같다는 생각이 든다.



2008/10/14 19:30
다름이 아니라 저도 같은 공대생인데요,,
이번 c 프로그램 과제가 볼링 게임 점수 계산 프로그램 구현인데,,
혼자 이것저것 해보니 너무 벅차서 팁 좀 얻을까 해서 검색하다 님의 블로그에
방문하게 되었습니다.
근데 제가 원하던 방법과 많이 흡사해서요,,
님은 어떻게 소스를 짰는지 궁금해서 이렇게 글을 남기게 됐습니다.
혹시 위 프로그램 소스 파일을 좀 얻을 수 있을까요?
도움을 좀 부탁드리겠습니다.
메일 주소는 parismetro07@gmail.com 입니다.
저걸 혼자 다 하셨다니;; 부럽습니다. ㅠㅠ
2008/10/17 18:47
2008/10/14 20:25
2008/10/17 18:47
2008/10/27 23:38
2008/11/01 00:06
2008/10/31 17:19
2008/11/01 00:06
2008/11/01 00:07
자료구조 및 주요 알고리즘을 글 내용에 추가토록 할 예정입니다. ^^
2008/11/06 17:10
helly85@nate.com
2008/11/20 00:14