《멍청한 방법학 파이톤》 노트 30----Percal 25번 행성에서 온 고든인

4293 단어
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)         ,     ,                               。


유한 상태기@ 위키백과

좋은 웹페이지 즐겨찾기