我正在学习一门名为Python游戏开发的课程™ : 构建11个总游戏。这是我运行代码时的样子:
但当我运行它时,它没有显示任何内容。这是我的代码:
import collections import math import os def path(filename): filepath = os.path.realpath(__file__) dirpath = os.path.dirname(filepath) fullpath = os.path.join(dirpath,filename) return fullpath def line(a,b,x,y): import turtle turtle.up() turtle.goto(a,b) turtle.down() turtle.goto(x,y) class vector(collections.Sequence): PRECISION = 6 __slots__ = ('_x','_y','_hash') def __init__(self,x,y): self._hash = None self._x = round(x,self.PRECISION) self._y = round(y,self.PRECISION) @property #getter def x(self): return self._x @x.setter def x(self,value): if self._hash is not None: raise ValueError('Cannot set x after hashing') self._x = round(value,self.PRECISION) @property def y(self): return self._y @y.setter def y(self,value): if self._hash is not None: raise ValueError('Cannot set y after hashing') self._y = round(value,self.PRECISION) def __hash__(self): if self._hash is None: pair = (self.x,self.y) self._hash = hash(pair) return self._hash def __len__(self): return 2 def __getitem__(self,index): if index == 0: return self.x elif index == 1: return self.y else: raise IndexError def copy(self): type_self = type(self) return type_self(self.x,self.y) def __eq__(self,other): if isinstance(other,vector): return self.x == other.x and self.y == other.y return NotImplemented def __ne__(self,other): if isinstance(other,vector): return self.x != other.x and self.y != other.y return NotImplemented def __iadd__(self,other): #v.__iadd__(w) -> v += w if self._hash is not None: raise ValueError('Cannot add vector after hashing') elif isinstance(other,vector): self.x += other.x self.y += other.y else: self.x += other self.y += other return self def __add__(self,other): #v.__iadd__(w) -> v + w copy = self.copy() return copy.__iadd__(other) __radd__ = __add__ def move (self,other): #move vector by other (n place) #v = vector(1,2) w = vector(3,4) v.move(w) v ==> vector(4,6) self.__iadd__(other) def __isub(self,other): #v.__isub__(w) -> v -= w if self._hash is not None: raise ValueError('Cannot subtract vector after hashing') elif isinstance(other,vector): self.x -= other.x self.y -= other.y else: self.x -= other self.y -= other return self def __sub__(self,other): #v.__sub__(w) -> w - w copy = self.copy() return copy.__isub__(other) def __imul__(self,other): #v.__imul__(w) => v*= w if self._hash is not None: raise ValueError('Cannot Multiply vector after hashing') elif isinstance(other,vector): self.x *= other.x self.y *= other.y else: self.x *= other self.y *= other return self def __mul__(self,other): #v.__mul__(w) => v * w copy = self.copy() return copy.__imul__(other) __rmul__ = __mul__ def scale(self,other): self.__imul__(other) def __itruediv__(self,other): #v.__itruediv__(w) => v/= w if self._hash is not None: raise ValueError('Cannot divide vector after hashing') elif isinstance(other,vector): self.x /= other.x self.y /= other.y else: self.x /= other self.y /= other return self def __truediv__(self,other): #v.__truediv__(w) => v / w copy = self.copy() return copy.__itruediv__(other) def __neg__(self): #v.__neg__() -> -v copy = self.copy() copy.x = -copy.x copy.y = -copy.y return copy def __abs__(self): #vector(3,4) => 5 return (self.x**2+self.y**2)**0.5 def rotate(self,angle): if self._hash is not None: raise ValueError('cannot rotate vector after hashing') radians = angle*math.pi/180.0 cosine = math.cos(radians) sine = math.sin(radians) x = self.x y = self.y self.x = x*cosine - y*sine self.y = y*cosine + x*sine def __repr__(self): #v.__repr__() => repr(v) type_self = type(self) name = type_self.__name__ return '{} ({!r},{!r})'.format(name,self.x,self.y)
这是我的另一个代码
from random import * from turtle import * from base import vector ant = vector(0,0) aim = vector(2,0) def wrap(value): return value def draw (): ant.move(aim) ant.x = wrap(ant.x) ant.y = wrap(ant.y) aim.move(random() - 0.5) aim.rotate(random*10 -5) clear() goto(ant.x,ant.y) dot(4) if running: ontimer(draw,100) setup(420,420,370,0) hideturtle() tracer(False) up() running = True draw() done()
当我运行它时,它没有显示任何内容。我该如何修复?请帮帮我!非常感谢。
尝试:
重做代码并对其进行研究,但没有奏效。我还应该尝试什么?