이번에는 파이썬을 이용하여 영어단어 맞추기 게임을 만들어 보겠습니다.
(본 블로그의 내용은 유튜브 동영상(파이썬 영어단어 맞추기 게임 만들기)에서 더욱 자세히 보실 수 있습니다.)
아래는 완성된 소스코드입니다.
import random
import os
os.system("cls") # 화면을 클리어(cmd의 cls명령 실행)
words_dict = {
"사자" : "lion",
"호랑이" : "tiger",
"사과" : "apple",
"비행기" : "airplane"
}
print(words_dict["사과"])
# 딕셔너리는 순서가 고정되지 않으므로, 리스트 사용
words = []
for word in words_dict:
words.append(word)
print(words)
# ['사자', '호랑이', '사과', '비행기']
random.shuffle(words) # words 리스트를 랜덤하게 섞는다.
print(words)
chance = 2 # 답이 틀리면 2번까지 다시 입력할 수 있게 해준다.
k = 0 # 맞춘 개수를 표시하기 위한 변수
for i in range(0, len(words)): # words 리스트의 값을 하나씩 불러와 i에 입력, words 리스트가 끝날때까지 수행
q = words[i]
for j in range(0, chance):
# 사용자의 입력을 user_input에 저장
user_input = str(input("{} 의 영어 단어를 입력하세요 >> ".format(q)))
dictionary = words_dict[q] # 딕셔너리의 첫번째 단어를 dictionary에 저장
if user_input == dictionary: # 사용자의 입력값과 딕셔너리의 영어단어가 같으면
print("정답입니다.")
k = k + 1 # 정답을 맞추면 k값을 1 증가(정답을 맞춘 개수)
break # 정답이면 두번째 for문을 빠져나오도록 break를 사용함
else:
print("틀렸습니다.")
if user_input != dictionary:
print("정답은 {} 입니다.".format(dictionary))
i = i + 1 # 문제를 풀때마다 i를 1개씩 증가(문제수)
print("모든 문제를 다 풀었습니다.")
print("\n총 문제수 : ", i)
print("맞춘 개수 : ",k)
print("점수 : ", k/i * 100, "점")
영어 단어 문제를 딕셔너리로 만들고,
딕셔너리는 순서가 고정되어 있지 않기때문에 words 리스트에 다시 단어(키)를 담아 둡니다.
같은 문제를 계속낼 수 없으므로, shuffle()함수로 문제를 섞어 줍니다.
사용자가 입력한 값과 딕셔너리(words_dict)의 키(key)의 값(value)을 비교 후 메시지를 그에 맞게 보여줍니다.
위에서는 한번 틀리면 다음 단어로 넘어가는데 한번 더 맞출 수 있는 기회를 주도록 코드를 수정해 봅니다.
아래와 같이 for문을 하나 더 돌려서 chance( = 2) 일때 까지 기회를 주었습니다.
위에서는 몇 문제 중에서 몇 개를 맞추었는지 표시가 되지 않았는데, 마지막으로 이 부분에 대한 코드를 추가하였습니다.
정답을 맞춘 개수를 표시하기 위해 정답을 맞추면 변수 k를 1씩 증가시켰고, 문제수를 표시하기 위해 첫번째 for문에 i를 1식 증가하도록 구현하였습니다.
이렇게 영어단어를 맞추는 게임을 작성하는 소스코드를 잘게 쪼개서 실행해 보고 실습을 통해 이해해 보았습니다.
위의 내용 중 이해가 가지 않는 부분은 실제 코딩을 해보면서 반복적으로 실행시켜 보면서 이해를 도울 수 있습니다.
그렇게 하더라도 내용 중 이해가 되지 않거나, 더 좋은 방법들이 있다면 댓글로 의견을 주시기 바라며,
내용이 유익하셨다면, 좋아요와 구독 부탁드립니다.
감사합니다.
'파이썬 실습 > 게임 만들기' 카테고리의 다른 글
파이썬 GUI 영어단어맞추기 게임 (0) | 2022.10.18 |
---|---|
파이썬 GUI 숫자 야구게임 만들기 (0) | 2022.10.09 |
파이썬 숫자 야구 게임 만들기 (0) | 2022.08.15 |
파이썬 로또 번호 맞추기 게임 만들기 (0) | 2022.08.09 |
파이썬 타자 게임 만들기 (0) | 2022.08.09 |