鱼C论坛

 找回密码
 立即注册
查看: 2440|回复: 3

[学习笔记] 【第036讲心得】【类和对象:猜拳小游戏展示】

[复制链接]
发表于 2018-12-4 08:11:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 heidern0612 于 2018-12-17 10:19 编辑

写心得的过程都是自我思考的过程,借鉴了很多论坛前辈大神们的经验,如有疏漏或错误,恳请指出,不胜感激。


1、关于对象和类的含义:


对象 = 属性(特征)+方法(行为)


类:在python中,把具有相同属性和方法的对象归为一个类(class)


百度百科上说: 对象是对客观事物的抽象,类是对对象的抽象。

第一句怎么理解,因为在计算机的里没有客观事物的,所以只能将这些客观事物做一个抽象,用一些属性和行为表示他们;

第二句怎么理解,这些属性在忽略特定值的情况下,可以将他们化为一类,那么这就是类。


老师讲的东西都比较简单,我就不多介绍了


2、给个借鉴大神的小游戏:

PS:找错误找了一天,卧槽好像哪也没出错啊,来回排查不下十遍,找的眼花...

第二天早上的时候,用IDLE排查,最后发现结尾的print少了个括号...我OOXX个E!
#玩家和电脑猜拳游戏
#选择角色1 小甲鱼 2海顿上校  3 玩家输入的名字
#角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
#电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果,本局对战结果...赢...输,是否继续?
#输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
import random

class Character():                                                                                        #定义角色
        def __init__(self):
                print("-----------野球拳大战-------------\n")
                name=""
                temp = input("请输入你的大名:")
                
                while True:
                        game_character = input(f"请选择你的角色:\n\n1--小甲鱼 2--海顿上校 3--{temp}--->:")
                        if game_character.isdigit():
                                game_character = int(game_character)
                                if game_character == 1:
                                        print("玩家角色为---小甲鱼")
                                        self.name = "小甲鱼"
                                        break
                                elif game_character == 2:
                                        print("玩家角色为---海顿上校")
                                        self.name = "海顿上校"
                                        break
                                elif game_character == 3:
                                        print(f"玩家角色为---{temp}")
                                        self.name = temp
                                        break
                                else:
                                        print("----角色选择错误,请重新进行选择----\n")
                        else:
                                print("----输入角色有误!请重新输入人物序号----\n")
                
                
        def pick_up(self):                                                                                #定义玩家选择
                while True:
                        player_select = input("请输入要出拳的选项:\n1---石头; 2---剪刀; 3---布 :")
                        if player_select.isdigit():
                                player_select = int(player_select)
                                if player_select == 1:
                                        print("玩家选择出---石头", )
                                        break
                                elif player_select == 2:
                                        print("玩家选择出---剪刀")
                                        break
                                elif player_select == 3:
                                        print("玩家选择出--- 布")
                                        break
                                else:
                                        print("选择错误!请重新选择!:",end = " ")
                        else:
                                print("输入数字不正确!请重新输入!:",end = " ")
                return player_select
 
class Computer():                                                                #电脑随机出数
        def random_select(self):
                select_number = random.randint(1,3)
                if select_number == 1:
                        print("电脑选择出---石头")
                elif select_number == 2:
                        print("电脑选择出---剪刀")
                else:
                        print("电脑选择出--- 布")
                return select_number
 
 
class Progress ():                                        #主程序判断
    guesstime1 = 0
    guesstime2 = 0
    guesstime3 = 0
    def __init__(self):
        crct = Character()      
        cmpt = Computer()           
        while True:
            player_result = crct.pick_up()
            computer_result = cmpt.random_select()
            if (player_result == 1 and computer_result == 2 )or \
               (player_result == 2 and computer_result == 3 )or \
               (player_result == 3 and computer_result == 1 ):
                print("---玩家赢---!")
                self.guesstime1 += 1
            elif player_result == computer_result:
                print("---平局!---")
                self.guesstime3 += 1
            else:
                print("---电脑赢!---")
                self.guesstime2 += 1
            if input("**********是否继续?(n键退出,任意键继续)**********").lower()=="n":
                break
        if self.guesstime1 > self.guesstime2:
            final_result="玩家胜利!"
        elif self.guesstime1 == self.guesstime2:
            final_result="平---局!"
        else:
            final_result ="电脑胜利!"
        print("-----------------野球拳大战----------------\n游戏结束 :\n"
            f"玩家共赢{self.guesstime1}次---电脑共赢{self.guesstime2}次---平局次数{self.guesstime3}次\n————总结果为 : {final_result}")

gamestart = Progress()



评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
13572044595 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-9 09:55:03 | 显示全部楼层
本帖最后由 13572044595 于 2018-12-9 09:58 编辑

以下两句没看懂,求解答:

[b]15行[/b]    game_character = input(f"请选择你的角色:\n\n1--小甲鱼 2--海顿上校 3--{temp}--->:")
[b]89 行[/b]   if input("**********是否继续?(n键退出,任意键继续)**********").lower()=="n":
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-9 09:59:56 | 显示全部楼层
13572044595 发表于 2018-12-9 09:55
以下两句没看懂,求解答:

15行    game_character = input(f"请选择你的角色:\n\n1--小甲 ...

15行的花括号里的TEMP就是上面玩家input输入的名字,前面的f是格式化字符串。

89行后面的.lower()是把输入的内容转换为小写,如果等于"n"就退出,意思就是不管你输入的大写还是小写,转换的都是小写。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-12-9 10:19:45 | 显示全部楼层
本帖最后由 13572044595 于 2018-12-9 10:21 编辑
heidern0612 发表于 2018-12-9 09:59
15行的花括号里的TEMP就是上面玩家input输入的名字,前面的f是格式化字符串。

89行后面的.lower()是把 ...


知道有这些功能,但是不知道还能这样用,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 07:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表