def draw_canvas(state):
'''Draw all the cities in the current state in a canvas. Indicate the start
city with a description and the current city by the turtle pointer head
'''
turtle.clear()
turtle.hideturtle()
turtle.up()
turtle.pencolor("blue")
current_city = state.current_city
for city in state.cities:
x = city.position[0]
y = city.position[1]
turtle.goto(x, y)
if city.is_start:
turtle.write('{}, Start'.format(city.name), align="center", font=("Arial", 12, "bold"))
elif city == current_city:
turtle.write('{}, Current'.format(city.name), align="center", font=("Arial", 12, "bold"))
else:
turtle.write('{}'.format(city.name), align="center", font=("Arial", 12, "bold"))
turtle.goto(current_city.position[0], current_city.position[1])
python类hideturtle()的实例源码
def __init__(self,
text,
color,
x = 0,
y = 0,
font_name = "Arial",
font_size = 12,
font_type = "normal",
align = "left"):
turtle.Turtle.__init__(self)
self.hideturtle()
self.penup()
self.goto(x, y)
self.color(color)
self.font = (font_name, font_size, font_type)
self.align = align
# Attributes
self.text = text
# Append to master label list
Game.labels.append(self)
def __init__(self,
text,
color,
x = 0,
y = 0,
font_name = "Arial",
font_size = 12,
font_type = "normal",
align = "left"):
turtle.Turtle.__init__(self)
self.hideturtle()
self.penup()
self.goto(x, y)
self.color(color)
self.font = (font_name, font_size, font_type)
self.align = align
# Attributes
self.text = text
# Append to master label list
Game.labels.append(self)
def __init__(
self,
screen_width = 800,
screen_height = 600,
background_color = "black",
title = "Simple Game Library by /u/wynand1004 AKA @TokyoEdTech",
splash_time = 3):
# Setup using Turtle module methods
turtle.setup(width=screen_width, height=screen_height)
turtle.bgcolor(background_color)
turtle.title(title)
turtle.tracer(0) # Stop automatic screen refresh
turtle.listen() # Listen for keyboard input
turtle.hideturtle() # Hides default turtle
turtle.penup() # Puts pen up for defaut turtle
turtle.setundobuffer(0) # Do not keep turtle history in memory
turtle.onscreenclick(self.click)
# Game Attributes
self.FPS = 30.0 # Lower this on slower computers or with large number of sprites
self.SCREEN_WIDTH = screen_width
self.SCREEN_HEIGHT = screen_height
self.DATAFILE = "game.dat"
self.SPLASHFILE = "splash.gif" # Must be in the same folder as game file
self.title = title
self.gravity = 0
self.state = "showsplash"
self.splash_time = splash_time
self.time = time.time()
# Clear the terminal and print the game title
self.clear_terminal_screen()
print (self.title)
# Show splash
self.show_splash(self.splash_time)
# Pop ups
def destroy(self):
# When a sprite is destoyed move it off screen, hide it, and set state to None
# This is a workaround as there is no way to delete a sprite from memory in the turtle module.
self.hideturtle()
self.goto(10000, 10000)
self.state = None
def __init__(self,
shape,
color,
x = 0,
y = 0):
turtle.Turtle.__init__(self)
# self.hideturtle()
self.penup()
# Register shape if it is a .gif file
if shape.endswith(".gif"):
try:
turtle.register_shape(shape)
except:
Game.logs.append("Warning: {} file missing from disk.".format(shape))
# Set placeholder shape
shape = "square"
self.shape(shape)
self.color(color)
self.goto(x, y)
#Set click binding
self.onclick(self.click)
# Append to master button list
Game.buttons.append(self)
def __init__(
self,
screen_width = 800,
screen_height = 600,
background_color = "black",
title = "Simple Game Library by /u/wynand1004 AKA @TokyoEdTech",
splash_time = 3):
# Setup using Turtle module methods
turtle.setup(width=screen_width, height=screen_height)
turtle.bgcolor(background_color)
turtle.title(title)
turtle.tracer(0) # Stop automatic screen refresh
turtle.listen() # Listen for keyboard input
turtle.hideturtle() # Hides default turtle
turtle.penup() # Puts pen up for defaut turtle
turtle.setundobuffer(0) # Do not keep turtle history in memory
turtle.onscreenclick(self.click)
# Game Attributes
self.FPS = 30.0 # Lower this on slower computers or with large number of sprites
self.SCREEN_WIDTH = screen_width
self.SCREEN_HEIGHT = screen_height
self.DATAFILE = "game.dat"
self.SPLASHFILE = "splash.gif" # Must be in the same folder as game file
self.title = title
self.gravity = 0
self.state = "showsplash"
self.splash_time = splash_time
self.time = time.time()
# Clear the terminal and print the game title
self.clear_terminal_screen()
print (self.title)
# Show splash
self.show_splash(self.splash_time)
# Pop ups
def __init__(self,
shape,
color,
x = 0,
y = 0):
turtle.Turtle.__init__(self)
# self.hideturtle()
self.penup()
# Register shape if it is a .gif file
if shape.endswith(".gif"):
try:
turtle.register_shape(shape)
except:
Game.logs.append("Warning: {} file missing from disk.".format(shape))
# Set placeholder shape
shape = "square"
self.shape(shape)
self.color(color)
self.goto(x, y)
#Set click binding
self.onclick(self.click)
# Append to master button list
Game.buttons.append(self)
def plot_table(self, *gamma, colors=['red', 'green', 'blue'], draw_speed=16, scale_x=1):
"""Plot gamma table"""
if len(gamma) == 1 and len(gamma[0]) == 3:
gamma = gamma[0]
if all(x == gamma[0] for x in gamma):
gamma = gamma[:1]
turtle.penup()
turtle.tracer(0, 16)
turtle.speed(0)
turtle.color('black')
for color, points_y in enumerate(gamma):
if len(gamma) == len(colors):
turtle.color(colors[color])
elif len(colors) == 1:
turtle.color(colors[0])
for x, y in enumerate(points_y):
trace = x and x % draw_speed == 0
if trace:
turtle.tracer(1)
turtle.setposition(x * scale_x, y)
if trace:
turtle.tracer(0)
if x == 0:
turtle.showturtle()
turtle.pendown()
turtle.penup()
turtle.hideturtle()
turtle.update()
def draw_final_path(state):
'''Draw the TSP path given the cities in the correct order'''
if not state:
return None
states = []
while state:
states.append(state)
state = state.parent
cities = [state.current_city for state in states]
rest = deepcopy(cities)
rest = rest[1:]
rest.reverse()
cities = [cities[0]] + rest
turtle.clear()
turtle.hideturtle()
turtle.up()
turtle.pensize(1)
for city in cities:
x = city.position[0]
y = city.position[1]
turtle.pencolor("red")
turtle.goto(x, y)
turtle.pencolor("black")
if city.is_start:
turtle.write('{}-Start'.format(city.name), align="center", font=("Arial", 11, "bold"))
else:
turtle.write('{}'.format(city.name), align="center", font=("Arial", 11, "bold"))
turtle.down()
turtle.pencolor("red")
turtle.goto(cities[0].position[0], cities[0].position[1])
def drawSootSprite(N, R):
# reset direction
turtle.reset()
# draw star
drawStar(N, R)
# draw body
turtle.dot(0.8*2*R)
# draw right eyeball
turtle.fd(0.2*R)
turtle.dot(0.3*R, 'white')
# draw right pupil
turtle.pu()
turtle.bk(0.1*R)
turtle.pd()
turtle.dot(0.05*R)
turtle.pu()
# centre
turtle.setpos(0, 0)
# draw left eyeball
turtle.bk(0.2*R)
turtle.pd()
turtle.dot(0.3*R, 'white')
# draw left pupil
turtle.pu()
turtle.fd(0.1*R)
turtle.pd()
turtle.dot(0.05*R)
turtle.hideturtle()
#drawStar(5, 200)
def tscheme_hideturtle():
"""Make turtle visible."""
_tscheme_prep()
turtle.hideturtle()
return okay
def tscheme_hideturtle():
"""Make turtle visible."""
_tscheme_prep()
turtle.hideturtle()
return okay
def draw_round_world():
init()
turtle.goto(0, 300)
turtle.hideturtle()
draw_world(5)
def tscheme_hideturtle():
"""Make turtle visible."""
_tscheme_prep()
turtle.hideturtle()
return okay
def draw_floor(floornum: int):
global current_floor
current_floor = floornum
node_coords = utils.get_node_coords(utils.Direction.left)
if floornum == len(full_floors):
rooms = []
# All edges with rooms
print('Showing everything')
edges = chain.from_iterable(chain(((True, e) for e in edges[0]), ((False, e) for e in edges[1])) for _, edges in full_floors)
# Edges with elevation changes
#edges = set(chain.from_iterable((edge(v, n) for n in b.values() if set(['u', 'd']) & set(utils.get_graph().edgedata[edge(v, n)]['rooms'])) for v, b in enumerate(utils.get_graph().branches)))
# All edges
#...
elif floornum >= 0 and floornum < len(full_floors):
rooms, edges = full_floors[floornum]
print(edges)
edges = chain(((True, e) for e in edges[0]), ((False, e) for e in edges[1]))
print(rooms)
else:
return
turtle.showturtle()
turtle.speed(0)
turtle.clear()
written_nodes = set()
for edge_dir, (a, b) in edges:
turtle.penup()
x, y, _ = node_coords[a]
turtle.goto(x / SHRINK + X_OFFSET, y / SHRINK + Y_OFFSET)
if a not in written_nodes:
turtle.write(a)
written_nodes.add(a)
turtle.pendown()
if edge_dir:
if edge_lengths[edge(a, b)] <= 0:
turtle.pencolor('red')
else:
turtle.pencolor('black')
else:
if edge_lengths[edge(a, b)] <= 0:
turtle.pencolor('blue')
else:
turtle.pencolor('green')
x, y, _ = node_coords[b]
turtle.goto(x / SHRINK + X_OFFSET, y / SHRINK + Y_OFFSET)
turtle.pencolor('black')
if b not in written_nodes:
turtle.write(b)
written_nodes.add(b)
turtle.hideturtle()
turtle.done()