본문 바로가기
프로그래밍/파이썬

모두의 파이썬 - DAY 15 (타자 게임 만들기)

by Tilog 2021. 11. 27.
728x90
반응형

모두의 파이썬 '15번째' 시간!

오늘은 '타자 게임 만들기'를 해보겠다.

 

list

 

list

프로젝트에 들어가기에 앞서 알고 가야 하는 것이 있는데

바로 'list'이다. list는 '목록', '명단'이라는 뜻의 영어 단어인데

오늘은 cat, dog, fox... 등의 동물 이름을 영단어로 list에 저장시킨 후

이 동물 이름들을 문제로 출력시킬 것이기 때문에 list에 대해 알아둘 필요가 있다.

 

대화형 셸에 'a = [5, 7, 9]'라고 치면 간단한 'a'라는 리스트가 완성된다.

리스트는 '대괄호'를 꼭 쳐줘야 한다. 그리고 엔터를 눌러서

'a'를 입력하면 등록해뒀던 '[5, 7, 9]'가 표시되는 것을 확인할 수 있다.

그리고 3개의 숫자 중 n번째 숫자만을 뽑아올 수 있는데

그 경우에는 'a[n-1]'와 같이 리스트 이름 뒤에 대괄호 치고

'뽑아오고 싶은 숫자-1'을 입력하면 된다. 

왜 'n-1'이냐면 파이썬에서의 리스트는 순서를 1이 아닌 '0'부터

세기 때문이니 이 점을 꼭 유의하도록 하자.

 

 

위와 같은 의미로 우리가 배웠던 'for x in rage(5):' 반복문에서도

'5'가 1,2,3,4,5가 아닌 '0,1,2,3,4'였으니 이 점도 다시 기억해두자.

 

 

random.choice 함수

프로젝트에 들어가기 앞서 알아야 할 두 번째는

'random.choice' 함수이다.

 

random.randint

이전에 배웠던 'random.randint'가 기억나는가?

DAY 14의 코드 중 일부를 가져왔다.

random.randint는 숫자를 랜덤으로 뽑아오는 것이라면

'random.choice'는 리스트 안에 있는 정보를 랜덤으로 뽑아오는 명령어이다.

 

 

random.choice 함수

대화형 셸에 x라는 리스트를 만들고

a, b, c, d 총 4개의 원소를 넣는다.

그리고 'random.choice(x)' 명령어를

사용하면 랜덤으로 원소 하나가 출력된다.

 

타자 게임 만들기

타자 게임 만들기

본론으로 들어가서 타자게임을 만들어보도록 하자

 

 

타자 게임 만들기

오늘은 2개의 모듈 'random''time'을 사용할 것이다.

random은 무작위로 단어를 보여줄 때 쓰고

time은 유저가 제시받은 단어를 보고 입력하는 데에

걸리는 시간을 측정하기 위해 사용할 것이다.

 

타자 게임 만들기

 

먼저 문제로 나올 단어 리스트를 만들어보자.

리스트 이름은 'w'로 하고 리스트 목록에는

'cat, dog, fox, monkey, mouse, panda, frog, snake, wolf'를 입력해준다.

꼭 원소들은 큰 따옴표(")를 붙여서 입력해주자.

그리고 문제 번호로 쓸 변수 n을 선언해주고 값은 1로 해준다.

게임 시작을 유저가 원하는 때에 직접 할 수 있도록 하기 위해

먼저 '[타자 게임] 준비되면 엔터!' 문구를 띄우고 

'input()'을 삽입해 엔터를 눌렀을 때 게임이 시작되도록 한다.

게임이 시작됨과 동시에 'start'라는 변수를 선언하고

값은 'time.time()'으로 하여 게임을 시작한 순간

시간 기록을 시작하도록 한다.

 

 

타자 게임 만들기

이번 스텝에서는 문제를 출제해보도록 하겠다.

먼저 'q'라는 변수를 선언 후 값은 'random.choice(w)'로 해준다.

그리고 조건 반복문 'while'을 이용해 5개까지 문제를 출제하도록 설정한다.

(for을 사용하지 않은 이유는 for을 사용하게 되면 틀려도 다음 문제로 넘어가기 때문!)

현재 문제 번호를 알려주기 위해 'print("*문제", n)'라고 입력하면

*문제 1, *문제 2... 이런 식으로 뜨게 되고 문제를 출력하기 위해

'print(q)'를 입력해준다. 그리고 유저가 입력한 단어와 제시된 단어의

철자가 같은지 다른지를 판별하기 위해 'x'라는 변수를 선언하고 

조건문 'if'를 넣어 유저가 입력한 철자와 제시받은 단어의 철자가

맞을 경우와 틀릴 경우를 나눈다.

 

1. 맞을 경우 '통과!'라는 문구가 뜨면서 'n = n+1'이라는 변수를 선언 해

문제 2번 3번... 이런 식으로 넘어가게 설정한 후 다시 'q = random.choice(w)'

입력하여 새로운 문제를 뽑도록 한다. 

 

2. 틀릴 경우를 만들기 위해 'else:' 명령어를 입력 후

'오타! 다시 도전!'이라는 문구가 출력되게 한다.

 

 

타자 게임 만들기

마지막으로 5문제를 입력하는 데에 걸린 시간을 기록하기 위해

'end = time.time()'명령어를 입력.

그럼 게임을 시작했을 때의 시각을 측정한 'start' 변수와

게임을 끝냈을 때의 시각을 측정한 'end' 변수, 2개가 생기는데

'end - start'를 해주면 걸린 시간을 계산할 수 있다.

그리고 이 시간은 'format' 함수를 이용하여 소수점 2자리까지만

표시해 주도록 한다. 

결과

문제 5번까지 진행한 경우

맨 하단에 5문제를 입력하는 데에 

걸린 시간이 표시된다.

 

오답 시

틀리면 무한하게 반복되니

유념하도록 하자.

728x90
반응형

댓글


#네이버 애널리틱스 ▼