鱼C论坛

 找回密码
 立即注册
查看: 3574|回复: 6

[技术交流] 乌龟吃鱼的代码

[复制链接]
发表于 2017-6-6 03:06:51 | 显示全部楼层 |阅读模式

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

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

x
自己写了下乌龟吃鱼的代码,写作笔记。
import random

class Life:
    #设置类
    def __init__(self,name,sort):
        if sort==0:
            self.sort=sort
            self.name='小甲鱼'
            self.life=100
            self.x=5
            self.y=5
        if sort==1:
            self.sort=sort
            self.name=name
            self.life=200
            listp=[0,1,2,3,4,6,7,8,9,10]
            self.x=random.choice(listp)
            self.y=random.choice(listp)
    def setName(self,name):
        self.name=name
    def eatfish(self):
            self.life+=20
    def move_1(self):
        dirc=random.randint(1,5)
        if dirc==1:
            if self.y==0:
                self.y+=1
            else:
                self.y-=1
        elif dirc==2:
            if self.y==10:
                self.y-=1
            else:
                self.y+=1
        elif dirc==3:
            if self.x==0:
                self.x+=1
            else:
                self.x-=1
        elif dirc==4:
            if self.x==10:
                self.x-=1
            else:
                self.x+=1
    def move_2(self):
        self.move_1()
        self.move_1()
    def move(self):
        if self.sort==0:
            self.life-=1
            pace=random.randint(1,3)
            if pace==1:
                self.move_1()
            else:
                self.move_2()
        else:
            self.move_1()
        
def game_eat_fish():
    #生成一龟十鱼
    p=Life('',0)
    fishs=[]
    for i in range(10):
        fishc=Life('fish'+str(i+1),1)
        fishs.append(fishc)
    ch_n=input('是否起名(y or n):')
    if ch_n=='y':
        name=input('请起名:')
        p.setName(name)
    cnt=0
    print (cnt)
    #win_print():
        #输出界面
    while 1:
        #开始游戏
        p.move()
        for j in fishs:
            j.move()
            if p.x==j.x and p.y==j.y:
                p.eatfish()
                fishs.remove(j)           
        cnt=cnt+1
        print (cnt)
        #win_print():
        #输出界面
        fish_num=len(fishs)
        if p.life==0 or fish_num==0:
            print('life:'+str(p.life))
            print('fish:'+str(fish_num))
            #结束游戏
            print('游戏结束')
            break

评分

参与人数 2荣誉 +3 鱼币 +5 贡献 +3 收起 理由
康小泡 + 2
小甲鱼 + 3 + 3 + 3 热爱鱼C^_^

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2017-6-6 10:41:14 | 显示全部楼层
支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-7 17:14:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-7 17:15:19 | 显示全部楼层
欢迎大家提出问题或是改进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-8 16:14:55 | 显示全部楼层
来个图嘛~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-8 19:42:38 | 显示全部楼层
还没有写输出界面的函数。如果不学的靠后点的知识,我只能用网格来表示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-28 11:53:00 | 显示全部楼层
虽然做到了分享,但是没有对代码的解释,别人是不懂你的思想和你想做啥的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 05:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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