《멍청한 방법학 파이톤》 노트 30----Percal 25번 행성에서 온 고든인
이 절에서는 공상 과학 이야기를 다룬 문자 놀이를 세웠다.Percal 25호 행성에서 온 한 무리의 고든인들이 비행선을 침입했다. 혼수상태에 빠진 당신은 깨어나서 선원 전원이 이미 전사한 것을 발견했다. 당신은 고든인들과 지혜롭게 무기고에 뛰어들어 총알을 꺼내 비행선을 폭파하고 탈출하는 데 성공했다.
CODE
#coding:utf-8
from sys import exit
from random import randint
def death():
quips = [" 。 "," , , "," "," "]
print quips[randint(0,len(quips)-1)]
exit(1)
def central_corridor():
print " Percal25 "
print " , "
print " "
print " , 。。 "
print " "
print "
"
print " "
print " , , , "
print " , , "
action = raw_input("> ")
if action == "shoot!":
print " "
print " , , "
print " "
print " , , "
print " , "
return "death"
elif action == "dodge!":
print " , "
print " , "
return "death"
elif action == "tell a joke":
print " "
print " , , "
print " "
return "laser_weapon_armory"
else:
print " "
return 'central_corridor'
def laser_weapon_armory():
print " "
print " , "
print " , "
print " "
print " 10 , "
print " : 3 "
code = "%d%d%d" % (randint(1,9),randint(1,9),randint(1,9))
guess = raw_input("[keypad]> ")
guesses = 0
while guess != code and guesses < 10:
print "BZZZZEDDD!"
guesses += 1
guess = raw_input("[keypad]> ")
if guess == code:
print " , "
print " "
print " "
return "the_bridge"
else:
print " "
print " "
print " , , "
return "death"
def the_bridge():
print " "
print " 5 "
print " , "
print " , , "
action = raw_input("> ")
if action == "throw the bomb":
print " , "
print " , "
return "death"
elif action == "slowly place the bomb":
print " , , ,"
print " , "
print " , 。 , "
return "escape_pod"
else:
print "DOES NOT COMPUTE"
return "the_bridge"
def escape_pod():
print " , ,"
print " , "
print " , 5 , "
print " ?"
good_pod = randint(1, 5)
guess = raw_input("[pod #]> ")
if int(guess) != good_pod:
print " %s , " % guess
print " "
print " "
return "death"
else:
print " %s , " % guess
print " "
exit(0)
ROOMS = {
'death':death,
'central_corridor':central_corridor,
'laser_weapon_armory':laser_weapon_armory,
'the_bridge':the_bridge,
'escape_pod':escape_pod
}
def runner(map, start):
next = start
while True:
room = map[next]
print "
-----------"
next = room()
runner(ROOMS, 'central_corridor')
이 게임은 사실 이터레이션의 유한 상태기 FSM입니다.
wiki FSM
( :finite-state machine, :FSM) , , 。
유한 상태기@ 위키백과
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.