SlideShare a Scribd company logo
1 of 16
비쥬얼 프로그래밍 텀 프로젝트 최종 보고서
- Animal Evolving -
과 목 : 비쥬얼프로그래밍
학 과 : 정보통신공학과
담당교수 : 박동규 교수님
이름 : 20163021 오창석
20163026 이종범
제출일 : 2019. 12. 17.(수)
목차
Animal Evolving
1. 메인 화면
2. 게임 설명 화면
3. 게임 내부 화면
4. 게임 패배시
5. 게임 성공시
1. 메인 화면
설명
Evolving Animals라는 게임의 메인 화면이며 4개의 라디오버튼에 ItemListener를 사용하여
난이도를 조절할 수 있게 하였고 두 개의 JButton에 ActionListener를 사용하여 한 버튼에는
게임이 실행되게 설정 하였고 한 버튼에는 게임 설명창이 나타나도록 설정 하였다.
2. 게임 설명 화면
첫 페이지
두 번째 페이지
설명
메인화면에서 게임설명 버튼을 눌렀을 때 ActionListener를 통해 게임설명 화면을 띄운다. 게임
설명 화면을 띄우면서 두가지 버튼이 나오는데 한 버튼은 다음 페이지로 넘어가는 버튼이며 또
다른 버튼은 다시 대기화면으로 돌아가는 버튼이다. 다음 페이지로 넘어가는 버튼을 누르게 되면
두 번째 그림과 같이 첫 페이지와 비슷하게 이전 페이지로 넘어가는 버튼 하나와 대기화면으로
돌아가는 버튼 하나가 나타 나게 된다.
흐름도
3. 게임 내부 화면
(1) 메인 화면에서 3X3 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시
(2) 메인 화면에서 4X4 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시
(3) 메인 화면에서 5X5 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시
(4) 메인 화면에서 6X6 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시
설명
메인화면에서 누른 라디오버튼에 따라서 난이도가 바뀌는데 이는 ItemListener를 이용하여 게임의
빈 블락 개수를 정하는 변수인 side의 값을 각 라디오 버튼이 값을 입력 받을 때 마다 side = 3,
side = 4, side = 5, side = 6으로 바뀌도록 설정 해 주어서 3X3, 4X4, 5X5, 6X6의 틀을 만들어 낸
것이다.
흐름도
(5) 게임의 구동 원리
게임 화면 들어가면 쥐 그림이 랜덤 블록에 생성
방향키 입력 시 방향키 방향으로 모든 그림 이동 및 쥐 그림 랜덤 블록에 생성
같은 그림이 만날시 두 블록은 합쳐지고 원래의 그림은 다음 단계의 그림으로 바뀜
설명
난이도를 설정 후 게임에 들어오게 된다면 빈 블록중 하나의 블록에 랜덤으로 동물 그림이
담겨있는 배열 중 첫 번째 원소인 쥐가 생성되게 된다. 그리고 블록을 옮기려고 방향키’→’를
입력 한다면 KeyListener를 통하여 블록에 있는 모든 그림을 오른쪽으로 이동하게 하고 화면에
’→’ 방향키를 입력하였다고 나타나게 된다. 블록을 이동시키는 방법은 for문을 통하여 한
방향으로 한 블록씩 계속하여 이동하는데 이동 중에 그림이 들어있는 블록을 만나거나 벽을
만나면 멈춘다. 이때 그림이 들어있는 블록을 만나는 경우에서 같은 그림의 블록을 만나는
경우에는 움직이던 방향으로 한 칸 더 움직여 두 블록이 합쳐지고 다음 배열의 그림을 나타냄과
동시에 점수가 오르지만 만약 다른 그림의 블록을 만나는 경우에는 단순하게 멈추기만 한다.
그렇게 이동을 마치면 또 다시 빈 블록중 하나의 블록에 랜덤으로 쥐의 그림이 생성되게 된다.
흐름도
블록 이동에 관한 흐름도
4. 게임 패배 시
(1) 게임 패배 직전의 상황
설명
이 상황에서는 움직일 수 있는 방향이 ‘→’와 ‘↑’ 밖에 없는데(나머지 방향은 다 찼기 때문에 이동
불가) 이동한다 한들 빈칸에 쥐가 생성되면 그 다음 행동에서 빈 블록 없이 그림이 들어 있는
블록으로 꽉 차기 때문에 움직이지 못하는 상황이 되어 블록을 옮기는 메소드가 작동하지 않게
되면서 게임이 끝나 버리고 만다.
(2) 게임 패배 시 상황
설명
모든 블록이 가득 차고 움직일 수 없는 상태가 되어서 게임이 끝나게 된다면 화면에 이번
게임에서의 점수를 나타내고 만약 그 점수가 신기록, 이때까지의 플레이해서 얻은 점수 중
최고점 이라면 입출력 스트림을 통하여 텍스트파일에 점수를 저장하게 된다. 또 게임이 끝나게
되면 두 개의 버튼이 생성 되는데 다시하기 버튼을 누른다면 같은 난이도로 다시 한번 플레이를
하게 되는 것이며 돌아가기 버튼을 누른다면 처음 메인화면으로 돌아가게 된다
흐름도
5. 게임 승리 시
설명
위 그림과 같이 ‘호랑이’ 그림이 그려진 블록을 두 개 합한다면 게임 승리 화면이 나타나게 되고
게임 패배 화면과 같이 두 개의 버튼이 나타난다. 다시하기 버튼을 누른다면 같은 난이도의
게임으로 다시 플레이 하는 것이고 돌아가기 버튼을 누른다면 메인 화면으로 넘어가게 된다.
흐름도
역할 분담
1. 게임 주제 및 진행 방법 기획 : 오창석
2. 게임 컨셉 구상 및 블록 제작 : 이종범
3. 게임 블록 생성 , 이동 , 승리, 패배 조건 등 핵심 기능 구현 : 오창석
4. 내부 화면 점수, 최고점수 입력 키, 뒤로 가기 버튼 등 구현 : 이종범
5. 시작 화면 난이도 선택, 시작, 설명 버튼 등 시작 화면 구현 : 오창석
6. 게임 승리, 패배 화면 구현 및 다시 하기, 돌아가기 버튼 제작 : 이종범
7. 게임 내 모든 이미지 제작 : 이종범
느낀점
오창석 : 살면서 많은 게임을 접해 왔지만 직접 만들어 보는 경험은 처음이라 신선했었고 수업
시간에 배운 것을 기반으로 게임을 만들어 보니 뿌듯했다. 막상 하기 전에는 뭐 하나 만들수나
있을까 걱정을 많이 했었는데 우여곡절 끝에 이렇게 결과물이 나온것에 대하여 신기했고 코딩을
직접 짜면서 한 문장 입력하는데 오류가 자꾸 나서 계속 고민하면서 힘들었던 적도 있었지만
결국 오류를 해결하고 코드를 한줄 한줄 완성해 가면서 실력도 향상된 것 같아서 기쁘다. 하지만
원래 계획에 있었던 쓰래드를 활용한 블록의 모션을 넣고 싶었는데 제대로 이해하지 못하고
오류를 해결하지 못하여 미구현 한 것이 아쉬었다. 그래도 이번 프로젝트를 통하여 자바 언어에
대해 더 많은 지식을 알게 되었으며 종강 후에도 계속해서 연습하면서 실력을 길러야 겠다..
이종범 : 평소 게임을 할 때 잘 신경 쓰지 않은 UI 디자인이 얼마나 어려운지를 뼈저리게 알게
되어 텀프로젝트를 시작하고, 사람들이 이걸 어떻게 만들었을까 유심히 바라보게 되었습니다.
또한 나중에 앱이나 프로그램을 만들 때에는 그래픽 디자인을 전문으로 하는 사람 1명 쯤을
알아놔야 살기 편하겠다는 생각이 들었습니다. 이클립스로 게임을 만들다보니 비록 3주동안
배워서 못 만들었지만 안드로이드 스튜디오가 이클립스보다 훨씬 좋은 것을 느끼고, 안드로이드
앱 개발에 대해서 배울 생각이 생겼습니다. 아쉬운 점으로는 게임 내에서 블록의 움직임을
쓰레드를 이용하여 다이나믹하게 표현하고 싶었지만 끝내 여러 가지 오류로 인해 구현을 못한
점이 많이 아쉬웠습니다.

More Related Content

What's hot

11.23 밤새지마
11.23 밤새지마11.23 밤새지마
11.23 밤새지마rincho
 
Panel de pon 게임 인터페이스 분석
Panel de pon 게임 인터페이스 분석Panel de pon 게임 인터페이스 분석
Panel de pon 게임 인터페이스 분석Hyunwoo Kim
 
개발자 입장에서 바라본 게임리뷰
개발자 입장에서 바라본 게임리뷰개발자 입장에서 바라본 게임리뷰
개발자 입장에서 바라본 게임리뷰misia85
 
개발자 입장에서 분석해본 게임리뷰
개발자 입장에서 분석해본 게임리뷰개발자 입장에서 분석해본 게임리뷰
개발자 입장에서 분석해본 게임리뷰misia85
 
디지털특강토론 092311박은혜
디지털특강토론 092311박은혜디지털특강토론 092311박은혜
디지털특강토론 092311박은혜eunhye772
 
Lesser tat 20120928
Lesser tat 20120928Lesser tat 20120928
Lesser tat 20120928WONSEOK YI
 
게임디자인원론 디지털게임의정의
게임디자인원론 디지털게임의정의게임디자인원론 디지털게임의정의
게임디자인원론 디지털게임의정의Hyo-nyeong Han
 
캡디(공볼)
캡디(공볼)캡디(공볼)
캡디(공볼)진용 이
 
Wolfenstein New Order - 인터페이스에 대한 소고
Wolfenstein New Order - 인터페이스에 대한 소고Wolfenstein New Order - 인터페이스에 대한 소고
Wolfenstein New Order - 인터페이스에 대한 소고Ki Bin Park
 
SIT_Martial_art_v.01
SIT_Martial_art_v.01SIT_Martial_art_v.01
SIT_Martial_art_v.01Minhyun Cho
 

What's hot (13)

11.23 밤새지마
11.23 밤새지마11.23 밤새지마
11.23 밤새지마
 
Panel de pon 게임 인터페이스 분석
Panel de pon 게임 인터페이스 분석Panel de pon 게임 인터페이스 분석
Panel de pon 게임 인터페이스 분석
 
개발자 입장에서 바라본 게임리뷰
개발자 입장에서 바라본 게임리뷰개발자 입장에서 바라본 게임리뷰
개발자 입장에서 바라본 게임리뷰
 
개발자 입장에서 분석해본 게임리뷰
개발자 입장에서 분석해본 게임리뷰개발자 입장에서 분석해본 게임리뷰
개발자 입장에서 분석해본 게임리뷰
 
디지털특강토론 092311박은혜
디지털특강토론 092311박은혜디지털특강토론 092311박은혜
디지털특강토론 092311박은혜
 
Lesser tat 20120928
Lesser tat 20120928Lesser tat 20120928
Lesser tat 20120928
 
D three menu
D three menuD three menu
D three menu
 
게임디자인원론 디지털게임의정의
게임디자인원론 디지털게임의정의게임디자인원론 디지털게임의정의
게임디자인원론 디지털게임의정의
 
캡디(공볼)
캡디(공볼)캡디(공볼)
캡디(공볼)
 
D sgatch
D sgatchD sgatch
D sgatch
 
Wolfenstein New Order - 인터페이스에 대한 소고
Wolfenstein New Order - 인터페이스에 대한 소고Wolfenstein New Order - 인터페이스에 대한 소고
Wolfenstein New Order - 인터페이스에 대한 소고
 
작업일지
작업일지작업일지
작업일지
 
SIT_Martial_art_v.01
SIT_Martial_art_v.01SIT_Martial_art_v.01
SIT_Martial_art_v.01
 

Similar to Evolving animals

Matlab Gui프로젝트(미로찾기)
Matlab Gui프로젝트(미로찾기)Matlab Gui프로젝트(미로찾기)
Matlab Gui프로젝트(미로찾기)yeon Heo
 
Myosotis(forgot me not) ver2 0609
Myosotis(forgot me not) ver2 0609Myosotis(forgot me not) ver2 0609
Myosotis(forgot me not) ver2 0609uhreungdu
 
지켜라! 지하철 제안서
지켜라! 지하철 제안서지켜라! 지하철 제안서
지켜라! 지하철 제안서Kenny Kim
 
NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지Daehoon Han
 
고급 C 최종 계획서.pptx
고급 C 최종 계획서.pptx고급 C 최종 계획서.pptx
고급 C 최종 계획서.pptxssuserdcf92c
 
SNG 미래예측 , Game App
SNG 미래예측 , Game AppSNG 미래예측 , Game App
SNG 미래예측 , Game Appbrokener
 
Unity 3d study #2
Unity 3d study #2Unity 3d study #2
Unity 3d study #2Hyunwoo Kim
 
3주차 기획스터디
3주차 기획스터디3주차 기획스터디
3주차 기획스터디안섭 신
 
IOS vs ANDROID & Game App Review
IOS vs ANDROID & Game App ReviewIOS vs ANDROID & Game App Review
IOS vs ANDROID & Game App Review천 세욱
 
3D 도미노 기획서.doc
3D 도미노 기획서.doc3D 도미노 기획서.doc
3D 도미노 기획서.docDanielShin70
 
스페이스 점핑
스페이스 점핑스페이스 점핑
스페이스 점핑Baekseo Choi
 
인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortem인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortemChangHyun Won
 
Super meat boy
Super meat boySuper meat boy
Super meat boy재봉 이
 

Similar to Evolving animals (15)

Matlab Gui프로젝트(미로찾기)
Matlab Gui프로젝트(미로찾기)Matlab Gui프로젝트(미로찾기)
Matlab Gui프로젝트(미로찾기)
 
Myosotis(forgot me not) ver2 0609
Myosotis(forgot me not) ver2 0609Myosotis(forgot me not) ver2 0609
Myosotis(forgot me not) ver2 0609
 
지켜라! 지하철 제안서
지켜라! 지하철 제안서지켜라! 지하철 제안서
지켜라! 지하철 제안서
 
NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지
 
고급 C 최종 계획서.pptx
고급 C 최종 계획서.pptx고급 C 최종 계획서.pptx
고급 C 최종 계획서.pptx
 
SNG 미래예측 , Game App
SNG 미래예측 , Game AppSNG 미래예측 , Game App
SNG 미래예측 , Game App
 
Unity 3d study #2
Unity 3d study #2Unity 3d study #2
Unity 3d study #2
 
Mgf game review-iadam
Mgf game review-iadamMgf game review-iadam
Mgf game review-iadam
 
3주차 기획스터디
3주차 기획스터디3주차 기획스터디
3주차 기획스터디
 
IOS vs ANDROID & Game App Review
IOS vs ANDROID & Game App ReviewIOS vs ANDROID & Game App Review
IOS vs ANDROID & Game App Review
 
3D 도미노 기획서.doc
3D 도미노 기획서.doc3D 도미노 기획서.doc
3D 도미노 기획서.doc
 
스페이스 점핑
스페이스 점핑스페이스 점핑
스페이스 점핑
 
인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortem인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortem
 
Hammer time
Hammer timeHammer time
Hammer time
 
Super meat boy
Super meat boySuper meat boy
Super meat boy
 

Evolving animals

  • 1. 비쥬얼 프로그래밍 텀 프로젝트 최종 보고서 - Animal Evolving - 과 목 : 비쥬얼프로그래밍 학 과 : 정보통신공학과 담당교수 : 박동규 교수님 이름 : 20163021 오창석 20163026 이종범 제출일 : 2019. 12. 17.(수)
  • 2. 목차 Animal Evolving 1. 메인 화면 2. 게임 설명 화면 3. 게임 내부 화면 4. 게임 패배시 5. 게임 성공시
  • 3. 1. 메인 화면 설명 Evolving Animals라는 게임의 메인 화면이며 4개의 라디오버튼에 ItemListener를 사용하여 난이도를 조절할 수 있게 하였고 두 개의 JButton에 ActionListener를 사용하여 한 버튼에는 게임이 실행되게 설정 하였고 한 버튼에는 게임 설명창이 나타나도록 설정 하였다.
  • 4. 2. 게임 설명 화면 첫 페이지 두 번째 페이지 설명 메인화면에서 게임설명 버튼을 눌렀을 때 ActionListener를 통해 게임설명 화면을 띄운다. 게임 설명 화면을 띄우면서 두가지 버튼이 나오는데 한 버튼은 다음 페이지로 넘어가는 버튼이며 또 다른 버튼은 다시 대기화면으로 돌아가는 버튼이다. 다음 페이지로 넘어가는 버튼을 누르게 되면 두 번째 그림과 같이 첫 페이지와 비슷하게 이전 페이지로 넘어가는 버튼 하나와 대기화면으로 돌아가는 버튼 하나가 나타 나게 된다.
  • 6. 3. 게임 내부 화면 (1) 메인 화면에서 3X3 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시 (2) 메인 화면에서 4X4 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시 (3) 메인 화면에서 5X5 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시
  • 7. (4) 메인 화면에서 6X6 라디오 버튼을 누른 후 게임 실행 버튼을 눌렀을 시 설명 메인화면에서 누른 라디오버튼에 따라서 난이도가 바뀌는데 이는 ItemListener를 이용하여 게임의 빈 블락 개수를 정하는 변수인 side의 값을 각 라디오 버튼이 값을 입력 받을 때 마다 side = 3, side = 4, side = 5, side = 6으로 바뀌도록 설정 해 주어서 3X3, 4X4, 5X5, 6X6의 틀을 만들어 낸 것이다. 흐름도
  • 8. (5) 게임의 구동 원리 게임 화면 들어가면 쥐 그림이 랜덤 블록에 생성 방향키 입력 시 방향키 방향으로 모든 그림 이동 및 쥐 그림 랜덤 블록에 생성 같은 그림이 만날시 두 블록은 합쳐지고 원래의 그림은 다음 단계의 그림으로 바뀜
  • 9. 설명 난이도를 설정 후 게임에 들어오게 된다면 빈 블록중 하나의 블록에 랜덤으로 동물 그림이 담겨있는 배열 중 첫 번째 원소인 쥐가 생성되게 된다. 그리고 블록을 옮기려고 방향키’→’를 입력 한다면 KeyListener를 통하여 블록에 있는 모든 그림을 오른쪽으로 이동하게 하고 화면에 ’→’ 방향키를 입력하였다고 나타나게 된다. 블록을 이동시키는 방법은 for문을 통하여 한 방향으로 한 블록씩 계속하여 이동하는데 이동 중에 그림이 들어있는 블록을 만나거나 벽을 만나면 멈춘다. 이때 그림이 들어있는 블록을 만나는 경우에서 같은 그림의 블록을 만나는 경우에는 움직이던 방향으로 한 칸 더 움직여 두 블록이 합쳐지고 다음 배열의 그림을 나타냄과 동시에 점수가 오르지만 만약 다른 그림의 블록을 만나는 경우에는 단순하게 멈추기만 한다. 그렇게 이동을 마치면 또 다시 빈 블록중 하나의 블록에 랜덤으로 쥐의 그림이 생성되게 된다. 흐름도
  • 11.
  • 12. 4. 게임 패배 시 (1) 게임 패배 직전의 상황 설명 이 상황에서는 움직일 수 있는 방향이 ‘→’와 ‘↑’ 밖에 없는데(나머지 방향은 다 찼기 때문에 이동 불가) 이동한다 한들 빈칸에 쥐가 생성되면 그 다음 행동에서 빈 블록 없이 그림이 들어 있는 블록으로 꽉 차기 때문에 움직이지 못하는 상황이 되어 블록을 옮기는 메소드가 작동하지 않게 되면서 게임이 끝나 버리고 만다. (2) 게임 패배 시 상황 설명 모든 블록이 가득 차고 움직일 수 없는 상태가 되어서 게임이 끝나게 된다면 화면에 이번 게임에서의 점수를 나타내고 만약 그 점수가 신기록, 이때까지의 플레이해서 얻은 점수 중 최고점 이라면 입출력 스트림을 통하여 텍스트파일에 점수를 저장하게 된다. 또 게임이 끝나게
  • 13. 되면 두 개의 버튼이 생성 되는데 다시하기 버튼을 누른다면 같은 난이도로 다시 한번 플레이를 하게 되는 것이며 돌아가기 버튼을 누른다면 처음 메인화면으로 돌아가게 된다 흐름도
  • 14. 5. 게임 승리 시 설명 위 그림과 같이 ‘호랑이’ 그림이 그려진 블록을 두 개 합한다면 게임 승리 화면이 나타나게 되고 게임 패배 화면과 같이 두 개의 버튼이 나타난다. 다시하기 버튼을 누른다면 같은 난이도의 게임으로 다시 플레이 하는 것이고 돌아가기 버튼을 누른다면 메인 화면으로 넘어가게 된다. 흐름도
  • 15. 역할 분담 1. 게임 주제 및 진행 방법 기획 : 오창석 2. 게임 컨셉 구상 및 블록 제작 : 이종범 3. 게임 블록 생성 , 이동 , 승리, 패배 조건 등 핵심 기능 구현 : 오창석 4. 내부 화면 점수, 최고점수 입력 키, 뒤로 가기 버튼 등 구현 : 이종범 5. 시작 화면 난이도 선택, 시작, 설명 버튼 등 시작 화면 구현 : 오창석 6. 게임 승리, 패배 화면 구현 및 다시 하기, 돌아가기 버튼 제작 : 이종범 7. 게임 내 모든 이미지 제작 : 이종범
  • 16. 느낀점 오창석 : 살면서 많은 게임을 접해 왔지만 직접 만들어 보는 경험은 처음이라 신선했었고 수업 시간에 배운 것을 기반으로 게임을 만들어 보니 뿌듯했다. 막상 하기 전에는 뭐 하나 만들수나 있을까 걱정을 많이 했었는데 우여곡절 끝에 이렇게 결과물이 나온것에 대하여 신기했고 코딩을 직접 짜면서 한 문장 입력하는데 오류가 자꾸 나서 계속 고민하면서 힘들었던 적도 있었지만 결국 오류를 해결하고 코드를 한줄 한줄 완성해 가면서 실력도 향상된 것 같아서 기쁘다. 하지만 원래 계획에 있었던 쓰래드를 활용한 블록의 모션을 넣고 싶었는데 제대로 이해하지 못하고 오류를 해결하지 못하여 미구현 한 것이 아쉬었다. 그래도 이번 프로젝트를 통하여 자바 언어에 대해 더 많은 지식을 알게 되었으며 종강 후에도 계속해서 연습하면서 실력을 길러야 겠다.. 이종범 : 평소 게임을 할 때 잘 신경 쓰지 않은 UI 디자인이 얼마나 어려운지를 뼈저리게 알게 되어 텀프로젝트를 시작하고, 사람들이 이걸 어떻게 만들었을까 유심히 바라보게 되었습니다. 또한 나중에 앱이나 프로그램을 만들 때에는 그래픽 디자인을 전문으로 하는 사람 1명 쯤을 알아놔야 살기 편하겠다는 생각이 들었습니다. 이클립스로 게임을 만들다보니 비록 3주동안 배워서 못 만들었지만 안드로이드 스튜디오가 이클립스보다 훨씬 좋은 것을 느끼고, 안드로이드 앱 개발에 대해서 배울 생각이 생겼습니다. 아쉬운 점으로는 게임 내에서 블록의 움직임을 쓰레드를 이용하여 다이나믹하게 표현하고 싶었지만 끝내 여러 가지 오류로 인해 구현을 못한 점이 많이 아쉬웠습니다.