当前位置: 首页 > news >正文

响应式网站 外贸网站制作中搜索栏怎么做

响应式网站 外贸,网站制作中搜索栏怎么做,唐山网站制作,官方手表网站1、需要安装pygame 2、上下左右移动#xff0c;空格实现物体所在位置到终点的路线#xff0c;会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…1、需要安装pygame 2、上下左右移动空格实现物体所在位置到终点的路线会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, bottom: True, left: True}self.visited Falseself.is_obstacle Falsedef draw(self, screen, cell_size):x self.x * cell_sizey self.y * cell_sizeif self.walls[top]:pygame.draw.line(screen, (0, 0, 0), (x, y), (x cell_size, y), 2)if self.walls[right]:pygame.draw.line(screen, (0, 0, 0), (x cell_size, y), (x cell_size, y cell_size), 2)if self.walls[bottom]:pygame.draw.line(screen, (0, 0, 0), (x cell_size, y cell_size), (x, y cell_size), 2)if self.walls[left]:pygame.draw.line(screen, (0, 0, 0), (x, y cell_size), (x, y), 2)if self.is_obstacle:pygame.draw.rect(screen, (128, 128, 128), (x, y, cell_size, cell_size))def check_neighbors(self, grid, cols, rows):neighbors []if self.x 0:left grid[self.y][self.x - 1]if not left.visited:neighbors.append(left)if self.x cols - 1:right grid[self.y][self.x 1]if not right.visited:neighbors.append(right)if self.y 0:top grid[self.y - 1][self.x]if not top.visited:neighbors.append(top)if self.y rows - 1:bottom grid[self.y 1][self.x]if not bottom.visited:neighbors.append(bottom)if neighbors:return random.choice(neighbors)else:return None# 移除两个单元格之间的墙 def remove_walls(current, next_cell):dx current.x - next_cell.xif dx 1:current.walls[left] Falsenext_cell.walls[right] Falseelif dx -1:current.walls[right] Falsenext_cell.walls[left] Falsedy current.y - next_cell.yif dy 1:current.walls[top] Falsenext_cell.walls[bottom] Falseelif dy -1:current.walls[bottom] Falsenext_cell.walls[top] False# 生成迷宫 def generate_maze(grid, cols, rows):stack []current grid[0][0]current.visited Truestack.append(current)while stack:current stack[-1]next_cell current.check_neighbors(grid, cols, rows)if next_cell:next_cell.visited Truestack.append(next_cell)remove_walls(current, next_cell)else:stack.pop()# 随机添加障碍物 def add_obstacles(grid, cols, rows, obstacle_ratio0.3):obstacle_cells []num_obstacles int(cols * rows * obstacle_ratio)while len(obstacle_cells) num_obstacles:x random.randint(0, cols - 1)y random.randint(0, rows - 1)if (x, y) not in [(0, 0), (cols - 1, rows - 1)] and not grid[y][x].is_obstacle:grid[y][x].is_obstacle Trueobstacle_cells.append((x, y))return obstacle_cells# 检查从起点到终点是否有路径 def has_path(grid, start, end):path find_path(grid, start, end)return bool(path)# 移除障碍物直到有路径 def ensure_path_exists(grid, start, end, obstacle_cells):random.shuffle(obstacle_cells)while not has_path(grid, start, end) and obstacle_cells:x, y obstacle_cells.pop()grid[y][x].is_obstacle False# 绘制迷宫 def draw_maze(screen, grid, cell_size, cols, rows):for i in range(rows):for j in range(cols):grid[i][j].draw(screen, cell_size)# 绘制起点和终点 def draw_start_end(screen, cell_size, start, end):start_x start[0] * cell_size cell_size // 2start_y start[1] * cell_size cell_size // 2end_x end[0] * cell_size cell_size // 2end_y end[1] * cell_size cell_size // 2pygame.draw.circle(screen, (0, 255, 0), (start_x, start_y), cell_size // 3)pygame.draw.circle(screen, (255, 0, 0), (end_x, end_y), cell_size // 3)# 绘制移动的物体 def draw_player(screen, cell_size, player_pos):player_x player_pos[0] * cell_size cell_size // 2player_y player_pos[1] * cell_size cell_size // 2pygame.draw.circle(screen, (0, 0, 255), (player_x, player_y), cell_size // 3)# 检查是否可以移动 def can_move(grid, player_pos, direction):x, y player_posif direction up:return y 0 and not grid[y][x].walls[top] and not grid[y - 1][x].is_obstacleelif direction down:return y len(grid) - 1 and not grid[y][x].walls[bottom] and not grid[y 1][x].is_obstacleelif direction left:return x 0 and not grid[y][x].walls[left] and not grid[y][x - 1].is_obstacleelif direction right:return x len(grid[0]) - 1 and not grid[y][x].walls[right] and not grid[y][x 1].is_obstacle# 广度优先搜索找到最优路径 def find_path(grid, start, end):queue [(start, [start])]visited set()while queue:(x, y), path queue.pop(0)if (x, y) end:return pathif (x, y) not in visited:visited.add((x, y))if can_move(grid, (x, y), up):new_path list(path)new_path.append((x, y - 1))queue.append(((x, y - 1), new_path))if can_move(grid, (x, y), down):new_path list(path)new_path.append((x, y 1))queue.append(((x, y 1), new_path))if can_move(grid, (x, y), left):new_path list(path)new_path.append((x - 1, y))queue.append(((x - 1, y), new_path))if can_move(grid, (x, y), right):new_path list(path)new_path.append((x 1, y))queue.append(((x 1, y), new_path))return []# 绘制虚线 def draw_dashed_line(screen, color, start_pos, end_pos, dash_length5):dx end_pos[0] - start_pos[0]dy end_pos[1] - start_pos[1]distance math.sqrt(dx ** 2 dy ** 2)num_dashes int(distance / dash_length)for i in range(num_dashes):if i % 2 0:start (start_pos[0] dx * i / num_dashes, start_pos[1] dy * i / num_dashes)end (start_pos[0] dx * (i 1) / num_dashes, start_pos[1] dy * (i 1) / num_dashes)pygame.draw.line(screen, color, start, end, 2)# 显示提示信息 def show_message(screen, message, font, color, position):text font.render(message, True, color)screen.blit(text, position)# 主函数 def main():pygame.init()cols 35rows 35cell_size 20width cols * cell_sizeheight rows * cell_sizescreen pygame.display.set_mode((width, height))pygame.display.set_caption(Random Maze)# 创建迷宫网格grid [[Cell(j, i) for j in range(cols)] for i in range(rows)]# 生成迷宫generate_maze(grid, cols, rows)# 定义起点和终点start (0, 0)end (cols - 1, rows - 1)# 随机添加障碍物obstacle_cells add_obstacles(grid, cols, rows)# 确保有路径ensure_path_exists(grid, start, end, obstacle_cells)# 初始化玩家位置player_pos startfont pygame.font.Font(None, 36)success_text font.render(Successfully!!!, True, (0, 255, 0))help_text font.render(, True, (0, 0, 0))success Falseauto_move Falserunning Truewhile running:for event in pygame.event.get():if event.type pygame.QUIT:running Falseelif event.type pygame.KEYDOWN and not success:if event.key pygame.K_UP:if can_move(grid, player_pos, up):player_pos (player_pos[0], player_pos[1] - 1)elif event.key pygame.K_DOWN:if can_move(grid, player_pos, down):player_pos (player_pos[0], player_pos[1] 1)elif event.key pygame.K_LEFT:if can_move(grid, player_pos, left):player_pos (player_pos[0] - 1, player_pos[1])elif event.key pygame.K_RIGHT:if can_move(grid, player_pos, right):player_pos (player_pos[0] 1, player_pos[1])elif event.key pygame.K_SPACE:auto_move Truepath find_path(grid, player_pos, end)path_index 0screen.fill((255, 255, 255))draw_maze(screen, grid, cell_size, cols, rows)draw_start_end(screen, cell_size, start, end)# 绘制路径if path in locals() and path:for i in range(len(path) - 1):start_point (path[i][0] * cell_size cell_size // 2, path[i][1] * cell_size cell_size // 2)end_point (path[i 1][0] * cell_size cell_size // 2, path[i 1][1] * cell_size cell_size // 2)draw_dashed_line(screen, (255, 0, 0), start_point, end_point)draw_player(screen, cell_size, player_pos)# 显示提示信息show_message(screen, , font, (0, 0, 0), (10, 10))if auto_move and path in locals() and path_index len(path):player_pos path[path_index]path_index 1if player_pos end:auto_move Falseif player_pos end:success Truescreen.blit(success_text,(width // 2 - success_text.get_width() // 2, height // 2 - success_text.get_height() // 2))pygame.display.flip()pygame.time.delay(100)pygame.quit()if __name__ __main__:main()
http://www.dnsts.com.cn/news/125639.html

相关文章:

  • 免费个人logo设计网站wordpress 仿煎蛋主题
  • 邯郸网站建设提供商做哪类视频网站需要视频证书
  • 购物网站名字大全舟山市建设信息港网站打不开
  • 熊猫网站ppt如何来做网站
  • 用dw做网站的基本步骤国外网站推荐
  • 广州海珠网站建设在微信怎么开发公众号
  • 做网站首页的图片怎么缩小网站流量统计实现
  • 百度做网站需要交钱吗常州网站建设市场
  • 网站系统安全保护等级是必须做的打不开网站怎么办
  • p2p电影网站开发建设网站书
  • 北京做网站制作的公司seo网站开发注意事项
  • 优化网站内容重庆市住房和城乡建设厅网站
  • 优化网站的软件大型小说网站开发语言
  • 济南高品质网站制作辽宁建设工程造价信息网官网
  • 做行测的网站万江营销型网站建设
  • 慈溪网站优化信息流优化师是干什么的
  • 万网查询全部域名seo工作前景如何
  • 免费的网站推广 外贸哈尔滨建站在线咨询
  • 模板建站公司国外无版权素材网站
  • 网站建设上海网站建设公司网站服务营销案例100例
  • 徐州市建设局网站电话号码徐州vi设计公司
  • 高端网站建设服务器大兴安岭网站推广
  • 怎么建设官方网站网站优化推广培训
  • 什么网站用php做的网站建设案例教程视频教程
  • 万载网站建设石家庄网站建设远策科技
  • 盐城网站开发代理商国家信息企业公示网官网登录入口
  • 烟台网站建设学校北京海淀区官网
  • 深圳建网站一般多少钱免费网站建设咨询
  • 深圳惠州网站建设新手做电商需要投资多少
  • 网站建站一本通免费开发app平台下载