2013-08-01 2 views
0

LPTHW를 통해 이동 중이며 다른 방으로 이동하기 위해 일련의 질문에 올바르게 응답해야하는 게임을 만들려고합니다. 당신이 잘못 대답하면 당신은 다시 보내거나 게임이 끝납니다.튜플 목록에서 변수 업데이트

이 경우 ans에서 변수를 업데이트하여 새로운 값을 반영하는 방법은 무엇입니까? 내 대답은 첫 번째 정답 값에 머물러있는 것 같습니다.

질문/답변 쌍의 dict를 튜플 목록으로 변환했습니다. 질문이 사용되면 빈 목록은 해당 질문과 답변 튜플을 추가하고 원래 목록은 다시 사용되지 않도록 동일한 튜플을 제거합니다. 모든지도가 크게 감사드립니다, 감사합니다. 파워 쉘에서

http://pastebin.com/5NAaDv82

샘플 출력 : 시온 국립 공원은?

유타 #raw 입력

유타 유타 #이 올바른 인쇄 문

출력의 것을!

당신은 정답 갈 2 개 질문 : 1

[를 ('시온 국립 공원입니까?', '유타')] 빈 목록이 Q/키/값

으로 업데이트됩니다 #이

가게 고양이 이름은 무엇 이었습니까? 뭉치 야

뭉치 야 번호 여전히 제 않음 유타 비교 ??

오답이 [('시온 국립 공원입니까?', '유타'), ('가게 고양이의 이름이 무엇인지?', '털보 숭')]

가 'RAUH 것입니다 채찍 자국'?' 거친 세계

>

+0

당신을 돕기 위해 실제 문제 진술이 필요합니다. –

+0

안녕하세요 에릭, 내 문제는 올바른 질문을하려고합니다. 사전에 .items를 사용하여 튜플 목록을 작성하는 경우, 테스트 후 특정 튜플에서 값을 가져올 때 저장된 값을 제거하고 다음 선택 항목으로 넘어가려면 어떻게해야합니까? 그게 더 분명히 밝혀지기를 바랍니다. –

답변

0

당신이 raw_input을() 파이썬은 차단하고 사용자의 입력을 기다리는 사용할 때마다. 사용자가 입력을 제공하고 Enter 키를 누르면 사용자가 입력 한 값이 반환됩니다.

ans1 = raw_input을 ('1 질문에 대한 답을 입력') ( ans2 = raw_input을 '을 입력 :

당신이 사용자에게 정보를 조회하고자하는 그 이후의 시간은 해당 정보를 얻기 위해 다시 raw_input을 사용해야합니다 질문 2 '에 대한 답변)

새로운 답변을 원할 때마다 raw_input을 사용하여 가져와야합니다. 스크립트의 마지막에 당신이하고 있다는 것을

참고 :

여기에 루프 키를 통해
for i in keys: #next 3 line compare used question to keys and if matched 
    if i in qlist: # ...removes tuple from keys 
     keys.remove(i) 
     new_question = keys[0][0] # selects new question 
     print new_question 
     global ans 
     ans = keys[0][1] 
     print ans 
     new_ans = raw_input("> ") 
     ans = new_ans 

하고, 키가 qlist에있는 경우 당신이 그것을 제거하고 새 답변을 부탁드립니다.그러나 원래의 대답이 틀린 경우 (그리고 qlist에없는 경우) while 회 돌이로 돌아갑니다.

들여 쓰기를 검사해야하는 것처럼 보입니다. 거기에 속하지 않은 블록에 코드가있는 것 같습니다.

+0

Ok. 그러나 입력이 루프에서 업데이트되고 새 값에 대해 테스트됩니다. 무슨 일이 일어나고있는 것 같아요 튜플에 내 가치가 붙어 있고 다음 질문/대답을 지우고되지 않습니다. –

+0

좋아, 알았어. 들여 쓰기를 위해 나는 코드 블록에서 되돌아 가야 할 곳과 혼동을 느낀다. Big C에게 감사드립니다. 도움에 감사드립니다. –

관련 문제