관리
← 文章列表

Python小项目1:制作密室逃脱游戏

本文在AI辅助下由原文翻译而成。请结合原文核对专业术语和公式。

用Python制作密室逃脱

大家好,今天用Python制作简单游戏。规则是找到随机三位密码逃脱。错10次以上,或途中输入're',就重新开始。用基本输入输出、条件与循环即可制作。

Python小项目1:制作密室逃脱游戏 — 原创概念示意图
原创概念示意图

 

开始游戏

首先随机生成密码。使用random从0至9随机选三个数字,设为密码。

Python小项目1:制作密室逃脱游戏 — 展示文章要点的原创示意图
展示文章要点的原创示意图

 

import random

def generate_password():
    return [str(random.randint(0, 9)) for _ in range(3)]

 

输入与验证密码


接收用户输入,每位确认是否正确。正确提示下一位,错误提示输入大于还是小于答案。

 

def check_password(correct_password):
    attempt_count = 0
    wrong_count = 0

    for i in range(3):
        while True:
            user_input = input(f"{i+1}번째 자리의 숫자를 입력하고 엔터를 누르세요 (재시작하려면 're' 입력): ")
            if user_input.lower() == 're':
                print("게임을 재시작합니다.")
                return False
            attempt_count += 1
            if attempt_count >= 10:
                print("10회 이상 틀렸습니다. 게임을 다시 시작합니다.")
                return False
            if user_input == correct_password[i]:
                print("정확합니다! 다음 자리수를 입력하세요.")
                break
            else:
                wrong_count += 1
                print("틀렸습니다. 다시 시도해주세요.")
                if user_input < correct_password[i]:
                    print("힌트: 입력하신 숫자는 정답보다 작습니다.")
                else:
                    print("힌트: 입력하신 숫자는 정답보다 큽니다.")

 

重新开始功能

途中输入're'随时重新开始。

完成与尝试次数

全部猜对,告知错几次并输出成功。错10次以上自动重启。

 

def check_password(correct_password):
    attempt_count = 0
    wrong_count = 0

    for i in range(3):
        while True:
            user_input = input(f"{i+1}번째 자리의 숫자를 입력하고 엔터를 누르세요 (재시작하려면 're' 입력): ")
            if user_input.lower() == 're':
                print("게임을 재시작합니다.")
                return False
            attempt_count += 1
            if attempt_count >= 10:
                print("10회 이상 틀렸습니다. 게임을 다시 시작합니다.")
                return False
            if user_input == correct_password[i]:
                print("정확합니다! 다음 자리수를 입력하세요.")
                break
            else:
                wrong_count += 1
                print("틀렸습니다. 다시 시도해주세요.")
                if user_input < correct_password[i]:
                    print("힌트: 입력하신 숫자는 정답보다 작습니다.")
                else:
                    print("힌트: 입력하신 숫자는 정답보다 큽니다.")

 

最后,使用上方片段组成的完整代码如下。

import random

# 비밀번호를 랜덤으로 생성하는 함수입니다.
def generate_password():
    return [str(random.randint(0, 9)) for _ in range(3)]

# 사용자가 입력한 비밀번호를 검증하고 힌트를 제공하는 함수입니다.
def check_password(correct_password):
    attempt_count = 0  # 시도 횟수를 카운트하는 변수입니다.
    wrong_count = 0    # 잘못된 입력 횟수를 카운트하는 변수입니다.

    for i in range(3):
        while True:
            user_input = input(f"{i+1}번째 자리의 숫자를 입력하고 엔터를 누르세요 (재시작하려면 're' 입력): ")
            if user_input.lower() == 're':
                print("게임을 재시작합니다.")
                return False  # 게임 재시작을 위해 False를 반환합니다.
            attempt_count += 1
            if attempt_count >= 10:
                print("10회 이상 틀렸습니다. 게임을 다시 시작합니다.")
                return False
            if user_input == correct_password[i]:
                print("정확합니다! 다음 자리수를 입력하세요.")
                break
            else:
                wrong_count += 1
                print("틀렸습니다. 다시 시도해주세요.")
                if user_input < correct_password[i]:
                    print("힌트: 입력하신 숫자는 정답보다 작습니다.")
                else:
                    print("힌트: 입력하신 숫자는 정답보다 큽니다.")

    print(f"비밀번호를 맞추기 위해 총 {wrong_count}번 틀렸습니다.")
    return True

# 게임을 시작하는 함수입니다.
def start_game():
    print("방탈출 게임에 오신 것을 환영합니다. 비밀번호는 3자리 숫자입니다.")

    while True:
        correct_password = generate_password()
        print(f"비밀번호가 설정되었습니다. (테스트를 위해 비밀번호를 출력합니다: {''.join(correct_password)})")
        if check_password(correct_password):
            print("비밀번호가 모두 맞습니다! 방탈출에 성공하셨습니다!")
            break

# 게임을 시작합니다.
start_game()

 

为帮助理解本文而制作的原创插画。

Tistory 原文 ↗