Comment on page
💻
코딩 실습
아래 5 단계 탭을 순서대로 클릭하여 파이썬 타이핑 게임을 만드는 방법을 학습하고 직접 만들어 봅시다!
자~ 그럼 시작해 볼까요? 😃
무엇을 배우나요?
게임 준비
카운트 다운
타이핑 게임
미션 성공 check

타이핑 게임에선
출력
, 변수
, 반복문
, 조건문
등 파이썬의 기본 문법을 살펴 보며 게임을 만들어 봅니다.무슨 말인지 벌써부터 어렵게 느껴지나요? 걱정 마세요!
순서대로 게임을 만들다 보면 자연스럽게 이해할 수 있을 거에요! 😄 😄 😄
import random
import time
타이핑 게임에선
랜덤
하게 나오는 단어들과 15초란 한정된 시간
을 준비해야 합니다.위에 2줄 코드를 앞에서 만든 replit 파일에 작성해 주세요
animals = ["sheep","elephant","whale","giraffe","cat","dog","fox","monkey","mouse","panda","frog","snake","wolf"]
리스트는 책들이 차곡차곡 넣어져 있는
책장
과 같습니다. 여기에선 animals
라는 이름의 책장에 다양한 동물이름이 적혀있는 책들이 넣어져 있다라고 생각해 주세요역시 동일하게 다음줄에 위의 코드를 작성해 줍니다
따라서 작성하기 어렵다면 위의 코드를 복사하여 replit에 붙여 넣어 주세요!
number = 1
count = 3
변수는 숫자,문자 같은 값을 담을 수 있는 데이터 상자 입니다.
number
라는 이름의 상자에 숫자 1의 값을, count
라는 상자에 숫자 3의 값을 담아 줍니다.아래에 나오는 반복 명령문에서 number 상자의 값을 증가해
문제 번호
를 보여 주고, 게임이 시작되면 count 상자의 값이 줄어들면서 게임의 시작
을 알려주는 역할을 하게 됩니다
print("*******영어 단어 타자 게임**********\n")
print("제시되는 단어를 15초 안에 정확히 입력해 주세요!")
print("\n준비되면 엔터키를 눌러 주세요!!")
input()
print()
명령어는 화면에 내용을 출력할 때 사용할 수 있습니다. 꼭 가로안에 " " 또는 ' ' 를 입력 후 원하는 문장을 작성해 주세요.마지막으로
input()
명령어는 사용자가 직접 화면에 값을 타이핑 하여 입력하게 할 수 있습니다.

while True:
print(count,"...")
time.sleep(1)
count -= 1
if count == 0:
print("start!")
print("="*30)
break
start = time.time()
while
반복문은 말 그대로 ~ 하는 동안 계속해서 반복하는 명령어 입니다.
while 옆에 적혀있는 True
는 반복문의 조건인데 보통 이렇게 조건 없이
True 라고 적게 되면 끝없이 반복하게 됩니다.반복문 안에 적혀있는 내용들을 계속 해서 반복하게 되는데 이때 적혀있는 내용들은
꼭
4칸 들여쓰기
를 하고 작성해야 합니다!자 그럼 반복문 안에 동작하는 코드들을 자세히 살펴 봅시다!
print(count,"...")
time.sleep(1)
count -= 1
print()
명령문 안에 있는 문장을 화면에 보여준 후 time.sleep(1)
명령으로 1초를 기다리고 count
변수의 값을 1 만큼 감소 시켜 줍니다.
그럼 1초 마다 1씩 줄어 드는 count 변수의 값을 화면에 보여 주게 되겠죠?
if count == 0:
print("start!")
print("="*30)
break
만약 이대로 계속 count의 값을 감소 한다면 아마 -1,-2 처럼 음수의 값도 화면에 표시될 겁니다.
이것을 방지 하기 위해 조건을 하나 만들건데 이때 사용할 명령문이 바로
if 조건문
입니다.사용 방법은 if 옆에
조건
을 작성하고 마무리로 :
(콜론)을 작성하면 끝!
그리고 조건에 맞게 실행할 코드를 역시 if문 아래에 4칸 들여쓰기
후 작성해 주면 됩니다.여기선 count의 값이 0이 될때 start, =====(30개) 이 두 문장을 화면에 보여준 후
break
명령어로 반본문을 탈출하게 하는 코드가 실행 됩니다.그렇다는 건 더이상 count의 값을 감소시키는 반복문이 실행되지 않겠죠?

start = time.time()
이제 반복문을 탈출했으니 마지막으로 타이핑 게임의 시간을 측정 합니다.
start
라는 변수 상자에 시작 시간을 넣어 줄 건데 이때 사용할 명령어가 time.time()
입니다.눈치 채신 분들고 있겠지만 time은 앞에서 제일 처음 작성한 시간 기능을 사용하기 위해
import
로 불러온 time 입니다.
time의 여러가지 기능 중에 시간과 관련된 명령어인 time()
함수 명령어를 사용하기 위해
.
을 붙여 time() 의 기능을 불러온 것입니다.
while number <=6:
question = random.choice(animals)
print("question", number)
print(question)
x = input()
if question == x:
print("\n정답!")
print("================= \n")
number += 1
else:
print("정확히 작성해 주세요!!!")
print("================= \n")
while 반복문은 옆에 적힌 조건이 맞다면 계속해서 반복한다고 했죠?
number 변수에는 숫자 1 값이 담겨 있는데 6보다 작거나 같다는 조건이 성립되니
number 의 값이 6이 될 때 까지 아래의 코드를 실행합니다.
즉 6번째 문제가 나올 때 까지 반복한다는 뜻이겠죠?
question = random.choice(animals)
print("question", number)
print(question)
animals 라는 동물이름들이 담겨있는 리스트(책장) 기억나죠? 이 리스트에는,
양
, 코끼리
, 고래
, 기린
, 고양이
, 강아지
, 여우
, 원숭이
, 쥐
, 팬더
, 개구리
, 뱀
, 늑대
이렇게 13개의 동물 이름이 들어 있습니다.
13개의 동물 중 1개의 이름만 랜덤으로 선택하여 화면에 보여 줘야 하는데
이때 사용하는 명령어가
random.choice()
라는 명령어 입니다.
( ) 안에 랜덤으로 뽑을 값이 담긴 리스트의 이름을 넣어주면 되죠!그리고 print() 명령문으로 랜덤 값이 담긴 question 이란 변수와 number 변수의 값을 보여 줍니다.

print() 명령어를 사용 할 때 ( ) 안에
,
를 기준으로 여러 값을 넣을 수 있습니다.
주의해야 할 점은 넣어지는 여러 값들이 숫자, 문자와 같이 같은 값 이어야 합니다.x = input()
if question == x:
print("\n정답!")
print("================= \n")
number += 1
else:
print("정확히 작성해 주세요!!!")
print("================= \n")
input()
명령어는 사용자가 화면에서 값을 입력할 수 있게 해준다고 했죠?
그 입력한 값을 x 라는 변수에 넣어 줍니다. 그리고 정답
과 오답
처리를 진행하죠~question
에는 랜덤으로 뽑은 동물 이름
이, x
에는 참여자가 직접 입력한 동물 이름
이 담겨 있으니
이 두 변수의 값을 비교하는 조건문을 만들어 봅시다!
question 과 x 가 같다면, 즉 랜덤 동물 이름과 타이핑한 이름이 같다면
print() 명령어로 화면에 "정답!" 이라고 보여주고 다음 문제를 위해 number 값을 1 증가 시켜 줍니다.
오답이라면 "정확히 작성해 주세요!!!" 라고 보여주고 다시 입력할 수 있게 합니다.

코드들은 위에서 아래로 순차적으로 실행 됩니다.
우리가 사용한 while 반복문도 마찬가지로
랜덤으로 문제를 뽑고 사용자에게 값을 입력 받은 후
조건 문을 실행합니다.
그리고 다시 맨 위로 올라와 number 값이 6보다 작은 지 확인 후
맞다면 다시 랜덤 문제를 뽑고 입력값을 받고 조건문을 확인하고.....
이렇게 계속 반복해서 실행하게 됩니다.
end = time.time()
end_time = end - start
print("time : {:.2f} second".format(float(end_time)))
앞에서 게임을 시작할 때 시작 시간을 담았던
start
변수가 기억나시나요?이번엔 게임 종료 시간을
end
변수에 time.time()
명령어로 담아 줍니다.그리고
end_time
변수에 end - start
의 수식으로 게임의 총 play 시간을 계산값을 넣어 줍니다.
게임의 결과 시간은 익숙한 print() 명령어로 화면에 보여 주게 되는데...
이번엔 문자열 포매팅이란 기법으로 화면에 출력해 지게 됩니다.

문자열 포매팅이란...
쉽게 말해 다양한 값들을 좀 더 쉽게 화면에 표기하기 위한 기법이라고 기억해 주세요!


타이핑 게임이 잘 작동 되나요?
화면 상단의
Run
버튼을 누르면 오른쪽 화면에 Console
창에서 직접 값들을 입력하고 결과를 확인해 볼 수 있습니다.잘 작동된다면 마지막으로 미션 성공 여부를 체크해야겠죠?
if float(end_time) > 15:
print("아쉽네요.. 다시 한 번 도전해 보세요!")
elif float(end_time) < 16:
print("축하해요! 비밀번호를 알려 드릴께요!")
print("비밀번호: print()")
우리의 미션은 15초 안에 완벽하게 랜덤 문제들을 타이핑 할 수 있는가? 입니다.
그렇다면 최종 PLAY 시간이 담긴
end_time
변수의 시간 값이
15초 보다 크다면 실패
고 작다면 성공
이겠죠?앞에서 배운
if조건문
과 print()
명령어를 통해 미션 성공여부를 판단하고 화면에 보여 줍시다!
Last modified 10mo ago