본문 바로가기

Studying/Python

11. miniProject(2) - 랜덤 숫자 맞추기 게임

이번엔 랜덤으로 설정된 숫자를 맞추는 작은 게임을 만들어보려한다. 

 

easy와 difficult로 난이도를 구분하여 각각 5, 10회의 기회가 있게끔 설정할 것이고, 정답 숫자는 1과 100사이에서 random으로 설정할 것이다. 

 

큰 구조를 설정해보자. 

 

정답과 추측을 비교하고 남은 시도를 차감하는 함수 하나, 플레이어가 난이도를 설정하는 함수 하나, 실제로 게임이 진행되는 함수 하나 이렇게 총 3개로 설계해보도록 하자. 

 


 

먼저 난이도를 설정하는 함수이다. 

 

함수 setDifficulty 선언

 

전역변수로 easyLevelTurnshardLevelTurns를 각각 10과 5로 설정했다. 

 

그리고 setDifficulty 함수를 선언하여 입력받은 level에 따라 return 값을 달리한다. 

 

이제 추측값과 정답을 비교하고 이에 따른 남은 시도값을 설정할 단계이다. 

 

함수 checkAnswer 선언

 

checkAnswer 함수는 guess, answer, turns 3개를 인자로 받고

 

guess와 answer 값의 비교 결과에 따라 추측값이 더 클 경우, 추측값이 작을 경우, 정답일 경우로 구분하며 

 

정답일 경우를 제외하고는 남은 시도 값인 turns에서 1을 차감한다. 

 

이제 실제 게임이 진행되는 과정을 함수로 구현해보자. 

 

함수 game 선언

 

먼저 게임이 시작되고, 정답은 1과 100사이의 숫자라는 것을 보여주며, randint로 answer를 설정한다. 

( randint는 "from random import randint" )

 

남은 시도값은 앞서 만들어놓은 setDifficulty 함수를 통해 turnsLeft로 선언하고, 

 

추측값을 저장할 변수로 guess를 0으로 선언해 놓는다. 

 

while 반복문을 사용하여 guess값과 answer값이 일치할 때까지 게임이 진행하도록 한다. 

 

게임을 진행하다가 남은 목숨이 0이 될 떄까지 정답을 맞추지 못하면 게임이 종료되어야 한다. 이는 if 문으로 설정한다. 

 

if 문으로 turnsLeft가 0이 되는 경우를 제외하곤 게임이 진행되도록, 설정한다. 

 

 

'Studying > Python' 카테고리의 다른 글

13. miniProject(4) - 커피 자판기  (0) 2022.07.24
12. miniProject(3) - Higher or Lower 게임  (0) 2022.07.14
10. miniProject(1) - 블랙잭 게임  (0) 2022.07.14
9. logging(로깅) - (1)  (0) 2022.03.04
8. descriptor(디스크립터)  (0) 2022.03.03