파이썬

숫자게임

content0474 2024. 10. 7. 15:28

과제 내용

  1. 플레이어와 컴퓨터가 참여하는 숫자 맞추기 게임을 만드세요.
  2. 프로그램은 다음과 같은 기능을 포함해야 합니다.
  • 컴퓨터는 1부터 10 사이의 랜덤한 숫자를 생성합니다.
  • 플레이어는 숫자를 입력하고, 입력한 숫자가 큰지 작은지 힌트를 얻습니다.
  • 플레이어가 숫자를 맞힐 때까지 위 과정을 반복합니다.

위 과제를 수행하는 과정

random이라는 모듈을 import하고 그 중 범위내의 숫자를 뽑아주는 randrange를 사용

주의! 1부터 10중에서 뽑기 위해서는 range를 1,11로 입력해야 한다.

 

초기에 작동하는지 만들어본 코드

작동은 하지만 반복되지도 않고, 숫자를 맞추는 코드도 없다.

int(input( ))은 이전에 함수에서도 다뤘지만 입력값을 정수로 바꿔주는 코드

 

잘못된 코드1

이 경우 틀린 숫자를 입력하면 숫자를 줄이세요 또는 키우세요가 무한하게 반복된다.

while문 안에서 입력값을 다시 받아야 무한반복을 멈출 수 있다.

 

잘못된 코드2

1부터 10 안에 있지 않은 숫자를 입력하면 범위체크를 다시 반복해야 하는데 그렇지 않다.

 

동작하는 코드

위에서 보인 오류들이 해결되었다.

 

의문점: while True를 사용해서 전체를 감싼 코드와 차이가 뭘까..?

 

 

+ 추가과제: 사용자에게 게임 재시작 여부를 묻고 재시작하기

이 때 while True로 전체를 감싸면 쉽게 구현 가능하다. while True로 해두면 무한반복이기 때문에 마지막에 continue/break만 정해두면 continue로 갈 때는 무한반복, break 로 갈 때는 끝내기를 할 수 있다.