AI扫雷有多牛?他国纷纷来求师学艺(附完整教程)

2024-05-02 01:08

本文主要是介绍AI扫雷有多牛?他国纷纷来求师学艺(附完整教程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前文

大家好!我是梨子同学!

希望大家多多支持我!哈哈

为了感谢每一个关注我的小可爱:💓每篇文章的项目源码都是无偿分享滴💓见文末!

很多csdn的功能还在研究中,还有小编的文笔不好勿怪,会慢慢进步跟大家一起学习的

小编也一直在学习编程,如果代码小程序出现错误欢迎大家评论区留言哈!

最后——如果文章有帮助到你,记得“关注”、“点赞”、“评论”三连哦~

 前言

《扫雷》是一款大众类的益智小游戏,于1992年发行。

游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个

雷即全盘皆输。

它是许多人接触到的第一款游戏,大概也是广大办公族和无网学生无聊时消遣的最佳游戏,是不是

每次见到戴上墨镜的小人很有成就感?在那些还没有网(被切断网)的岁月,扫雷曾陪伴无数人度

过了他们的童年。你的最佳纪录是多少?小编在工作间隙随手刷了一局30秒(囧😳)。

那么?怎么才能通关呢?这,有生之年靠自己猜可能做不到了,BUT我们可以靠一靠我们的Python

自动扫雷的嘛!不要慌呢~我们正式开始吧!

《自动扫雷》

环境配置:

Python3、 Pycharm 、Pygame以及部分自带的模块。

第三方库的安装:pip  install pygame


效果展示:

游戏开始:

 

 自动扫雷:

 

 

游戏结束:

 

代码演示:

1)主程序

代码比较多哈,每行都有注释大家自己看,不懂的可以找我交流、一起学习嘛!

# -*- coding: utf-8 -*-  
import pygame
from pygame.locals import *
import numpy as np
import random
import sys
import time
import copy# 屏幕大小
Screen_Size = (1200, 600)
# 行数
Rows = 20
# 列数
Colums = 40
# 雷的数量
numOfMines = 80
# 胜率
VictoryRate=0class Sweep(object):"""docstring for Sweep"""def __init__(self):# 初始化一个页面self.Screen = pygame.display.set_mode(Screen_Size)# 字体self.myfont = pygame.font.SysFont('幼圆', 25)# 格子大小self.gwide = int(Screen_Size[0] / Colums)self.gheight = int(Screen_Size[1] / Rows)self.board = np.zeros((Rows, Colums))# 存储下一步可选的位置self.NBS = []# NBS辅助容器,用于判断NBS有没变化self.NBSTool = []# 判断是否进行概率选择扫雷self.GO = False# 遍历存储容器self.container = []# 标注地雷存储容器self.mineContainer = []# 实际地雷位置存储容器self.Mines = []# 数字存储容器self.numbers = []# 加载图片self.LoadImg()# 画格子self.DrawGrid()# 埋雷self.HideMines()def LoadImg(self):# 加载地雷图片self.mine = pygame.image.load('image/mine.jpg').convert_alpha()self.mine = pygame.transform.scale(self.mine, (self.gwide, self.gheight))# 加载旗子图片self.flag = pygame.image.load('image/flag.jpg').convert_alpha()self.flag = pygame.transform.scale(self.flag, (self.gwide, self.gheight))# 加载地雷爆炸图片self.boom = pygame.image.load('image/boom.png').convert_alpha()self.boom = pygame.transform.scale(self.boom, (self.gwide, self.gheight))# 加载数字图片self.num1 =

这篇关于AI扫雷有多牛?他国纷纷来求师学艺(附完整教程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/953092

相关文章

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github