面向对象
self:代表当前自己的对象。python中没有无参的概念,self就是无参。
pi是math类自带的
私有属性:__属性名
构造方法:init
self是自身,代表无参
set和get方法:setAge()
完数
继承
吃鱼小游戏
import random
import time
x_range = [0, 10]
y_range = [0, 10]
class Turtle:
def __init__(self):
self.power = 100
self.x = random.randint(x_range[0], x_range[1])
self.y = random.randint(y_range[0], y_range[1])
def move(self):
x_new = self.x + random.choice([-2, -1, 1, 2])
if x_new < x_range[0]:
self.x = x_range[0] + (x_range[0] - x_new)
elif x_new > x_range[1]:
self.x = x_range[1] - (x_new - x_range[1])
else:
self.x = x_new
y_new = self.y + random.choice([-2, -1, 1, 2])
if y_new < y_range[0]:
self.y = y_range[0] + (y_range[0] - y_new)
elif y_new > y_range[1]:
self.y = y_range[1] - (y_new - y_range[1])
else:
self.y = y_new
self.power -= 1
return (self.x, self.y)
def eat(self):
self.power += 20
if self.power > 100:
self.power = 100
class Fish:
def __init__(self, no):
self.no = no
self.x = random.randint(x_range[0], x_range[1])
self.y = random.randint(y_range[0], y_range[1])
def move(self):
x_new = self.x + random.choice([-1, 1])
if x_new < x_range[0]:
self.x = x_range[0] + (x_range[0] - x_new)
elif x_new > x_range[1]:
self.x = x_range[1] - (x_new - x_range[1])
else:
self.x = x_new
y_new = self.y + random.choice([-1, 1])
if y_new < y_range[0]:
self.y = y_range[0] + (y_range[0] - y_new)
elif y_new > y_range[1]:
self.y = y_range[1] - (y_new - y_range[1])
else:
self.y = y_new
return (self.x, self.y)
t = Turtle()
fish_ls = []
for i in range(10):
fish = Fish(i + 1)
fish_ls.append(fish)
while True:
pos = t.move()
if t.power <= 0:
print('乌龟挂了')
break
elif len(fish_ls) <= 0:
print('鱼吃光了,游戏结束')
break
for f in fish_ls:
if f.move() == pos:
t.eat()
print('{}号鱼被吃掉了'.format(f.no))
fish_ls.remove(f)
time.sleep(0.5)
人狗大战
字典:存储键值对
numpy
特殊数组
二维全0
二维全1
主对线为1,其他的为0