SlideShare a Scribd company logo
1 of 15
비쥬얼 프로그래밍 텀 프로젝트 최종 보고서
- 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. 게임 승리 시
설명
위 그림과 같이 ‘호랑이’ 그림이 그려진 블록을 두 개 합한다면 게임 승리 화면이 나타나게 되고
게임 패배 화면과 같이 두 개의 버튼이 나타난다. 다시하기 버튼을 누른다면 같은 난이도의
게임으로 다시 플레이 하는 것이고 돌아가기 버튼을 누른다면 메인 화면으로 넘어가게 된다.
흐름도
느낀점
오창석 : 살면서 많은 게임을 접해 왔지만 직접 만들어 보는 경험은 처음이라 신선했었고 수업
시간에 배운 것을 기반으로 게임을 만들어 보니 뿌듯했다. 막상 하기 전에는 뭐 하나 만들수나
있을까 걱정을 많이 했었는데 우여곡절 끝에 이렇게 결과물이 나온것에 대하여 신기했고 코딩을
직접 짜면서 한 문장 입력하는데 오류가 자꾸 나서 계속 고민하면서 힘들었던 적도 있었지만
결국 오류를 해결하고 코드를 한줄 한줄 완성해 가면서 실력도 향상된 것 같아서 기쁘다. 하지만
원래 계획에 있었던 쓰래드를 활용한 블록의 모션을 넣고 싶었는데 제대로 이해하지 못하고
오류를 해결하지 못하여 미구현 한 것이 아쉬었다. 그래도 이번 프로젝트를 통하여 자바 언어에
대해 더 많은 지식을 알게 되었으며 종강 후에도 계속해서 연습하면서 실력을 길러야 겠다..
이종범 : 평소 게임을 할 때 잘 신경 쓰지 않은 UI 디자인이 얼마나 어려운지를 뼈저리게 알게
되어 텀프로젝트를 시작하고, 사람들이 이걸 어떻게 만들었을까 유심히 바라보게 되었습니다.
또한 나중에 앱이나 프로그램을 만들 때에는 그래픽 디자인을 전문으로 하는 사람 1명 쯤을
알아놔야 살기 편하겠다는 생각이 들었습니다. 이클립스로 게임을 만들다보니 비록 3주동안
배워서 못 만들었지만 안드로이드 스튜디오가 이클립스보다 훨씬 좋은 것을 느끼고, 안드로이드
앱 개발에 대해서 배울 생각이 생겼습니다. 아쉬운 점으로는 게임 내에서 블록의 움직임을
쓰레드를 이용하여 다이나믹하게 표현하고 싶었지만 끝내 여러 가지 오류로 인해 구현을 못한
점이 많이 아쉬웠습니다.

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

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. 느낀점 오창석 : 살면서 많은 게임을 접해 왔지만 직접 만들어 보는 경험은 처음이라 신선했었고 수업 시간에 배운 것을 기반으로 게임을 만들어 보니 뿌듯했다. 막상 하기 전에는 뭐 하나 만들수나 있을까 걱정을 많이 했었는데 우여곡절 끝에 이렇게 결과물이 나온것에 대하여 신기했고 코딩을 직접 짜면서 한 문장 입력하는데 오류가 자꾸 나서 계속 고민하면서 힘들었던 적도 있었지만 결국 오류를 해결하고 코드를 한줄 한줄 완성해 가면서 실력도 향상된 것 같아서 기쁘다. 하지만 원래 계획에 있었던 쓰래드를 활용한 블록의 모션을 넣고 싶었는데 제대로 이해하지 못하고 오류를 해결하지 못하여 미구현 한 것이 아쉬었다. 그래도 이번 프로젝트를 통하여 자바 언어에 대해 더 많은 지식을 알게 되었으며 종강 후에도 계속해서 연습하면서 실력을 길러야 겠다.. 이종범 : 평소 게임을 할 때 잘 신경 쓰지 않은 UI 디자인이 얼마나 어려운지를 뼈저리게 알게 되어 텀프로젝트를 시작하고, 사람들이 이걸 어떻게 만들었을까 유심히 바라보게 되었습니다. 또한 나중에 앱이나 프로그램을 만들 때에는 그래픽 디자인을 전문으로 하는 사람 1명 쯤을 알아놔야 살기 편하겠다는 생각이 들었습니다. 이클립스로 게임을 만들다보니 비록 3주동안 배워서 못 만들었지만 안드로이드 스튜디오가 이클립스보다 훨씬 좋은 것을 느끼고, 안드로이드 앱 개발에 대해서 배울 생각이 생겼습니다. 아쉬운 점으로는 게임 내에서 블록의 움직임을 쓰레드를 이용하여 다이나믹하게 표현하고 싶었지만 끝내 여러 가지 오류로 인해 구현을 못한 점이 많이 아쉬웠습니다.