0

シンプルなゲームを作ろうとしています。

ロジックは次のようなものです: 「5 つのドアがあり、それぞれに 1 から 5 の番号が付けられています。ユーザーは、任意の番号を入力するように求められます。たとえば、「1」と入力すると、GoldRoom が開きます (関連付けられたクラスが開かれます)。処理されます)」

これで、1 つのクラス を定義GoldRoom()し、テストのために「1」と入力しました。処理は期待どおりに行われます。ただし、選択肢として「2」を入力すると、print ステートメントの代わりに処理が行われます。つまり、else ステートメントは実行されません。

どこが間違っていますか?

#################################
#   Learning to make a game#
#################################

# An attempt to make a game
# Each room will be described by a class, whose base class will be Room
# The user will be prompted to enter a number, each number will be assigned with a Room in return

from sys import exit

print "Enter your choice:"
room_chosen = int(raw_input("> "))

if room_chosen == 1:
    goldroom = GoldRoom()
    goldroom.gold_room()


def dead(why):
    print "why, Good Job!"
    exit(0)

#class Room(object):  #the other room will be derived of this
#   pass

class Room(object):
    pass

class GoldRoom(Room):

    # here the user will be asked with question on how much Gold he wants

    print"This room is full of gold. How much do you take!"

    next = raw_input("> ")

    if "0" in next or "1" in next:
        how_much = int(next)
        print how_much
    else:
        dead("Man, learn to type some number")

    if how_much < 50:
        print "Nice, you are not greedy, you win!"
        exit(0)

    else:
        dead("You greedy bastard!")

#class KoiPondRoom(Room):

    # in this room, the user will be made to relax

#class Cthulhu_Room(Room):

    # sort of puzzle to get out

#class Bear_Room(Room):

    # bear room

#class Dark_Room(Room):

    # Dark Room, will  be turned into Zombie

#class Dead_Room(Room):

    # Those who enter here would be dead
if room_chosen == 1:
    goldroom = GoldRoom()
    goldroom.gold_room()
else:
    print "YOU SUCK!"
4

1 に答える 1

5

問題はここにあります:

class GoldRoom(Room):

    # here the user will be asked with question on how much Gold he wants

    print"This room is full of gold. How much do you take!"

ソース全体が python vm にロードされると、このコードが実行され、何かが出力されます。次のように変更する必要があります。

class GoldRoom(Room):

    # here the user will be asked with question on how much Gold he wants
    def gold_room(self):
        print"This room is full of gold. How much do you take!"

        next = raw_input("> ")

        if "0" in next or "1" in next:
            how_much = int(next)
            print how_much
        else:
            dead("Man, learn to type some number")

        if how_much < 50:
            print "Nice, you are not greedy, you win!"
            exit(0)

        else:
            dead("You greedy bastard!")
于 2012-07-04T07:42:42.720 に答える