2017-01-31 2 views
-1

좋아요, 그래서 모험 게임을 시작하고 프로그램에서 2 개의 대답 중에서 선택하도록하는 방법을 모르겠습니다.모험 게임에서 조건부로 입력을 처리하는 방법?

예 : 시작 하시겠습니까? input(),하지만 그때 나는 플레이어가 중단하고 "끝내기"라고 말한 경우 또는 다음 질문으로 계속하기 위해 "예"라고 말한 경우 사이를 선택하는 방법을 모른다.

이 내 코드입니다 :

import os 
import sys 
import random 

print("Welcome player!, we invite you to an andventure in our forests, but we warn you!, the monsters are luckng in every corner!") 
print("We are going to ask you question for what you want to do and you will answer them by writing in the chat yes or no") 
print("are you ready?") 
a = input("yes or no?:") 

# what goes next? 
+7

의'경우.lower() == "yes":'어떻게 해야할지 모르겠다면 더 많은 질문을 할 것입니다. 튜토리얼을 읽으십시오 : https://docs.python.org/3/tutorial /controlflow.html#if-statements – Keatinge

+0

예를 들어 사용자가 '아니요'라고 답한 경우 프로그램에서 수행해야 할 작업을 결정해야합니다. 대부분의 도구에서 – cdarke

+0

은'n','y' - 그리고'input ("Are you ready [N/y]?")'만 입력하면 기본 응답을 선호합니다.'- 상단'N'은 기본값을 보여줍니다 대답은'n'입니다.하지만'if'와'lower()'를 써야합니다. – furas

답변

1

IMMEDIATE 문제

공식 구조적 프로그래밍에서, 당신은 Keatinge 당신에게 준 시험으로이 문제를 해결할 것입니다 :

if a.lower() == "yes": 
    # Remainder of program 

을 .. . 프로그램의 나머지 부분은 들여 쓰기되어 모두 "true"branc h 일 때 이면입니다. 실제 세계에서는, 나는 반대 논리로이 작업을 수행 할 것 : 사용자가 "아니오", 다음 프로그램 종료 말한다면 :

if a.lower() == "no": 
    exit() 

# Remainder of program 

LARGER에 문제가

학습 코드

수업 자료 나 파이썬 튜토리얼을 읽으면 이러한 것을 배울 수 있습니다. 정말. 스택 오버플로는 자습서 사이트가 아닙니다. 당신 은 스스로 당신의 기초를 찾을 수 있어야합니다. 또한 은 기계적인 질문에 응답 할 때까지 기다리지 않으려 고합니다.

당신의 설명 도구가 당신을 위해 작동 어떤 프로그램

를 사용하여 설계 : 당신이 어떤 순서로 일이 무엇인지 그리 도움이 플로우 차트, 스토리 보드, 무엇이든, 그리고 당신이 유지해야하는 정보 (변수) . 도움이된다면, "어려운 방법을 배우는 파이썬"은 모험 게임에 좋은 핵심 요소입니다. "파이썬 모험"을 검색하면 자신의 조직에서 도움이되는 코드를 얻을 수 있습니다.

구현

당신은 제대로 시작,하지만 당신은 그것을 유지 확인 확인하고 있습니다 : 그들은 당신이 원하는 것을 할 수 있는지 확인하십시오, 코드 몇 줄을, 그들이 작동 할 때까지 계속하지 않습니다. 예를 들어, 진술 문이 필요하다면 을 코딩해야하며, 올바른 위치에 있다는 것을 알려주는 간단한 메시지가 각 지점에 있어야합니다. 적어도 "예", "아니오"및 기타 정크를 입력하고 몇 번 테스트 해보십시오.

시작해야합니다. 무엇보다도 재미있게 보내십시오. 맨손으로 짐승을 죽여라. 일부 보물을 훔쳐 라. 스파이크가있는 구덩이에 빠지십시오. 화난 집 고양이에 의해 먹어. 의견

0

간단한 예 :

while True: 
    answer = input("Are you ready? [Y/n] ") 

    # remove spaces and convert to lower 
    answer = answer.strip().lower() 

    # set default answer 
    if not answer: 
     answer = 'y' 

    # ---- 

    if answer == 'y': 
     print("YES") 
     break # exit `while` 
    elif answer == 'n':  
     print("NO") 
     break # exit `while` 
    else: 
     print("incorrect answer") 
     # it will return to question 
관련 문제