'게임 시작 > 특정 숫자 범위 안에서 임의 숫자 정하기 > 계속 반복 > 숫자 입력 받기 > 임의로 정한 숫자와 입력된 숫자 비교하기 > 같다면 정답 출력 > 프로그램 종료 or 다르다면 오답 출력' 게임을 만들기 위한 기본 구조입니다. 각자 좋은 아이디어를 추가할 수도 있습니다.
<표1> 프로그래밍 정보 예시
게임에 필요한 정보를 생각해봅시다. [표1]처럼 어떤 정보를 구성하면 좋을지 고민해 봅시다. 두 개의 정보를 활용하기 위해 변수 두 개를 만들고 프로그래밍 시작을 준비합니다.
숫자 게임을 시작하기 위해 우리가 맞춰야 할 숫자값을 정해야 해요. 숫자값은 정해져 있는 숫자, 게임할 때 우리가 미리 예상 할 수 있는 숫자는 안돼요. 게임은 재미있어야 하고 예측 불가능해야 하니까요.
우리가 여러 가지 게임을 할 때 예측되지 않는 상황을 랜덤이라고 합니다. 랜덤이란 캐릭터를 고르거나 아이템 상자를 열어볼 때 예측 불가능한 상황을 뜻하는 말이에요. 파이선에는 정해진 범위 안에서 예측 불가능한 숫자를 선택해주는 함수가 있습니다. 'random.randint()'라는 함수예요. 이 함수를 이용해서 임의의 예상 안되는 숫자를 뽑고 number 변수에 저장해 보아요.
숫자를 입력 받아 저장하는 과정이 필요해요. Entry.input을 이용해서 값을 입력 받고 input이라는 변수에 저장해요. 상황에 따라 다른 명령어가 실행되기 위해서는 어떤 프로그래밍 개념을 사용해야 할까요. 바로 선택입니다. 선택을 활용할 때는 판단 기준이 되는 논리연산이 중요했습니다. 이 게임에서는 어떤 논리연산을 구성해야 할까요. “입력된 값과 임의 값이 같은지 다른지”겠죠? 이 논리연산을 활용해서 게임을 완성해 보아요.
입력한 횟수라는 정보가 추가됐기 때문에 정보 구성도 다시 한 번 생각해야 합니다. count라는 변수를 만들고 프로그래밍을 시작해요. count라는 변수가 만들어졌다면 입력 값이 input에 저장될 때 마다 count 변수 값에 1씩 더합니다. 간단한 숫자게임을 만들 때 선택구조는 한 가지였어요. 입력한 값이 같은지 다른지만 판단했죠.
이번에는 number와 input을 비교해 그 결과도 출력해야 해요. input 값보다 number 값이 크다면 업(UP), 작다면 다운(Down)을 출력해서 게임하는 사람이 예측할 수 있도록 정보를 제공해봅시다.
필요한 논리연산은 무엇일까요. '어떤 값보다 큰지 작은지'가 되겠죠. [그림2]와 같이 프로그래밍을 해서 게임을 마무리해 봅시다. 입력 값이 정답일 때 '정답'과 '시도한 횟수'가 출력되도록 순서대로 말하기를 넣어요. 출력이 다 되면 게임을 종료하기 위해 Entry.stop_code(“all”) 명령어를 입력해요.
저작권자 © PRESS9 무단전재 및 재배포 금지