AI up&down game 만들기

be1le·2021년 12월 23일
10

algorithmSolving

목록 보기
1/1
post-thumbnail

오늘은 혼자 즐길 수 있는 up&down 게임을 만들어 봤다.
룰은 1~100까지 의 범위중 숫자를 5번의 기회 안에 맞추면 되는 게임이다!
우선 은 사용자가 숫자를 맞추는 게임을 작성해볼 생각이다!

1.random을 import해옵니다!


위처럼 import random 구문을 통해 random을 import해온뒤 number라는 변수에 1~100까지의 숫자가 random을 통해 불러와 진다!print 로 찍어보면

이처럼 잘 작동하는 것을 확인할 수 있다!

2.작동할 코드 작성!!


코드 전문이다! 주석처리를 나름 꼼꼼하게 해두어 코드를 보며 한번에 리뷰해 보려 한다!
귀찮아서가 아니다!!
count라는 변수는 while문안에서 같이 돌아가면서 몇 번의 도전 기회가 남았는지 알려주는 변수이다.

while True: 무한루프 속에서 코드가 실행될떄 마다+1을 해준다!

try/except 문으로 예외처리를 도모하였다. 1~100이 아니라면 print('1~100 사이를 입력해 주세요')
이구문이 실행된다!

tempnum은 사용자가 작성한 숫자이다. 파이썬에서 숫자로 인식할 수 있게끔 int를 사용하여 input값을 감싸주었다! 그러면서 친절하게 count라는 함수가 5보다 적으면서 정답을 맞추지 못 하였을때 몇번의 도전기회가 남았는지 알려주는 코드도 작성해 보았다!

이처럼 count함수가 5번이 넘어가면 실패후 break를 작성하여 반복을 끝내도록 만들었다!

또한 정답일 때는 루프를 종료할 수 있는 코드도 작성 하였다!

이번엔 내가 정한 숫자를 컴퓨터가 맞춰보는 알고리즘을 구현해 보았다!

컴퓨터가 내가 정한 숫자를 모른다고 했을때 가장 빠르게 맞출 수 있는 루트는 무엇일까? 범위/2를 통해 접근 하는 방식이 내가 생각했을 때는 가장 빠르게 맞출 수 있는 방법이라고 생각했다.

코드

우선 변수 부터 보고 들어가자!

사실 여기 까지만 보아도 내가 어떤 식으로 코드를 작성해 나갈지 감을 잡는분이 있을거라 생각한다!
이 변수들이 식에서 어떻게 사용되는지 하나씩 살펴보자!

위의 코드와 마찬가지로 while True:문에 넣어 무한루프를 생성후 half 라는 변수는 lilnim+bignum/2 라는 내용을 할당해 주었다. 그뒤 나름 생각하는 척을한후 숫자를 말할 수 있게끔 "제 생각에는..."구문과 다시 str 함수로 문자열로 출력된 half를 더한뒤 print하게 설계해 두었다!

컴퓨터가 사용자가 정한 숫자를 맞추면 반복문은 바로 break문으로 종료된다.

예외처리는 사용자가 거짓으로 up&down을 입력시 거짓말쟁이가 돼지 말라고 설득한다.
그 내용으로는 input값이 up인데 half가 이미 a,즉 num보다 클 때를 거짓이라고 작성하였다.
또한 반대 상황도 마찬가지로 작성해 주었다!


마지막으로 사용자가 거짓을 말하지 않았다면, 아래의 두 줄로 사용자가 정한 수를 찾아가게 된다!
사용자의 답이”up”이라면 lilnum이 half에 할당되고 “down”이라면 bigNum이 half 에할당되어 수를 맞출 범위를 줄여나감과 동시에 답에 근접해 갈 수 있다!

오늘은 up&down게임을 만듬과 동시에 AI 기능을 “모방”해보는 코드를 작성해 보았다. 물론 한없이 부실한 코드일지 모르지만 나에게는 AI의 기능을 모방이라도 해볼 수 있어서 즐거웠던 시간이 되었다!

profile
그저 그런 개발자가 되지 않겠습니다.

0개의 댓글