사실 이번문제는 내 힘으로 풀지는 못했으나
이런 저런 검색과 도움을 통해 해결 하는 법을 배웠다고 생각하기로 했다.
물론 나중에는 모두 이해하고 작성할 날이 오길 바라며
첫 접근은 단어를 랜덤으로 선택한뒤 각 단어의 알파벳 자리를 생성해서 포함하면 표시하고 포함 안하면 블랭크 하는 식으로 접근 했는데 구현 방법을 도저히 모르겠어서 포기
def word_game(word):
choicelist=random.choice(word)
print(list(choicelist))
print(f'해당 단어는 {len(choicelist)}자리 입니다')
x = input('알파벳을 하나 선택해주세요')
for i in range(0,9): #9번의 기회를 주기 위해 9번의 for 반복을 돌린다
print(f'기회는 {9-i}번 입니다.')
if x in list(choicelist): #입력한 알파벳이 포함된 위치의 리스트 값을 출력한다를 하고 싶은데
for add in range(0:len(choicelist))
list(choicelist)[1]
list(choicelist)[1]
list(choicelist)[1]
두번째는 chatgpt에게 물어보고 직접 타이핑을 해보았다.
내가 모른는 개념인 while 문, join 문 등을 익혀야 겠다.
import random
word=[
"airplane",
"apple",
"arm",
"bakery",
"banana",
"bank",
"bean",
"belt",
"bicycle",
"biography",
"blackboard",
"boat",
"bowl",
"broccoli",
"bus",
"car",
"carrot",
"chair",
"cherry",
"cinema",
"class",
"classroom",
"cloud",
"coat",
"cucumber",
"desk",
"dictionary",
"dress",
"ear",
"eye",
"fog",
"foot",
"fork",
"fruits",
"hail",
"hand",
"head",
"helicopter",
"hospital",
"ice",
"jacket",
"kettle",
"knife",
"leg",
"lettuce",
"library",
"magazine",
"mango",
"melon",
"motorcycle",
"mouth",
"newspaper",
"nose",
"notebook",
"novel",
"onion",
"orange",
"peach",
"pharmacy",
"pineapple",
"plate",
"pot",
"potato",
"rain",
"shirt",
"shoe",
"shop",
"sink",
"skateboard",
"ski",
"skirt",
"sky",
"snow",
"sock",
"spinach",
"spoon",
"stationary",
"stomach",
"strawberry",
"student",
"sun",
"supermarket",
"sweater",
"teacher",
"thunderstorm",
"tomato",
"trousers",
"truck",
"vegetables",
"vehicles",
"watermelon",
"wind"
]
def choose_word():
return random.choice(word)
def display_progress(word, guesses):
display=''.join([letter if letter in guesses else '_' for letter in word])
return display
def hangman():
word=choose_word()
guessed_letters=set()
attempts=9
print('영어 단어 맞추기 게임에 오신 것을 환영 합니다.')
print(f'단어는 {len(word)}글자로 이루어져 있습니다.')
print(display_progress(word, guessed_letters))
while attempts > 0:
guess=input("알파벳을 입력하세요")
if len(guess) != 1 or not guess.isalpha():
print('잘못된 입력입니다. 한개의 알파벳을 입력하세요.')
continue
if guess in guessed_letters:
print('이미 입력한 알파벳입니다. 다른 알파벳을 입력하세요.')
continue
guessed_letters.add(guess)
if guess in word:
print("정답입니다")
else:
attempts-=1
print(f'틀렸습니다. 남은 기회 {attempts}')
current_progress=display_progress(word, guessed_letters)
print(current_progress)
if '_' not in current_progress:
print('축하합니다. 단어를 맞추셨습니다')
break
else:
print(f'아쉽습니다. 정답은 {word}였습니다')
if __name__=='__main__':
hangman()
hangman()
'Python 연습문제' 카테고리의 다른 글
정수 내림차순으로 배치하기 (0) | 2024.06.11 |
---|---|
[고민문제]정수 제곱근 판별 : 있는걸 활용하자 (0) | 2024.06.10 |
[고민문제]자연수 뒤집어 배열로 만들기 (쉬운길을 두고 돌아가지 말자) (0) | 2024.06.10 |
Lv2. 스파르타 자판기 (0) | 2024.05.28 |
Lv1.랜덤 닉네임 생성기 (0) | 2024.05.24 |