Python

[Python] Python 문제풀이(타자 게임 만들기)

땅콩새싹 2020. 10. 19. 20:07
반응형

Python 문제풀이(타자 게임 만들기)

 


 

문제

게임이 시작되면 동물 이름으로 된 영어 단어가 화면에 표시되고, 사용자는 그 단어를 최대한 빠르고 정확하게 입력 해야한다. 바르게 입력했으면 다음 문제로 넘어가고, 오타가 있으면 같은 단어가 한 번 더 나옴. 틀린 문제를 다시 입력하는 동안에도 시간은 계속 흐르기 때문에 속도 뿐만 아니라 정확도도 중요한 게임을 만드시오.

 

입력&출력

[타자 게임] 준비되면 엔터!

*문제 1

snake

snake

통과!

...

*문제 5

cat

cat

통과!

타자 시간 : 12.97초

 

코드설명

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import random
import time
= ["cat","dog","fox","monkey","mouse","panda","frog","snake","wolf"]
enter=input('[타자게임] 준비되면 엔터!')
count=1
first_time=time.time()
 
while count<=5:
    print('문제',count)
    quiz=random.choice(w)
    print(quiz)
    answer=input()
    
    if answer == quiz:
        print('통과!')
        count=count+1
    else:
        count=count
 
    if count > 5:
        last_time=time.time()
        real_time=last_time-first_time
        print('타자 시간 : %.2f' % real_time,'초')

문자열에 저장된 단어들이 랜덤으로 나오게 하기 위해 random을 import해 주었고 타자 시간을 측정하기 위해 time도 import해 주었습니다. 그리고 w문자열에 타자연습에 출력될 여러 단어들을 입력해 주고 엔터를 치면 타자연습이 시작되게 하기 위해서 input으로 엔터를 치면 다음 단계로 넘어갈 수 있게 만들었습니다. 그리고 몇 번째 문제인지 count하기 위해서 count변수에 1을 저장시켜 주었고 타자 시간을 측정하기 위해 엔터를 누른 순간부터 시간을 start시켜 주었습니다. first_time=time.time()을 while문 안쪽에 넣으면 while문을 한번 돌 때마다 초기화 되기 때문에 꼭 while문 밖에 선언해 주어야 합니다. while문으로 들어와서 문제 번호를 count를 통해 print해주고 quiz라는 변수에 문자열 w에 저장되어 있는 단어 중 하나를 random.choice() 함수를 통해 랜덤으로 저장해주고 출력해줍니다. 그리고 input()을 통해 값을 입력받고 그 값이 quiz변수에 저장된 단어와 같을 때 '통과!'라는 문구를 출력해주고 count를 1증가시켜 줍니다. 그리고 값이 다를 때는 count값을 증가시켜 주지 않아 다음 문제로 넘어갈 수 없게 해주었습니다. 그리고 5문제를 모두 맞추어 count값이 5 이상이 되었을 때의 시간을 last_time이라는 변수에 저장시켜주고 real_time이라는 변수에 마지막 시간이 저장된 last_time에서 처음에 시작할 때 시간을 저장해 두었던 first_time을 빼주어 그동안 걸린 시간을 측정하고 소숫점 둘째자리까지 나타내서 print해 줍니다.

 

실행결과

틀렸을 때

 

반응형