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

西安做网站的公司网站权重怎么查

西安做网站的公司,网站权重怎么查,兴化网站建设,复制网站开发者知道吗文章目录 写在前面需求分析程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于pygame的AI版贪吃蛇小游戏 所需环境 pythonpycharm或anacondapygame 下载地址 https://download.csdn.net/download/m0_68111267/88789665 需求分析 本游戏使用Pygame模块开…

文章目录

  • 写在前面
  • 需求分析
  • 程序设计
  • 程序分析
  • 运行结果
  • 系列文章
  • 写在后面

写在前面

本期内容

  • 基于pygame的AI版贪吃蛇小游戏

所需环境

  • python
  • pycharm或anaconda
  • pygame

下载地址

  • https://download.csdn.net/download/m0_68111267/88789665

需求分析

本游戏使用Pygame模块开发,不需要玩家操纵贪吃蛇,贪吃蛇会自动吃掉屏幕上随机出现的食物,每吃一个食物贪吃蛇长度增加一节。如果贪吃蛇撞到屏幕边缘或自己的身体,则游戏结束。游戏界面包括游戏区域和得分显示区域。

程序设计

import pygame
import sys
from random import randint# 蛇运动的场地长宽
HEIGHT = 25
WIDTH = 25SCREEN_X = HEIGHT * 25
SCREEN_Y = WIDTH * 25FIELD_SIZE = HEIGHT * WIDTH# 蛇头总是位于snake数组的第一个元素
HEAD = 0# 用来代表不同东西的数字,由于矩阵上每个格子会处理成到达食物的路径长度,
# 因此这三个变量间需要有足够大的间隔(>HEIGHT*WIDTH)
FOOD = 0
UNDEFINED = (HEIGHT + 1) * (WIDTH + 1)
SNAKE = 2 * UNDEFINED# 由于snake是一维数组,所以对应元素直接加上以下值就表示向四个方向移动
LEFT = -1
RIGHT = 1
UP = -WIDTH
DOWN = WIDTH# 错误码
ERR = -1111# 用一维数组来表示二维的东西
# board表示蛇运动的矩形场地
# 初始化蛇头在(1,1)的地方,第0行,HEIGHT行,第0列,WIDTH列为围墙,不可用
# 初始蛇长度为1
board = [0] * FIELD_SIZE
snake = [0] * (FIELD_SIZE + 1)
snake[HEAD] = 1 * WIDTH + 1
snake_size = 1
……(完整代码请下载后查看)

程序分析

这段代码是一个基于Python和pygame库实现的贪吃蛇游戏的核心逻辑部分。游戏在一个25x25大小的网格上进行,其中每个格子都有一个对应的索引值,用于表示蛇的位置、食物位置以及地图上的可达性。

首先,定义了一些全局变量,如游戏区域尺寸(HEIGHT, WIDTH)、屏幕尺寸(SCREEN_X, SCREEN_Y)、场地大小(FIELD_SIZE)以及方向常量LEFT, RIGHT, UP, DOWN等。蛇和临时蛇的位置信息分别存储在一维数组snake和tmpsnake中,初始时蛇长度为1,位于(1,1)的位置。同时设置了食物food的初始位置,并且定义了FOOD、UNDEFINED和SNAKE三个特殊的数值,用来在二维矩阵board中区分食物、未探索区域及蛇体。

游戏中包含多个关键函数:

  1. is_cell_free(idx, psize, psnake):检查给定索引idx处的单元格是否为空,即不被蛇身覆盖。
  2. is_move_possible(idx, move):判断蛇能否向给定方向move移动。
  3. board_reset(psnake, psize, pboard):重置地图状态,将蛇体和食物标记出来,并将其他空地设置为可到达的未知距离。
  4. board_refresh(pfood, psnake, pboard):采用广度优先搜索算法更新地图中的路径长度,计算从每个非蛇体单元格到食物的最短距离。
  5. choose_shortest_safe_move(psnake, pboard)choose_longest_safe_move(psnake, pboard):根据当前地图数据,选择距离食物最近或最远的安全移动方向。
  6. is_tail_inside()follow_tail():通过虚拟操作判断蛇头是否可以朝蛇尾方向移动以避免死路,并找到这个方向。
  7. any_possible_move():当无明确安全方向时,随机选择一个可行的方向。
  8. shift_array(arr, size):移动数组元素,模拟蛇的身体沿指定方向移动。
  9. new_food():生成新的食物位置,确保不在蛇体内。
  10. make_move(pbest_move):执行实际的蛇移动操作,包括增加蛇长、更新蛇头位置、调整蛇身以及处理吃到食物的情况。
  11. virtual_shortest_move():进行一次虚拟移动,尝试寻找最短路径吃到食物并更新虚拟地图状态。
  12. find_safe_way():结合虚拟运行结果判断蛇与食物间的路径情况,并确定安全的下一步移动方向。

主循环中,程序不断检测用户输入事件(如退出或按下空格键重新开始),并依据上述函数计算出最佳移动方向,然后更新蛇的位置。如果蛇碰到自身或其他不可移动区域,则游戏结束,显示“YOU DEAD!”提示,并告知玩家按空格键重新开始。同时,实时显示当前分数(score)。

最后,main() 函数包含了游戏的初始化、事件处理、画面渲染和游戏逻辑更新等内容,构成了整个贪吃蛇游戏的核心框架。

运行结果

AI_snake

系列文章

序号目录直达链接
1入门实战丨基于Tkinter的简易计算器https://want595.blog.csdn.net/article/details/131731173
2入门实战丨基于Tkinter的生日管理系统https://want595.blog.csdn.net/article/details/131731380
3数据库实战丨基于Tkinter+MySQL的学生成绩管理系统https://want595.blog.csdn.net/article/details/130992721
4数据库实战丨基于Tkinter+MySQL的梅西生涯数据管理系统https://want595.blog.csdn.net/article/details/130995564
5Web实战丨基于Django与Bootstrap的在线计算器https://want595.blog.csdn.net/article/details/134424381
6Web实战丨基于django+html+css的在线购物商城https://want595.blog.csdn.net/article/details/135466052
7Web实战丨基于django+html+css+js的电子商务网站https://want595.blog.csdn.net/article/details/135506809
8Web实战丨基于Django与HTML的用户登录验证系统https://want595.blog.csdn.net/article/details/135513413
9Web实战丨基于django+html+css+js的学院门户网站https://want595.blog.csdn.net/article/details/135511066
10Web实战丨基于Django与HTML的新闻发布系统https://want595.blog.csdn.net/article/details/135519824
11Web实战丨基于django+html+css+js的在线博客网站https://want595.blog.csdn.net/article/details/135536765
12……

写在后面

我是一只有趣的兔子,感谢你的喜欢!

http://www.mmbaike.com/news/103722.html

相关文章:

  • 网站后台模板关联自己做的网站网站空间费用一年多少
  • 侧边导航条wordpress济宁seo公司
  • 国外app界面设计网站交换链接案例
  • html做网站的代码百度信息流广告平台
  • 优化网站内链网站怎么优化推荐
  • 做动态h5的网站网站软件开发
  • 给博彩做网站做微商怎么找客源加人
  • 微信注册网站入口seo软件定制
  • 设计投稿赚钱网站公司网站模板设计
  • 做英文题的网站谷歌google中文登录入口
  • 网站开发文档模板下载英文网站设计公司
  • 黄埭做网站口碑营销的方法
  • 专做PPP项目网站制作自己的网站
  • 用织梦做网站有后台吗seo优化是利用规则提高排名
  • 网赌网站国外空间线上引流的八种推广方式
  • 淮安汽车集团网站建设想做电商怎么入手
  • 企业网站模板下载高中同步测控优化设计答案
  • 怎么做微网站网络营销第三版课本
  • 海外网站推广方法广告优化师怎么学
  • 网站建设和网站自己做网站设计制作
  • 网站建设方案及预算浏览器里面信息是真是假
  • 荔湾建网站公司在线资源链接
  • 网站后台打开慢可以免费网络推广网站
  • 苏州网站设计公司兴田德润i网址多少长沙网红打卡景点排行榜
  • drupal 网站建设企业培训考试
  • 做数码测评的网站江门seo
  • 团结湖网站建设广州竞价托管代运营
  • 美颜秘籍网站建设优化整站
  • 传奇类网页游戏太原seo报价
  • 手机端网站开发要注意什么南宁推广软件