python简单游戏设计

python简单游戏设计

用python脚本对对象编程,结合其他方式,简单编辑一个模拟游戏。该游戏以王者荣耀的地图为背景,可以简单实现以下功能:

  • 以单机的形式运行,用户没有密码,只需要输入玩家名称即可进入,退出后还原;
  • 游戏有三个默认玩家:”zhangqincheng”、”huliting”、”anjinchuan”。如果需要加入新的玩家名称,可以自己创建,输入玩家名称,年龄,性别即可,战斗值默认为1500;
  • 可以显示所有玩家的名称;
  • 输入玩家名称登陆游戏后,自动显示玩家信息。游戏地图是以消耗战斗值为基础的,可以选择五个地图,这五个地图是:

    • 墨家机关道,消耗100战斗值。游戏中地图名为”mojiajiguandao”;
    • 长平攻防战,消耗200战斗值。游戏中地图名为”changpinggongfangzhan”;
    • 王者峡谷,消耗150战斗值。游戏中地图名为”wangzhexiagu”;
    • 深渊大战斗,消耗300战斗值。游戏中地图名为”shenyuandazhandou”;
    • 火焰山大战,消耗500战斗值。游戏中地图名为”huoyanshandazhan”;
  • 玩家可以选择退出登录,也可以选择退出游戏;

该模拟游戏脚本如下所示:

import time

class Game(object):
    def __init__(self, name, age, gendar, com_value):
        self.name = name
        self.age = age
        self.gendar = gendar
        self.com_value = com_value

    def mojia(self):
        print "Welcome to mojiajiguandao !"
        time.sleep(1)
        print "You have {} combat value !".format(self.com_value)
        time.sleep(1)
        print "This map will reduce 100 combat value !"
        self.com_value -= 100
        time.sleep(2)
        print "20 min pass...."
        time.sleep(5)
        print "Game over ! "
        time.sleep(2)
        print "You have {} combat value now !".format(self.com_value)
        return time.sleep(1.5)

    def changping(self):
        print "Welcome to changpinggongfangzhan !"
        time.sleep(1)
        print "You have {} combat value !".format(self.com_value)
        time.sleep(1)
        print "This map will reduce 200 combat value !"
        self.com_value -= 200
        time.sleep(2)
        print "25 min pass...."
        time.sleep(5)
        print "Game over ! "
        time.sleep(2)
        print "You have {} combat value now !".format(self.com_value)
        return time.sleep(1.5)

    def wangzhe(self):
        print "Welcome to wangzhexiagu !"
        time.sleep(1)
        print "You have {} combat value !".format(self.com_value)
        time.sleep(1)
        print "This map will reduce 150 combat value !"
        self.com_value -= 150
        time.sleep(2)
        print "15 min pass...."
        time.sleep(5)
        print "Game over ! "
        time.sleep(2)
        print "You have {} combat value now !".format(self.com_value)
        return time.sleep(1.5)

    def shenyuan(self):
        print "Welcome to shenyuandazhandou !"
        time.sleep(1)
        print "You have {} combat value !".format(self.com_value)
        time.sleep(1)
        print "This map will reduce 300 combat value !"
        self.com_value -= 300
        time.sleep(2)
        print "30 min pass...."
        time.sleep(5)
        print "Game over ! "
        time.sleep(2)
        print "You have {} combat value now !".format(self.com_value)
        return time.sleep(1.5)

    def huoyanshan(self):
        print "Welcome to huoyanshandazhan !"
        time.sleep(1)
        print "You have {} combat value !".format(self.com_value)
        time.sleep(1)
        print "This map will reduce 500 combat value !"
        self.com_value -= 500
        time.sleep(2)
        print "40 min pass...."
        time.sleep(5)
        print "Game over ! "
        time.sleep(2)
        print "You have {} combat value now !".format(self.com_value)
        return time.sleep(1.5)

zhangqincheng = Game("zhangqincheng", 18, "male", 1000)
huliting = Game("huliting", 18, "female", 2000)
anjinchuan = Game("anjinchuan", 18, "male", 2500)
User_List = {"zhangqincheng": zhangqincheng,
             "huliting": huliting,
             "anjinchuan": anjinchuan
             }

def Login():
    User = raw_input("Please input your username : ")
    if User in User_List:
        print """
        Login successfully !
            username : {}
            age : {}
            gendar : {}
            combat value :{}
        """.format(User_List[User].name, User_List[User].age, User_List[User].gendar, User_List[User].com_value)

        def mo():
            User_List[User].mojia()

        def chang():
            User_List[User].changping()

        def wang():
            User_List[User].wangzhe()

        def shen():
            User_List[User].shenyuan()

        def huo():
            User_List[User].huoyanshan()

        Game_List = {
            "1": mo,
            "2": chang,
            "3": wang,
            "4": shen,
            "5": huo
        }

        while True:
            print """
            Select game that you want to play !
            1: mojiajiguandao (-100)
            2: changpinggongfangzhan (-200)
            3: wangzhexiagu (-150)
            4: shenyuandazhandou (-300)
            5: huoyanshandazhan (-500)
            6: quit
            """
            game_sel = raw_input("Please input 1-6 : ").strip()
            if game_sel in Game_List.keys():
                Game_List[game_sel]()
            else:
                if game_sel == "6":
                    return "Exit game !"
                else:
                    print "Please input 1-6 !"
                    print "\n"
    else:
        return "Username is not exist !"

def Exist(username):
    if username in User_List.keys():
        return False
    else:
        return True

def Create():
    while True:
        New_User = raw_input("Please input your username that you want to create : ")
        New_Age = input("Please input your age : ")
        New_Gendar = raw_input("Please input your gendar (male or female) : ").strip()
        if New_Gendar in ["male", "female"]:
            if Exist(New_User):
                New_User_Name = Game(New_User, New_Age, New_Gendar, 1500)
                User_List.setdefault(New_User, New_User_Name)
                return """
                Create new player successfully !
                    username : {}
                    age : {}
                    gendar : {}
                    combat value : 1500
                """.format(New_User_Name.name, New_User_Name.age, New_User_Name.age)
            else:
                print "%s is exist ! " % (New_User)
                print "\n"
        else:
            print "Please input male or female !"
            print "\n"

def Show():
    print "All players are :"
    for i in User_List.keys():
        print i
    return ""

def Quit():
    print "Good bye !"
    return exit(0)

Select_List = {
    "1": Login,
    "2": Create,
    "3": Show,
    "4": Quit
}

while True:
    print """
                        welcome to xxx game
Please select what you want to do !
    1: Login
    2: Create New Player
    3: Show All Players
    4: Quit
"""
    sec = raw_input("Please input 1-4 : ")
    if sec in Select_List.keys():
        print Select_List[sec]()
    else:
        print "Please input 1,2,3,4 !"

该模拟游戏脚本的效果图如下所示:
创建玩家效果图:

这里写图片描述

由图可以看出,可以创建自己想要的玩家名称,但是如果该名称存在,会显示该玩家已经存在。

显示所有玩家效果图:

这里写图片描述

选择显示所有玩家后,可以将所有玩家名称显示出来。

玩家登陆效果图:

这里写图片描述

玩家通过玩家名登陆后,会显示该玩家的信息。

玩家登陆后游戏选择效果图:

这里写图片描述

这里写图片描述

玩家可以选择想要进入的地图或者选择退出,执行时以地图1”mojiajiguandao”为例。

退出游戏效果图:

这里写图片描述

选择退出游戏后,显示”Good bye !”并退出。
因为是简单模拟一个游戏,所以可能会存在一些BUG或者某些不合理的地方,敬请见谅!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值