关于用python写贪吃蛇,已经有很多源代码可以拿过来用,不过我还是想理解一下这些东西到底是咋写的
第一部分,如何写墙
class Point:
def init(self, x=0,y=0):
self.__x = x
self.__y = y
@property
def x(self):
return self.__x
print("self.__x")
@x.setter
def x(self, value):
self.__x = value
@property
def y(self):
return self.__y
print("self.__y")
@y.setter
def y(self, value):
self.__y = value
class Wall:
def init(self):
self.__position = []
size = 24
for i in range(0,size):
self.__position.append(Point(0,i))
self.__position.append(Point(size-1,i))
if i != 0 and i != size-1:
self.__position.append(Point(i,0))
self.__position.append(Point(i,size-1))
def get_position(self):
return self.__position
class Display:
@staticmethod
def display(wall_list):
size = 24
s = “”
for x in range(0,size):
for y in range(0,size):
for i in wall_list:
if x == i.x and y == i.y:
temp = True
break
else:
temp = False
if temp:
s += " ooo"
else:
s += " "
s += “\n”
print(s)
wall = Wall()
Display.display(wall.get_position())
这段代码是别人的,它定义了三个类
按我的理解,在第一段代码之中,这里只用到了初始化的方法 init
用来对x和y进行赋值,如Point(0,24)
就是将x置为0,y置为24,至于其他定义的方法,在这里并未使用
而wall类只定义了一个数组
其中有(0,0)(0,1)(0,2)(0,3)(0,4)(0,5)(0,6)(0,7)(0,8)(0,24)(23,0)(23,24)
也就是说这里是将墙的上下界限定义了出来
对于Display类
它调用display方法获得wall类中的数组,随后运用嵌套循环的方法,来打印代表墙的小圆圈