💻코딩 실습
Last updated
Last updated
아래 5 단계 탭을 순서대로 클릭하여 파이썬 타이핑 게임을 만드는 방법을 학습하고 직접 만들어 봅시다!
자~ 그럼 시작해 볼까요? 😃
타이핑 게임에선 출력
, 변수
, 반복문
, 조건문
등 파이썬의 기본 문법을 살펴 보며 게임을 만들어 봅니다.
무슨 말인지 벌써부터 어렵게 느껴지나요? 걱정 마세요! 순서대로 게임을 만들다 보면 자연스럽게 이해할 수 있을 거에요! 😄 😄 😄
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()
명령어를 통해 미션 성공여부를 판단하고 화면에 보여 줍시다!