MyException - 我的异常网
当前位置:我的异常网» Perl/Python » day6功课-游戏人生完善

day6功课-游戏人生完善

www.MyException.Cn  网友分享于:2013-08-11  浏览:0次
day6作业--游戏人生完善

本节作业:

    熟练使用类和模块,写一个交互性强、有冲突的程序。

    一、作业目的

    1、规范程序写法,要按照模块来规范书写;

    2、类的使用,文件之间的调用练习;

    3、思路的开阔,自己编写冲突,实现调用;

    4、对基础知识的熟练掌握。

    本文写了一个决斗系统,两个男的为了一个女的进行决斗,获胜者赢得美女放心,失败者自撸。

    系统功能模块:

    第六天的作业:文字游戏程序是在python3.5.2环境下开发,在python2.7环境下大同小异,主要功能模块如下图:  

    系统目录结构:

    程序采用分层的方式编写,包括系统配置conf、数据库访问层database、业务逻辑层modules,业务处理主程序game_menu.py,主要分类如下图:

    应用知识点

  a) 类的使用

  b) 文件的读写操作

  c) 系统模块、自定义模块的操作

  d) 日志模块的使用

    程序流程图如下:

    程序代码如下: 

    1 主程序game_index.py:   

from modules import common
from conf import menu,setting
from datetime import datetime,date
from modules import role
import pickle,os,re,sys
from database import dbapi
_filename = os.path.join(setting.file_path,'game.log')
filename = os.path.join(setting.file_path,"vs.log")

def duel(skill_num, week_today, date_today, name1, score1, name2, score2,skill_list1,skill_list2):
    """
    决斗,两个人进行决斗,并计算得分
    :param skill_num:  决斗次数
    :param week_today: 星期
    :param date_today:  日期
    :param name1:     决斗者1姓名
    :param score1:    决斗者2姓名
    :param name2:     决斗者3姓名
    :param score2:    决斗者4姓名
    :return:     返回决斗得分
    """
    while True:
        skill1 = input("决斗者1请根据实际情况输入技能编号:")
        if int(skill1) in list(range(11, len(setting.Skills) + 11)):
            skill1 = setting.Skills[int(skill1) - 11]
            if not skill1 in skill_list1:    #判断技能编号是否重复,同一个技能不能释放两次
                tem_score1 = setting.Skill_Score[skill1][0]
                skill_list1.append(skill1)
                score1 += tem_score1
                break
            else:
                print("对不起,技能编号不能重复输入!")
                continue
        else:
            print("对不起,您输入的技能编号有误,请核对后重新输入!")
            continue
    while True:
        skill2 = input("决斗者2请根据实际情况输入技能编号:")
        if int(skill2) in list(range(11, len(setting.Skills) + 11)):
            skill2 = setting.Skills[int(skill2) - 11]
            if not skill2 in skill_list2:      #判断技能编号是否重复,同一个技能不能释放两次
                tem_score2 = setting.Skill_Score[skill2][0]
                skill_list2.append(skill2)
                score2 += tem_score2
                break
            else:
                print("对不起,技能编号不能重复输入!")
                continue
        else:
            print("对不起,您输入的技能编号有误,请核对后重新输入!")
            continue
    with open(_filename, "a+") as f:
        mess = "第{0}回合 决斗者1:{1}  得分:{2}   vs  决斗者2:{3}  得分:{4}  日期:{5}\n"
        f.write(mess.format(skill_num,name1,tem_score1,name2,tem_score2,date_today))
    print(menu.duel_message.format(skill_num, week_today, date_today, name1, skill1, tem_score1, name2, skill2, tem_score2))
    return (score1, score2)

def match_n_score(mes,skill_num,name1,score1,name2,score2):
    '''第n次比赛得分'''
    print(mes.format(skill_num,name1,score1,name2,score2))

def finally_score(mes,skill_num,name1,score1,name2,score2):
    '''
    展示经过几轮比赛之后最终的得分
    :param mes:   展示最终得分框架
    :param skill_num:   最终比赛次数
    :param name1:   决斗者1名字
    :param score1:   决斗者1最终得分
    :param name2:    决斗者2名字
    :param score2:   决斗者2最终得分
    :return:    无返回值
    '''
    skill_num = 3
    print(mes.format(skill_num,name1,score1,name2,score2))



if __name__ == "__main__":
    flag = True
    date_today = date.today().strftime("%Y-%m-%d")
    week_today = common.week_day(date.today())
    while flag:
        common.home_show(menu.homepage)
        num = input("请输入您要查询的功能编号:")
        if num == '1':
            common.stroy_show(menu.story_introduce)
            common.skill_show(menu.skill_show)
        elif num == '2':
            common.pk_show(menu.pk_message,week_today,date_today)
            '''下面该实例化类了,生成两个决斗实例,决斗者1和决斗者2'''
            print("--------------------------下面将完善决斗者1的信息--------------------------------------")
            name1 = input("请输入决斗者1的名字:")
            age1 = input("请输入决斗者1的年龄:")
            sex1 = ""
            '''生成决斗者1的实例'''
            m1 = role.Man(name1,age1,sex1)
            print("\033[31;1m决斗者1信息完善完毕!\033[0m")
            print("--------------------------下面将完善决斗者2的信息--------------------------------------")
            name2 = input("请输入决斗者2的名字:")
            age2 = input("请输入决斗者2的年龄:")
            sex2 = ""
            '''生成决斗者2的实例'''
            m2 = role.Man(name2,age2,sex2)
            print("\033[31;1m决斗者2信息完善完毕!\033[0m")
            '''完善美女的信息'''
            print("--------------------------下面将完善美女的信息--------------------------------------")
            name = input("请输入美女的名字:")
            age = input("请输入美女的年龄:")
            sex = ""
            '''生成美女实例'''
            w1 = role.Woman(name,age,sex)
            common.dule_show(menu.start_duel,m1.name,m2.name,w1.name)
            common.skill_show(menu.skill_show)
            skill_num = 0
            skill_list1 = []
            skill_list2 = []
            while skill_num < 3:
                score = duel(skill_num+1,week_today,date_today,m1.name,m1.score,m2.name,m2.score,skill_list1,skill_list2)
                skill_num += 1
                m1.score = score[0]
                m2.score = score[1]
                match_n_score(menu.duel_score,skill_num,m1.name,m1.score,m2.name,m2.score)
            finally_score(menu.finall_score,skill_num,m1.name,m1.score,m2.name,m2.score)
            '''进行比分判断如果两者得分一样,还要进入加时赛'''
            if m1.score > m2.score:
                print(menu.victor_show.format(m1.name,m1.score,m2.name,m2.score,m1.name))
                with open(filename,'a+') as fa:
                    mess1 = "经过{0}回合比赛  决斗者1:{1}  最终得分:{2}  vs  决斗者2:{3}  最终得分:{4}  {5}胜利  日期:{6}\n"
                    fa.write(mess1.format(3,m1.name,m1.score,m2.name,m2.score,m1.name,date_today))
                role.Woman.bridal_chamber(w1.name,m1.name)
            elif m1.score < m2.score:
                print(menu.victor_show.format(m2.name,m2.score,m1.name,m1.score,m2.name))
                role.Woman.bridal_chamber(w1.name, m2.name)
                with open(filename,'a+') as fa:
                    mess1 = "经过{0}回合比赛  决斗者1:{1}  最终得分:{2}  vs  决斗者2:{3}  最终得分:{4}  {5}胜利  日期:{6}\n"
                    fa.write(mess1.format(3,m2.name,m2.score,m1.name,m1.score,m2.name,date_today))
            elif m1.score == m2.score:
                print("两位决斗者打成平手,将进入加时赛!!!")
                while True:
                    skill_num += 1
                    score = duel(skill_num, week_today, date_today, m1.name, m1.score, m2.name, m2.score, skill_list1,
                             skill_list2)
                    m1.score = score[0]
                    m2.score = score[1]
                    match_n_score(menu.duel_score,skill_num,m1.name,m1.score,m2.name,m2.score)
                    if m1.score > m2.score:
                        print(menu.victor_show.format(m1.name,m1.score,m2.name,m2.score,m1.name))
                        role.Woman.bridal_chamber(w1.name,m1.name)
                        with open(filename, 'a+') as fa:
                            mess1 = "经过{0}回合比赛  决斗者1:{1}  最终得分:{2}  vs  决斗者2:{3}  最终得分:{4}  {5}胜利  日期:{6}\n"
                            fa.write(mess1.format(skill_num, m1.name, m1.score, m2.name, m2.score, m1.name, date_today))
                        break
                    elif m1.score < m2.score:
                        print(menu.victor_show.format(m2.name,m2.score,m1.name,m1.score,m2.name))
                        role.Woman.bridal_chamber(w1.name, m2.name)
                        with open(filename, 'a+') as fa:
                            mess1 = "经过{0}回合比赛  决斗者1:{1}  最终得分:{2}  vs  决斗者2:{3}  最终得分:{4}  {5}胜利  日期:{6}\n"
                            fa.write(mess1.format(skill_num, m2.name, m2.score, m1.name, m1.score, m2.name, date_today))
                        break

        elif num == '3':
            '''数据报表查询模块'''
            dbapi.game_query()

        elif num == 'q' or num == 'quit':
            sys.exit("退出,欢迎下次光临!!!")

    2 配置文件包conf

    2.1 参数配置文件setting.py

import os,sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

Skills = ["rich",'poor','handsome','high','short','car','house','struggle','ugly','soso']
Skill_Score = {"rich":[66,'有钱'],"poor":[15,"贫穷"],"handsome":[49,"帅气"],'high':[36,""],
               "short":[18,""],"car":[40,"有车"],'house':[59,"有房"],'struggle':[42,"上进"],
               'ugly':[14,"丑陋"],"soso":[29,"一般"]}

file_path = os.path.join(BASE_DIR,"log")

    2.2 界面显示模板文件menu.py

homepage = '''
-----------------------------------------------------------------------------------------------
                                欢迎来到PK赢美女平台           星期:{0}   日期:{1}
-----------------------------------------------------------------------------------------------1】平台介绍         【2】PK场            【3】战绩查询          【q]退出

-----------------------------------------------------------------------------------------------

'''
story_introduce = '''\033[32;1m
-----------------------------------------------------------------------------------------------

       \033[34;1m相传民国时候,如果两个男的同时爱上一个女的,那么他们就会通过决战来获得美人的芳心。
    胜利之人抱得美人归。\033[0m
        比赛规则如下:
        1、两人进行三次比赛,三次比赛总分最高者胜出;
        2、如果三次比赛之后,两人成绩一样,则进入加时赛;
        3、加时赛进行次数由此局比萨决定,如果此次某人得分高,则比赛结束,否则一直进行,直到分出胜负;
-----------------------------------------------------------------------------------------------
\033[0m'''
skill_show = '''
-----------------------------------------------------------------------------------------------
     【技能编号】              【技能名称】          【技能属性】             【技能得分】
-----------------------------------------------------------------------------------------------
'''

pk_message = '''\033[38;1m
-----------------------------------------------------------------------------------------------
                            欢迎来到PK场     星期:{0}   日期:{1}
      两位决斗者将在这里进行决斗,胜利的人将抱得没人归来,下面让我们拭目以待,看谁将赢得比赛,获得
  美人的芳心。
-----------------------------------------------------------------------------------------------
\033[0m'''

start_duel = '''
-----------------------------------------------------------------------------------------------
              \033[34;1m下面有请决斗者1:{0} 和 决斗者2:{1} 闪亮登场

              并有请美女:{2}在旁边观战,比赛正式开始\033[0m
-----------------------------------------------------------------------------------------------

'''

duel_message = '''
-----------------------------------------------------------------------------------------------
               第{0}回合                       星期:{1}      日期:{2}
-----------------------------------------------------------------------------------------------
        决斗者1--姓名:{3}                                  决斗者2--姓名:{6}
                                    VS
      技能:{4}    得分:{5}                              技能:{7}   得分:{8}
-----------------------------------------------------------------------------------------------
'''

duel_score = '''
-----------------------------------------------------------------------------------------------

     第{0}回合 决斗者1:{1}  累计得分:{2}       决斗者2:{3}  累计得分:{4}

-----------------------------------------------------------------------------------------------
'''

finall_score = """
-----------------------------------------------------------------------------------------------
                                 \033[31;1m 最终得分展示

    经过{0}回合比赛   决斗者1:{1}  最终得分:{2}       决斗者2:{3}  最终得分:{4}  \033[0m

-----------------------------------------------------------------------------------------------
"""

victor_show = '''
-----------------------------------------------------------------------------------------------

      \033[31;1m 决斗者:{0}  最终得分:{1}  超过  决斗者:{2}  最终得分:{3}

    恭喜决斗者:{4}最终获得胜利,将抱得美人归!!!!Congratulation for you!\033[0m

-----------------------------------------------------------------------------------------------

    3 数据库包database:

    3.1 数据访问层模块dbapi.py

'''
Created on 2017年8月6日
@author:耿长学
数据库访问层:
提供从数据文件、报表文件中读取数据的接口
将数据写入到数据文件的接口
'''
import datetime,re,os,sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from conf import setting
def date_error(dated):
    '''
    查看日期是否合法
    :param dated: 查看的日期
    :return:
    '''
    (year,month,day) = dated.split("-")
    try:
        normal_date = datetime.date(int(year),int(month),int(day))
        return normal_date
    except ValueError:
        print("您输入的日期格式不对,请重新输入!")

def game_query():
    File_path = os.path.join(setting.file_path,'game.log')
    name = input("请输入您要查询的决战者姓名:")
    while True:
        start_date = input("请输入您要查询的起始日期(yyyy-mm-dd):")
        start_date = date_error(start_date)
        if start_date:
            break
        else:
            continue
    while True:
        end_date = input("请输入您要查询的起始日期(yyyy-mm-dd):")
        end_date = date_error(end_date)
        if end_date:
            break
        else:
            continue
    file_lists = []
    if name:
        with open(File_path,'r+') as f:
            for line in f:
                mess = re.search(name,line)
                if mess:
                    re_date = re.search("\d{4}-\d{2}-\d{2}",line)
                    if re_date:
                        re_date = re_date.group()
                        re_date = date_error(re_date)
                        if re_date >= start_date and re_date <= end_date:
                            file_lists.append(line)
                        else:
                            print("这段时间没有%s的决斗记录!" %(mess.group()))
                    else:
                        print("没有匹配到日期!")
                else:
                    pass
    else:
        with open(File_path,'r+') as f:
            for line in f:
                re_date = re.search("\d{4}-\d{2}-\d{2}",line)
                if re_date:
                    re_date = re_date.group()
                    re_date = date_error(re_date)
                    if re_date >= start_date and re_date <= end_date:
                        file_lists.append(line)
                    else:
                         sys.exit("开始时间大于结束时间!!!")
                else:
                    sys.exit("这段时间没有决斗信息!!!")
    '''打印记录'''
    if len(file_lists) == 0:
        pass
    else:
        for file_list in file_lists:
            print(file_list.strip())

    4 业务处理包modules:

    4.1 公共函数模块common.py

import os,sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from conf import menu,setting
from datetime import datetime,date


def home_show(mes):
    """
    主页展示模块,展示平台都有哪些功能
    :param mes:  展示模板
    :return:  无返回值
    """
    print(mes)

def stroy_show(mes):
    '''
    主题介绍,游戏的主题展示,起源
    :param mes:  展示的信息
    :return:
    '''
    print(mes)

def make_equal_length(length,mes,add=" "):
    '''
    统一长度,让看起来整洁好看一点
    :param length:   统一几个字符长度
    :param mes:    统一字符的内容
    :param add:    填充的字符
    :return:
    '''
    if length >= len(mes):
        mes = mes + (length - len(mes)) * add
    else:
        pass
    return mes

def skill_show(mes):
    '''
    技能展示模块,展示具有的功能
    :param mes:展示的技能
    :return: 无返回值
    '''
    print(mes)
    for skill_num,skill in enumerate(setting.Skills,11):
        skill_score = setting.Skill_Score[skill][0]
        skill_introduce = make_equal_length(2,setting.Skill_Score[skill][1])
        skill = make_equal_length(10,skill)
        print("\033[35;1m%10s%32s%10s%26s\033[0m"  %(skill_num,skill,skill_introduce,skill_score))
    print("-----------------------------------------------------------------------------------------------")

def week_day(mes):
    '''
    日期转换函数,将日期转换为中国人习惯额日期格式
    :param date:  要转换的日期
    :return:  返回中文日期
    '''
    week_lists = ["","","","","","",""]
    week_today = week_lists[date.weekday(mes)]
    return week_today

def pk_show(mes,date1,week1):
    '''
    进入PK场展示
    :param mes:   展示的信息
    :return: 无返回值
    '''
    print(mes.format(week1,date1))

def dule_show(mes,name1,name2,name3):
    '''
    邀请两位决斗者登场信息展示
    :param mes:   登场展示信息
    :return: 无返回值
    '''
    print(mes.format(name1,name2,name3))

    4.2角色类模块role.py

import os,sys
from modules import common
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from conf import setting,menu
class Person(object):
    ''''生成一个男女共有属性的类'''
    def __init__(self,name,age,sex):
        '''实例化类的属性'''
        self.name = name
        self.age = age
        self.sex = sex

class Man(Person):
    '''生成一个男人类,继承Person类'''
    def __init__(self,name,age,sex,score=0):
        super(Man,self).__init__(name,age,sex)   #重写父类方法,由于上面把父类冲掉了
        self.score = score

class Woman(Person):
    '''定义一个女人类,继承父类Person'''
    def __init__(self,name,age,sex,belong_to=""):
        '''重写父类方法'''
        super(Woman,self).__init__(name,age,sex)
        self.belog_to = belong_to

    @staticmethod
    def bridal_chamber(name1,name2):
        '''获胜者将与美女洞房'''
        print("\033[34;1m恭喜你赢得这次决赛,奴家%s从此以后属于你了,今晚我将与%s洞房花烛夜!!\033[0m" %(name1,name2))

    5 日志报表目录log:

    5.1 对战日志game.log

第1回合 决斗者1:alex  得分:66   vs  决斗者2:wupeiqi  得分:15  日期:2017-08-06
第2回合 决斗者1:alex  得分:40   vs  决斗者2:wupeiqi  得分:59  日期:2017-08-06
第3回合 决斗者1:alex  得分:42   vs  决斗者2:wupeiqi  得分:18  日期:2017-08-06
第1回合 决斗者1:张前海  得分:66   vs  决斗者2:张欣欣  得分:66  日期:2017-08-06
第2回合 决斗者1:张前海  得分:40   vs  决斗者2:张欣欣  得分:18  日期:2017-08-06
第3回合 决斗者1:张前海  得分:42   vs  决斗者2:张欣欣  得分:40  日期:2017-08-06
第1回合 决斗者1:孟令号  得分:66   vs  决斗者2:高自动  得分:40  日期:2017-08-06
第2回合 决斗者1:孟令号  得分:18   vs  决斗者2:高自动  得分:36  日期:2017-08-06
第3回合 决斗者1:孟令号  得分:49   vs  决斗者2:高自动  得分:18  日期:2017-08-06
第1回合 决斗者1:林磊  得分:66   vs  决斗者2:蒋小波  得分:18  日期:2017-08-06
第2回合 决斗者1:林磊  得分:36   vs  决斗者2:蒋小波  得分:49  日期:2017-08-06
第3回合 决斗者1:林磊  得分:42   vs  决斗者2:蒋小波  得分:59  日期:2017-08-06
第1回合 决斗者1:于洋  得分:66   vs  决斗者2:万宝  得分:40  日期:2017-08-06
第2回合 决斗者1:于洋  得分:18   vs  决斗者2:万宝  得分:36  日期:2017-08-06
第3回合 决斗者1:于洋  得分:49   vs  决斗者2:万宝  得分:15  日期:2017-08-06
第1回合 决斗者1:张前海  得分:66   vs  决斗者2:周万宝  得分:66  日期:2017-08-06
第2回合 决斗者1:张前海  得分:18   vs  决斗者2:周万宝  得分:18  日期:2017-08-06
第3回合 决斗者1:张前海  得分:36   vs  决斗者2:周万宝  得分:49  日期:2017-08-06
第1回合 决斗者1:乔兵  得分:66   vs  决斗者2:周瑜  得分:66  日期:2017-08-06
第2回合 决斗者1:乔兵  得分:15   vs  决斗者2:周瑜  得分:15  日期:2017-08-06
第3回合 决斗者1:乔兵  得分:49   vs  决斗者2:周瑜  得分:49  日期:2017-08-06
第4回合 决斗者1:乔兵  得分:40   vs  决斗者2:周瑜  得分:18  日期:2017-08-06
第1回合 决斗者1:张鹏  得分:66   vs  决斗者2:高进  得分:66  日期:2017-08-06
第2回合 决斗者1:张鹏  得分:15   vs  决斗者2:高进  得分:15  日期:2017-08-06
第3回合 决斗者1:张鹏  得分:49   vs  决斗者2:高进  得分:49  日期:2017-08-06
第4回合 决斗者1:张鹏  得分:42   vs  决斗者2:高进  得分:40  日期:2017-08-06

    5.2 对战报表vs.log

经过3回合比赛  决斗者1:alex  最终得分:148  vs  决斗者2:wupeiqi  最终得分:92  alex胜利  日期:2017-08-06
经过3回合比赛  决斗者1:张前海  最终得分:148  vs  决斗者2:张欣欣  最终得分:124  张前海胜利  日期:2017-08-06
经过3回合比赛  决斗者1:孟令号  最终得分:133  vs  决斗者2:高自动  最终得分:94  孟令号胜利  日期:2017-08-06
经过3回合比赛  决斗者1:林磊  最终得分:144  vs  决斗者2:蒋小波  最终得分:126  林磊胜利  日期:2017-08-06
经过3回合比赛  决斗者1:于洋  最终得分:133  vs  决斗者2:万宝  最终得分:91  于洋胜利  日期:2017-08-06
经过3回合比赛  决斗者1:周万宝  最终得分:133  vs  决斗者2:张前海  最终得分:120  周万宝胜利  日期:2017-08-06
经过4回合比赛  决斗者1:乔兵  最终得分:170  vs  决斗者2:周瑜  最终得分:148  乔兵胜利  日期:2017-08-06
经过4回合比赛  决斗者1:张鹏  最终得分:172  vs  决斗者2:高进  最终得分:170  张鹏胜利  日期:2017-08-06

    程序部分功能模块截图展示:

     1 主菜单:

-----------------------------------------------------------------------------------------------
                                欢迎来到PK赢美女平台           星期:{0}   日期:{1}
-----------------------------------------------------------------------------------------------

      【1】平台介绍         【2】PK场            【3】战绩查询          【q]退出

-----------------------------------------------------------------------------------------------  

    2 输入1,进入角色介绍菜单,并查看战士的介绍: 

-----------------------------------------------------------------------------------------------

       相传民国时候,如果两个男的同时爱上一个女的,那么他们就会通过决战来获得美人的芳心。
    胜利之人抱得美人归。
        比赛规则如下:
        1、两人进行三次比赛,三次比赛总分最高者胜出;
        2、如果三次比赛之后,两人成绩一样,则进入加时赛;
        3、加时赛进行次数由此局比萨决定,如果此次某人得分高,则比赛结束,否则一直进行,直到分出胜负;
-----------------------------------------------------------------------------------------------


-----------------------------------------------------------------------------------------------
     【技能编号】              【技能名称】          【技能属性】             【技能得分】
-----------------------------------------------------------------------------------------------

        11                      rich              有钱                        66
        12                      poor              贫穷                        15
        13                      handsome          帅气                        49
        14                      high              高                         36
        15                      short             矮                         18
        16                      car               有车                        40
        17                      house             有房                        59
        18                      struggle          上进                        42
        19                      ugly              丑陋                        14
        20                      soso              一般                        29
-----------------------------------------------------------------------------------------------
    3 返回主菜单,输入2,进入PK场:

-----------------------------------------------------------------------------------------------
                            欢迎来到PK场     星期:2017-08-07   日期:一
      两位决斗者将在这里进行决斗,胜利的人将抱得没人归来,下面让我们拭目以待,看谁将赢得比赛,获得
  美人的芳心。
-----------------------------------------------------------------------------------------------

--------------------------下面将完善决斗者1的信息--------------------------------------
请输入决斗者1的名字:alex
请输入决斗者1的年龄:28
决斗者1信息完善完毕!
--------------------------下面将完善决斗者2的信息--------------------------------------
请输入决斗者2的名字:吴沛齐
请输入决斗者2的年龄:29
决斗者2信息完善完毕!
--------------------------下面将完善美女的信息--------------------------------------
请输入美女的名字:凤姐
请输入美女的年龄:18

-----------------------------------------------------------------------------------------------
              下面有请决斗者1:alex 和 决斗者2:吴沛齐 闪亮登场

              并有请美女:凤姐在旁边观战,比赛正式开始
-----------------------------------------------------------------------------------------------



-----------------------------------------------------------------------------------------------
     【技能编号】              【技能名称】          【技能属性】             【技能得分】
-----------------------------------------------------------------------------------------------

        11                      rich              有钱                        66
        12                      poor              贫穷                        15
        13                      handsome          帅气                        49
        14                      high              高                         36
        15                      short             矮                         18
        16                      car               有车                        40
        17                      house             有房                        59
        18                      struggle          上进                        42
        19                      ugly              丑陋                        14
        20                      soso              一般                        29
-----------------------------------------------------------------------------------------------
    4对战开始,可以选择自动战斗,也可以手动战斗

    手动输入技能,输入的技能不能重复,如果重复将重新输入,因为不能一直只用最高得分的技能,那就没有意思了。并且因为游戏是根据身高,有钱,有房,有车,高矮,胖瘦等作为技能的。不能重复。

-----------------------------------------------------------------------------------------------
决斗者1请根据实际情况输入技能编号:11
决斗者2请根据实际情况输入技能编号:12

-----------------------------------------------------------------------------------------------
               第1回合                       星期:一      日期:2017-08-07
-----------------------------------------------------------------------------------------------
        决斗者1--姓名:alex                                  决斗者2--姓名:吴沛齐
                                    VS
      技能:rich    得分:66                              技能:poor   得分:15
-----------------------------------------------------------------------------------------------


-----------------------------------------------------------------------------------------------

     第1回合 决斗者1:alex  累计得分:66       决斗者2:吴沛齐  累计得分:15

-----------------------------------------------------------------------------------------------

决斗者1请根据实际情况输入技能编号:11
对不起,技能编号不能重复输入!
决斗者1请根据实际情况输入技能编号:16
决斗者2请根据实际情况输入技能编号:15

-----------------------------------------------------------------------------------------------
               第2回合                       星期:一      日期:2017-08-07
-----------------------------------------------------------------------------------------------
        决斗者1--姓名:alex                                  决斗者2--姓名:吴沛齐
                                    VS
      技能:car    得分:40                              技能:short   得分:18
-----------------------------------------------------------------------------------------------


-----------------------------------------------------------------------------------------------

     第2回合 决斗者1:alex  累计得分:106       决斗者2:吴沛齐  累计得分:33

-----------------------------------------------------------------------------------------------

决斗者1请根据实际情况输入技能编号:17
决斗者2请根据实际情况输入技能编号:14

-----------------------------------------------------------------------------------------------
               第3回合                       星期:一      日期:2017-08-07
-----------------------------------------------------------------------------------------------
        决斗者1--姓名:alex                                  决斗者2--姓名:吴沛齐
                                    VS
      技能:house    得分:59                              技能:high   得分:36
-----------------------------------------------------------------------------------------------


-----------------------------------------------------------------------------------------------

     第3回合 决斗者1:alex  累计得分:165       决斗者2:吴沛齐  累计得分:69

-----------------------------------------------------------------------------------------------


-----------------------------------------------------------------------------------------------
                                  最终得分展示

    经过3回合比赛   决斗者1:alex  最终得分:165       决斗者2:吴沛齐  最终得分:69 

-----------------------------------------------------------------------------------------------


-----------------------------------------------------------------------------------------------

       决斗者:alex  最终得分:165  超过  决斗者:吴沛齐  最终得分:69

    恭喜决斗者:alex最终获得胜利,将抱得美人归!!!!Congratulation for you!

-----------------------------------------------------------------------------------------------

恭喜你赢得这次决赛,奴家凤姐从此以后属于你了,今晚我将与alex洞房花烛夜!!

    每一回合各自输入技能,比赛供三次,获胜这将得到凤姐,与凤姐共度良宵。

    如若三轮之后得分相同,则进入加时赛,加时赛每轮比较得分,只有有一方得分高于另一方则停止比赛,并赢得比赛,收获凤姐。

    5 返回主菜单,输入3,查看战绩榜:

    首先输入查找名字、起始日期和结束日期:

请输入您要查询的功能编号:3
请输入您要查询的决战者姓名:alex
请输入您要查询的起始日期(yyyy-mm-dd):2017-1-1
请输入您要查询的起始日期(yyyy-mm-dd):2018-08-07

第1回合 决斗者1:alex  得分:66   vs  决斗者2:wupeiqi  得分:15  日期:2017-08-06
第2回合 决斗者1:alex  得分:40   vs  决斗者2:wupeiqi  得分:59  日期:2017-08-06
第3回合 决斗者1:alex  得分:42   vs  决斗者2:wupeiqi  得分:18  日期:2017-08-06
第1回合 决斗者1:alex  得分:66   vs  决斗者2:吴沛齐  得分:15  日期:2017-08-07
第2回合 决斗者1:alex  得分:40   vs  决斗者2:吴沛齐  得分:18  日期:2017-08-07
第3回合 决斗者1:alex  得分:59   vs  决斗者2:吴沛齐  得分:36  日期:2017-08-07


   
6 最后,返回主菜单,输入q,退出程序,结束:

-----------------------------------------------------------------------------------------------
                                欢迎来到PK赢美女平台           星期:{0}   日期:{1}
-----------------------------------------------------------------------------------------------

      【1】平台介绍         【2】PK场            【3】战绩查询          【q]退出

-----------------------------------------------------------------------------------------------


请输入您要查询的功能编号:q
退出,欢迎下次光临!!!
    收获:

    1、在模块调用过程中,我们总是从另外一个模块调用函数、类等,如果这个模块中的函数引用了当前模块的函数,那么是不受影响的,调用这个函数,可以自动调用引用函数,不用我们担心会出错;

    2、日期函数自带拍错功能,如年必须是四位,月必须是1-12,天必须根据当月的天数1-31内规则处理,如果有误,则会报错,这样我们就能用这个特性判断输入的日期是否合法,因为在excel中,比如你输入2017-13-12会自动给你转换为:2018-1-12,在Python中就是报错;

    3、类的使用规则,其实在程序中,两个人PK我就是实例化了两个人,利用类的功能修改、添加属性给这两个属性,从而实现了代码的统一,调用时候也不容易出错;但是可能刚接触类吧!不能用类写太多的方法,这个后续还待加强。

    4、还有就是学习是不断重复的过程,前面学习过了,可能后面有忘记了,这个时候需要回过头来在温习一下,掌握基础的用法,其实原理都是一样的。

文章评论

旅行,写作,编程
旅行,写作,编程
为什么程序员都是夜猫子
为什么程序员都是夜猫子
中美印日四国程序员比较
中美印日四国程序员比较
程序员必看的十大电影
程序员必看的十大电影
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
 程序员的样子
程序员的样子
每天工作4小时的程序员
每天工作4小时的程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
我的丈夫是个程序员
我的丈夫是个程序员
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
如何成为一名黑客
如何成为一名黑客
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
那些争议最大的编程观点
那些争议最大的编程观点
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员都该阅读的书
程序员都该阅读的书
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员应该关注的一些事儿
程序员应该关注的一些事儿
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
鲜为人知的编程真相
鲜为人知的编程真相
10个调试和排错的小建议
10个调试和排错的小建议
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
我是如何打败拖延症的
我是如何打败拖延症的
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
一个程序员的时间管理
一个程序员的时间管理
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Java程序员必看电影
Java程序员必看电影
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
编程语言是女人
编程语言是女人
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
老程序员的下场
老程序员的下场
程序员的鄙视链
程序员的鄙视链
代码女神横空出世
代码女神横空出世
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有