본문 바로가기
파슬리(Python)

[Python] [3] 텍스트 파일(끝말잇기 게임)

by Parsler 2023. 12. 29.

1. 끝말잇기

텍스트 파일을 다루는 방법을 배워봤다.

txt 파일을 파이썬 파일과 같은 곳에 두면 텍스트 파일의 내용을 사용할 수 있다!

# 끝말잇기 게임
import random

words = open('korean_words.txt', encoding='utf-8').read().split()
# txt 파일에는 1805개의 단어가 들어있다

def isOkay(word): # 두음 법칙을 고려(?)했다
    s1 = '냥녀뇨니라락란래량려렷로론뢰료루류륜리'
    s2 = '양여요이나낙난내양여엿노논뇌요누유윤이'
    tt = str.maketrans(s1, s2)
    return word[-1:].translate(tt)

def game():
    start = random.choice(words)  # 상대가 먼저 시작
    words.remove(start) # 한 번 사용한 단어 사용 불가
    print(f'start : {start}')
    myWord = [] # 나도 중복 단어 사용 불가
    while True:
        conti = False
        next = input() # 내가 입력한 단어
        
        # 내가 말한 단어가 끝말잇기 규칙에 어긋나는 경우
        if start[-1:] != next[0] and isOkay(start) != next[0]: 
            print(f'{next}?ㅋㅋㅋㅋㅋㅋ You Lose')
            break
        else:
            for s in myWord:
            	# 중복 단어를 말한 경우
                if s == next:
                    print(f'{next}?ㅋㅋㅋㅋㅋㅋㅋ You Lose')
                    break
            myWord.append(next)

        for s in words:
            if next[-1:] == s[0] or isOkay(next) == s[0]:
                start = s
                print(start)
                words.remove(start)
                # 상대가 다음 끝말잇기에 성공한 경우 continue
                conti = True
                break
                
        # 상대가 말할 단어가 없는 경우
        if not conti:
            print('내가 졌따...')
            break

game()

2. 영어 퀴즈

번외로 영어 문장 퀴즈도 있다.

ko_en.txt 파일에는 아래와 같이 한글 문장과 영어 문장이 /t을 사이에 두고 구분되어있다.

<나는 학생이다. I am a student.
그녀는 내 언니이다. She is my sister.> 

나에게 한글 문장을 물어봤을 떄, 내가 올바르게 번역하면 okay, 틀렸다면 '틀렸어!'를 말해주는 퀴즈이다. ㅋㅋㅋ

import random

sentences = open('ko_en.txt', encoding='utf-8').read().split('\n')
del sentences[0]
dic = dict()
for sen in sentences:
    ko, en = sen.split('\t')
    dic[ko] = en

def letsQuiz():
    quiz = random.choice(list(dic.keys()))
    print(quiz)
    
    ans = input()
    if ans != dic[quiz]:
        print("Wrong answer")
    else:
        print("Good!")
letsQuiz()

'파슬리(Python)' 카테고리의 다른 글

[Python] [1] 람다(lambda)  (0) 2023.12.28