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

买空间服务器做网站怎么弄找一个免费的网站

买空间服务器做网站怎么弄,找一个免费的网站,手机网站 栏目定制,hexo框架做网站Python 小游戏——贪吃蛇 文章目录 Python 小游戏——贪吃蛇项目介绍环境配置代码设计思路1. 初始化和变量定义2. 创建游戏窗口和FPS控制器3. 初始化贪吃蛇和食物的位置4. 控制贪吃蛇的方向和分数5. 主游戏循环 难点分析源代码呈现代码结果 项目介绍 贪吃蛇游戏是一款通过上下…Python 小游戏——贪吃蛇 文章目录 Python 小游戏——贪吃蛇项目介绍环境配置代码设计思路1. 初始化和变量定义2. 创建游戏窗口和FPS控制器3. 初始化贪吃蛇和食物的位置4. 控制贪吃蛇的方向和分数5. 主游戏循环 难点分析源代码呈现代码结果 项目介绍 贪吃蛇游戏是一款通过上下左右方向键控制贪吃蛇吃到豆豆以获取积分的游戏该项目使用Python语言进行实现。主要使用了Pygame库来处理图形和用户输入。 环境配置 该项目需要在Pycharm的终端中执行以下指令来安装Pygame库 pip install pygame具体步骤如下 打开你的PyCharm项目。选择顶部菜单栏中的 “View” 菜单。选择 “Tool Windows” - “Terminal” 以打开PyCharm的终端窗口。在终端窗口中输入 pip install pygame 并按回车键执行。 代码设计思路 1. 初始化和变量定义 首先我们初始化Pygame并定义一些常量包括窗口大小、贪吃蛇的速度和颜色。 import pygame import time import random# 初始化Pygame pygame.init()# 定义一些常量 window_x 720 window_y 480 snake_block 10 snake_speed 15# 定义颜色 black pygame.Color(0, 0, 0) white pygame.Color(255, 255, 255) red pygame.Color(255, 0, 0) green pygame.Color(0, 255, 0) blue pygame.Color(0, 0, 255)2. 创建游戏窗口和FPS控制器 接着创建游戏窗口并设置标题同时创建FPS控制器来控制游戏的帧率。 # 创建游戏窗口 pygame.display.set_caption(Greedy Snake) game_window pygame.display.set_mode((window_x, window_y))# FPS控制器 fps pygame.time.Clock()3. 初始化贪吃蛇和食物的位置 定义贪吃蛇的默认位置和身体以及食物的位置和生成状态。 # 定义贪吃蛇的默认位置 snake_pos [100, 50]# 定义贪吃蛇的身体 snake_body [[100, 50], [90, 50], [80, 50]]# 定义食物的位置 food_pos [random.randrange(1, (window_x // 10)) * 10, random.randrange(1, (window_y // 10)) * 10] food_spawn True4. 控制贪吃蛇的方向和分数 设置贪吃蛇的默认移动方向和分数同时定义显示分数和结束游戏的函数。 # 设置默认方向 direction RIGHT change_to direction# 初始化分数 score 0# 显示分数 def show_score(choice, color, font, size):score_font pygame.font.SysFont(font, size)score_surface score_font.render(Score : str(score), True, color)score_rect score_surface.get_rect()game_window.blit(score_surface, score_rect)# 结束游戏 def game_over():my_font pygame.font.SysFont(times new roman, 50)game_over_surface my_font.render(Your Score is : str(score), True, red)game_over_rect game_over_surface.get_rect()game_over_rect.midtop (window_x / 2, window_y / 4)game_window.blit(game_over_surface, game_over_rect)pygame.display.flip()time.sleep(2)pygame.quit()quit()5. 主游戏循环 在主游戏循环中处理用户输入、更新贪吃蛇的位置、检测碰撞以及显示当前状态。 # 主函数 while True:for event in pygame.event.get():if event.type pygame.QUIT:pygame.quit()quit()elif event.type pygame.KEYDOWN:if event.key pygame.K_UP:change_to UPelif event.key pygame.K_DOWN:change_to DOWNelif event.key pygame.K_LEFT:change_to LEFTelif event.key pygame.K_RIGHT:change_to RIGHT# 确保贪吃蛇不能反向移动if change_to UP and direction ! DOWN:direction change_toif change_to DOWN and direction ! UP:direction change_toif change_to LEFT and direction ! RIGHT:direction change_toif change_to RIGHT and direction ! LEFT:direction change_to# 移动贪吃蛇if direction UP:snake_pos[1] - 10if direction DOWN:snake_pos[1] 10if direction LEFT:snake_pos[0] - 10if direction RIGHT:snake_pos[0] 10# 增加贪吃蛇的长度snake_body.insert(0, list(snake_pos))if snake_pos[0] food_pos[0] and snake_pos[1] food_pos[1]:score 10food_spawn Falseelse:snake_body.pop()if not food_spawn:food_pos [random.randrange(1, (window_x // 10)) * 10, random.randrange(1, (window_y // 10)) * 10]food_spawn Truegame_window.fill(black)for pos in snake_body:pygame.draw.rect(game_window, green, pygame.Rect(pos[0], pos[1], snake_block, snake_block))pygame.draw.rect(game_window, red, pygame.Rect(food_pos[0], food_pos[1], snake_block, snake_block))if snake_pos[0] 0 or snake_pos[0] window_x - snake_block:game_over()if snake_pos[1] 0 or snake_pos[1] window_y - snake_block:game_over()for block in snake_body[1:]:if snake_pos[0] block[0] and snake_pos[1] block[1]:game_over()show_score(1, white, times new roman, 20)pygame.display.update()fps.tick(snake_speed)难点分析 方向控制 确保贪吃蛇不能反向移动。这通过在检查方向变更时加入条件来实现例如当前方向是向上时不能变更为向下。 碰撞检测 需要检测贪吃蛇是否碰到边界或者自身这通过比较贪吃蛇头部的位置与边界和自身身体的位置来实现。 食物生成 随机生成食物的位置需要确保食物生成的位置不在贪吃蛇身体上。 源代码 import pygame import time import random# 初始化Pygame pygame.init()# 定义一些常量 window_x 720 window_y 480 snake_block 10 snake_speed 15# 定义颜色 black pygame.Color(0, 0, 0) white pygame.Color(255, 255, 255) red pygame.Color(255, 0, 0) green pygame.Color(0, 255, 0) blue pygame.Color(0, 0, 255)# 创建游戏窗口 pygame.display.set_caption(Greedy Snake) game_window pygame.display.set_mode((window_x, window_y))# FPS控制器 fps pygame.time.Clock()# 定义贪吃蛇的默认位置 snake_pos [100, 50]# 定义贪吃蛇的身体 snake_body [[100, 50], [90, 50], [80, 50]]# 定义食物的位置 food_pos [random.randrange(1, (window_x // 10)) * 10, random.randrange(1, (window_y // 10)) * 10] food_spawn True# 设置默认方向 direction RIGHT change_to direction# 初始化分数 score 0# 显示分数 def show_score(choice, color, font, size):score_font pygame.font.SysFont(font, size)score_surface score_font.render(Score : str(score), True, color)score_rect score_surface.get_rect()game_window.blit(score_surface, score_rect)# 结束游戏 def game_over():my_font pygame.font.SysFont(times new roman, 50)game_over_surface my_font.render(Your Score is : str(score), True, red)game_over_rect game_over_surface.get_rect()game_over_rect.midtop (window_x / 2, window_y / 4)game_window.blit(game_over_surface, game_over_rect)pygame.display.flip()time.sleep(2)pygame.quit()quit()# 主函数 while True:for event in pygame.event.get():if event.type pygame.QUIT:pygame.quit()quit()elif event.type pygame.KEYDOWN:if event.key pygame.K_UP:change_to UPelif event.key pygame.K_DOWN:change_to DOWNelif event.key pygame.K_LEFT:change_to LEFTelif event.key pygame.K_RIGHT:change_to RIGHT# 确保贪吃蛇不能反向移动if change_to UP and direction ! DOWN:direction change_toif change_to DOWN and direction ! UP:direction change_toif change_to LEFT and direction ! RIGHT:direction change_toif change_to RIGHT and direction ! LEFT:direction change_to# 移动贪吃蛇if direction UP:snake_pos[1] - 10if direction DOWN:snake_pos[1] 10if direction LEFT:snake_pos[0] - 10if direction RIGHT:snake_pos[0] 10# 增加贪吃蛇的长度snake_body.insert(0, list(snake_pos))if snake_pos[0] food_pos[0] and snake_pos[1] food_pos[1]:score 10food_spawn Falseelse:snake_body.pop()if not food_spawn:food_pos [random.randrange(1, (window_x // 10)) * 10, random.randrange(1, (window_y // 10)) * 10]food_spawn Truegame_window.fill(black)for pos in snake_body:pygame.draw.rect(game_window, green, pygame.Rect(pos[0], pos[1], snake_block, snake_block))pygame.draw.rect(game_window, red, pygame.Rect(food_pos[0], food_pos[1], snake_block, snake_block))if snake_pos[0] 0 or snake_pos[0] window_x - snake_block:game_over()if snake_pos[1] 0 or snake_pos[1] window_y - snake_block:game_over()for block in snake_body[1:]:if snake_pos[0] block[0] and snake_pos[1] block[1]:game_over()show_score(1, white, times new roman, 20)pygame.display.update()fps.tick(snake_speed)呈现代码结果 该项目效果如图所示
http://www.dnsts.com.cn/news/96568.html

相关文章:

  • 网站开发有哪些方式如何将百度收录网站
  • 网站建设营销技巧云南人事考试网官网
  • 住房和城乡建设部网站办事大厅里边做营销推广外包的网站
  • 长春专业做网站公司哪家好收废铁的做网站有优点吗
  • 深圳网站建设 卓越创o2o型网站
  • 网址升级中 请稍后访问桂林网站优化公司
  • 任县城乡建设局网站做网站用html还是python好
  • 从化哪里做网站好网站开发实施计划
  • 注册网站会员会泄露信息吗郑州大学第一附属医院
  • win7系统下动网站建设phpcms移动端网站怎么做
  • 中能建西北城市建设有限公司网站it公论 是建立在什么网站
  • 网站前端建设都需要什么问题网站开发中安全性的防范
  • 网站版权该怎么做呢国外建站网站
  • 乐都营销型网站建设餐饮网站建设公司
  • 濮阳网站建设优化东莞离莞最新规定
  • 网站功能设计方案dedecms织梦
  • 商城网站有什么好处自己可以做防伪网站吗
  • 如何做网站 站长教课网站投票怎么做
  • 长沙网页网站制作济南智能网站建设电话
  • 网站建设及维护协议中式建筑网站
  • 自己做第一个网站关键词搜索量怎么查
  • 威海网站建设开发公司外贸商城网站制作公司
  • 哪些网站的做的好看的百度账号登录入口网页版
  • 渭南网站建设风尚网络广州汽车网络推广服务
  • 养车网站开发辽源做网站公司
  • 京紫元年网站建设做效果图兼职的网站
  • 做网站需要基础吗wordpress添加分类目录seo标题
  • 中国建筑网官网招工平台google seo是什么
  • dw网站根目录怎么做浙江省建设职业注册中心网站
  • 别人做的网站不能用了洛阳网站设计开发