Форум сайта python.su
0
Доброго времени суток, я написал текстовую игру, дерево игры строится ужасно криво, помогите, пожалуйста, мне нужно, чтобы все просто работало, не нужно, чтобы код был красивым
class Game_Tree(object): sons = [0,1] message = "" game_is_won = 0 def __init__(self, mess, finished): self.message = mess self.game_is_won = finished @classmethod def add(cls, son, number_of_son): if(number_of_son == 0): cls.sons[0] = son if(number_of_son == 1): cls.sons[1] = son def make_tree(): message = "Duhota. Solnce neshadno slepit iz-za tulya i zastavlyaet \ prosnutsa. No razbudilo Vas ne tol'ko solnce. Trel telefonnogo zvonka \n\ zastavlyaet golovu raskalyvatsa na dve chasty. Nepryatnoe chuvstvo kogda ty ne \n\ ponimaesh gde ty, kak tebya zovut i kak zdyes okazalsa. No seichas glavnoe zastavit \n\ molchat nenavistnyi telefonnyi apparat. \n\ Vy mojete \n\ Otvetit` (0) \n\ Sbrosit`(1)" root = Game_Tree(message, 0) message ="Na telephone opredelilos` imya zvonyashego: Piton, no ty \n\ ne pomnish kto eto. No na svoy strah i risk ty reshil otvetit`. Iz trubky donositsya \n\ razdrajennyi mujskoy golos: Ty kuda poteryalsa? Ty doljen byl byt` na ploshadi Lenina \n\ eshe 5 minut nazad! Marta eshe jdet, davay, podrivaysia. \n\ Vy mojete \n\ Poity. (0) \n\ Dalshe spat`. (1) " son = Game_Tree(message, 0) root.add(son, 0) root.sons[0].add(root,1) message = "Zvonit kakoy-to Piton. Ty ne pomnish kto eto. \n\ Sbrasyvaesh vyzov i kladesh telephon obratno v karman pidjaka. \n\ Obyskat pidjak? \n\ Da (0) \n\ Lech spat` dalshe (1)" son = Game_Tree(message, 0) root.add(son, 1) root.sons[1].add(root,1) message = "Marta? Kto eto? I kto takoy etot Piton? \n\ Ladno, raz bol`she nichego ne izvestno, mojet hot` Marta otvetit hotya by na chast` \n\ voprosov, roem zudashih v tvoey golove. Ty prihodish na ploshad` Lenina, prohodish \n\ mimo pamyatnika i vidish krasivuyu devushku. Ona zametila tebya i nachala smotret` \n\ ne otryvaia glaz, litco ee bylo pechalno. \n\ Devushka pokazalas` tebe znakomoy? \n\ Da. (0) \n\ Net (1) " son = Game_Tree(message, 0) root.sons[0].add(son, 0) message = "Interesno. Pomimo pachki sigaret i zazhigalki Zippo v pidzhake\n\ naiden ispol'zovanniy vcherashniy bilet v operniy teatr i garderobniy nomerok.\n\ Shodit' v teatr i proverit'?\n\ Da (1)\n\ Net (2)\n" son = Game_Tree(message, 0) root.sons[1].add(son, 0) root.sons[1].sons[0].add(root,1) message = "Podoity poznakomytsa? \n\ Da (0) \n\ Net (1)" son = Game_Tree(message, 0) root.sons[0].sons[0].add(son, 1) message = "Ty prishel v teatr i podoshel k garderobu. \n\ Poprivetstvoval garderobshika i obyasniv emu, chto sluchaino ostavil zdes` svoi \n\ veshi, protianul emu nomerok. Vzamen garderogshik otdal tebe korichnevyi kojanyi \n\ portfel` v kotorom obnarujils`a pasport i medkarta, v kotoroy bylo skazano \n\ o nalichii u tebya redkoy phormy amnezii i receptom na preparat, \n\ kotoryi nujno prinimat` kajdyi raz pered snom, chtoby utrom pomnit` o proishodyashem \n\ nakanune. \n\ Vi Viygrali" son = Game_Tree(message, 1) root.sons[1].sons[0].add(son, 0) message = "Ty reshil poznakomitsa, no ne nashel nujnyh slov, hotel poshutit, \n\ no poluchilos hamstvo. I otvetom tebe stanovitsya zvonkaya poshechina... V \n\ golove plyvut kakie-to obrazy, he stihaet gul i vertyatsa voprosy o tom, kto je ty. \n\ Potom nastupaet tishina i polnyi pokoy. \n\ Ty otkryvaesh glaza...(0)\n" son = Game_Tree(message, 0) root.sons[0].sons[0].sons[1].add(son, 0) root.sons[0].sons[0].sons[1].sons[0].add(root, 0)10 root.sons[0].sons[0].sons[1].sons[0].add(root, 1) message = "Ty prysel na stoyash`uu poblizosti skameiku i mashinalno dostal iz \n\ karmana pachku sigaret i zajigalku. Odnako pomimo etogo v paltcah okazals`a eshe i \n\ ispolzovannyi vcherashnyi bilet v Teatr Opery i Baleta, a tak je nomerok ot garderoba. \n\ Zaity v teatr (0) \n\ Poyti domoy (1) " son = Game_Tree(message, 0) root.sons[0].sons[0].sons[1].add(son, 1) root.sons[0].sons[0].sons[1].sons[1].add(root.sons[1].sons[0].sons[0],0) root.sons[0].sons[0].sons[1].sons[1].add(root,1) message = "Ty podhodish k devushke s misl'y o tom, chto ona i est' ta samaya Marta\n\ Natyagivaesh na lico belozubuyu ulibku, govorish \"Privet\", no otvetom stanovitsya\n\ zvonkaya posh'echina. V glazah plivut kakie-to obrazi, v golove ne stihaet zudeniya roya\n\ voprosov o tom, kto zhe ty. Potom nastupaet tishina i polniy pokoy. Ty otkrivaesh glasa (0) " son = Game_Tree(message, 0) root.sons[0].sons[0].add(son, 0) root.sons[0].sons[0].sons[0].add(root,0) root.sons[0].sons[0].sons[0].add(root, 1) return root root = make_tree() t = root while t.game_is_won != 1: print t.message print t.sons[0].message print t.sons[1].message action = int(input()) t = t.sons[action]
Отредактировано Vadimka1206 (Окт. 27, 2012 05:14:31)
Офлайн
14
"""line1 line2 line3"""
Офлайн
0
Что это значит?
Офлайн
16
Вместо
message = "Ty podhodish k devushke s misl'y o tom, chto ona i est' ta samaya Marta\n\ Natyagivaesh na lico belozubuyu ulibku, govorish \"Privet\", no otvetom stanovitsya\n\ zvonkaya posh'echina. V glazah plivut kakie-to obrazi, v golove ne stihaet zudeniya roya\n\ voprosov o tom, kto zhe ty. Potom nastupaet tishina i polniy pokoy. Ty otkrivaesh glasa (0) "
message = """Ty podhodish k devushke s misl'y o tom, chto ona i est' ta samaya Marta Natyagivaesh na lico belozubuyu ulibku, govorish \"Privet\", no otvetom stanovitsya zvonkaya posh'echina. V glazah plivut kakie-to obrazi, v golove ne stihaet zudeniya roya voprosov o tom, kto zhe ty. Potom nastupaet tishina i polniy pokoy. Ty otkrivaesh glasa (0) """
Офлайн
14
Или так:
message = r"""Ty podhodish k devushke s misl'y o tom, chto ona i est' ta samaya Marta Natyagivaesh na lico belozubuyu ulibku, govorish "Privet", no otvetom stanovitsya zvonkaya posh'echina. V glazah plivut kakie-to obrazi, v golove ne stihaet zudeniya roya voprosov o tom, kto zhe ty. Potom nastupaet tishina i polniy pokoy. Ty otkrivaesh glasa (0) """
Офлайн
0
Проблема то не в строках
Офлайн
14
Не в этом, но чтобы разбираться в коде, хорошо бы его причесать.
1. Переменные, созданные вне __init__, будут переменнами класса и будут общими для всех экземпляров.
sons = [0,1] message = "" game_is_won = 0
Офлайн