C语言经典小游戏之扫雷(超详解释+源码)
“少年气,是历尽千帆举重若轻的沉淀,也是乐观淡然笑对生活的豁达!” 今天我们学习一下扫雷游戏怎么用C语言来实现!
扫雷小游戏
- 1.游戏介绍
- 2.游戏准备
- 3.游戏实现
- 3.1生成菜单
- 3.2游戏的具体实现
- 3.2.1初始化棋盘
- 3.2打印棋盘
- 3.3布置雷
- 3.4排查雷
- 4.扫雷游戏的详细代码
1.游戏介绍
一个扫雷盘面由许多方格(cell)组成,方格中随机分布着一定数量的雷(mine),一个格子中至多只有1雷。胜利条件是打开所有安全格(非雷格,safe cell),失败条件是打开了一个雷格(踩雷)。下面图片中是一个9*9的示例:
2.游戏准备
和前面的三子棋一样,这里,我们也需要三个源文件来共同实现这个程序。
(1)头文件
game.h
,头文件里是用来存放函数的声明,#define常量的定义,库函数的引用的。
(2)源文件test.c
,这个文件里面放的是游戏的测试逻辑。
(3)源文件game.c
,这个文件里面放的是游戏的实现逻辑(函数实现)。
3.游戏实现
3.1生成菜单
这里呢,我们和三子棋一样,还是通过switch语句给用户选择,当用户输入不同的数字,我们的程序就会给出不同的功能。
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
#include <stdio.h>
void menu()
{printf("******************************\n");printf("********* 1.play *********\n");printf("********* 0.exit *********\n");printf("******************************\n");
}
void game()
{}
int main()
{int input = 0;do{menu();printf("请选择:>");scanf("%d", &input);switch(input){case 1:game();break;case 0:printf("退出游戏!\n");break;default:printf("选择错误,重新选择!\n");break;}} while (input);return 0;
}
大致的框架就出来了,现在我们就需要看扫雷游戏的具体实现了。
3.2游戏的具体实现
这里我们简化游戏,设置一个
9*9
的棋盘,安置10个雷
。
排查过程如下:
1.如果这个位置是雷,那么游戏结束。
2.如果把不是雷的位置都找出来了,那么游戏结束。
3.如果这个位置不是雷,就计算这个位置的周围的8个格子有几个雷,并显示出雷的个数。
3.2.1初始化棋盘
我们这里的棋盘是9*9
的,可以和三子棋一样,先将每个棋盘都初始化为0
,如下图所示,然后有雷的地方填上1
,如下图所示:
但是,我们从游戏规则中知道,当我们点到一个不是雷的格子的时候,要返回它周围八个格子中雷的个数。如下图中,如果我们点到了绿色1
的那个格子,那么该位置将返回1
这个值,此时,这里的1
就会和表示雷的1
就混起来了。
同时,当我们点到一个处于四边的格子的时候,还会出现越界的问题:
这个时候,我们就可以考虑在排查雷的时候,将棋盘扩展成11*11
的棋盘。
同时,我们可以将排查雷的9*9
的格子里都初始化为*
,避免出现两个1意义不同混淆的情况。这样的话,我们就得到两个11*11
的棋盘。
//game.h
#pragma once
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
//初始化棋盘函数的声明
void Init_Board(char board[ROWS][COLS], int rows, int cols, char set);//game.h*
//初始化棋盘的定义
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
void Init_Board(char board[ROWS][COLS], int rows, int cols, char set)
{int i = 0;for (i = 0; i < rows; i++){int j = 0;for (j = 0; j < cols; j++){board[i][j] = set;}}
}//test.c
void game()
{char assign[ROWS][COLS] = { 0 };char show[ROWS][COLS] = { 0 };Init_Board(assign,ROWS,COLS,'0');Init_Board(show, ROWS, COLS, '*');
}
初始化完成之后,我们想要验证一下对不对呢?这个时候,我们就需要将棋盘打印出来。
3.2打印棋盘
虽然我们这里初始化的是11*11
的棋盘,但是用户需要的是中间区域的9*9
,因此,我们只需要打印中间的9*9
就可以了。
//game.h
//打印棋盘函数的声明
void Display_Board(char board[ROWS][COLS], int row, int col);//game.c
//打印棋盘函数的定义
//我们只需要打印出中间的9*9的格子
void Display_Board(char board[ROWS][COLS], int row, int col)
{int i = 0;for (i = 1; i <= row; i++){int j = 0;for (j = 1; j <= col; j++){printf("%c ", board[i][j]);}printf("\n");}
}//test.c
void game()
{Display_Board(assign, ROW, COL);
}
这里我们需要把行号和列号也打印出来,能够看的更清晰。代码进行这样的修改就好啦!
再优化一下,就如下图所示:
3.3布置雷
我们希望的是在这个9*9的棋盘里随机生成10个雷,这里我们就想到了能够产生随机数的函数rand()和srand()
,使用这两个函数,需要添加头文件#include <time.h>和#include <stdlib.h>
,同时,在主函数内还需要添加语句srand((unsigned int)time(NULL));
来产生随机数的种子。
//game.h
#define Easy_Thunder 10
#include <stdlib.h>
#include <time.h>
//布置雷函数的声明
void Set_thunder(char board[ROWS][COLS], int row, int col);//game.c
//布置雷函数的定义
void Set_thunder(char board[ROWS][COLS], int row, int col)
{int count = Easy_Thunder;while (count){int x = rand() % row + 1;//生成横坐标int y = rand() % col + 1;//生成纵坐标if (board[x][y] == '0')//防止在同一个地方重复布雷{board[x][y] = '1';count--;}}
}//test.c
void game()
{char assign[ROWS][COLS] = { 0 };char show[ROWS][COLS] = { 0 };Init_Board(assign,ROWS,COLS,'0');Init_Board(show, ROWS, COLS, '*');Display_Board(assign, ROW, COL);Set_thunder(assign, ROW, COL);
}
int main()
{srand((unsigned int)time(NULL));return 0;
}
那么,代码写好了,我们来验证一下,这样是不是能够布置出十个雷呢?
3.4排查雷
我们开始随机点一个格子,当这个格子不是雷的时候,可以计算它周围八个格子字符的ASCII码值
,减去8个'0'
的ASCII码值,就可以知道,这个格子周围有多少个雷了,然后我们加上'0'的ASCII码值
就能在该处的格子上返回相应的字符。当我们把所有不是雷的格子找出来的时候,给用户提示排雷成功。当我们踩到雷的时候,也给出相应的提示给用户,游戏结束。这里和三子棋一样,我们可以添加清屏的操作system("cls");
,让我们的游戏面板不是那么的冗长。
//game.h
//排查雷函数的声明
void Find_thunder(char assign[ROWS][COLS], char show[ROWS][COLS], int row, int col);//game.c
int Getassign(char assign[ROWS][COLS], int row, int col)//查找不是雷的格子周围有几个雷
{return (assign[row - 1][col - 1]//字符'0'的ASCII值为48,字符'1'的ASCII值为49+ assign[row - 1][col]+ assign[row - 1][col + 1]+ assign[row][col - 1]+ assign[row][col + 1]+ assign[row + 1][col - 1]+ assign[row + 1][col]+ assign[row + 1][col + 1] - 8 * '0');
}
//排查雷函数的定义
void Find_thunder(char assign[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{int x = 0;int y = 0;int win = 0;//计算没有踩到雷的次数while (win<col*row-Easy_Thunder){printf("请输入坐标:>");scanf("%d%d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col){if (assign[x][y] == '1'){printf("很遗憾,你被炸死了!\n");Display_Board(assign, ROW, COL);break;}else{//如果这个位置不是雷就统计周围八个格子雷的个数int c = Getassign(assign, x, y);show[x][y] = c + '0';Display_Board(show, ROW, COL);system("cls");Display_Board(show, ROW, COL);win++;}}else{printf("坐标非法,请重新输入!\n");}}if (win == row * col - Easy_Thunder){printf("恭喜你排雷成功!\n");Display_Board(assign, ROW, COL);}
}//test.c
void game()
{Find_thunder(assign, show, ROW, COL);//排雷函数的引用
}
这里,我们随机输入,不用思考,试一下踩到雷的结果:
那么,如果我们仔细思考,看看当我们把所有不是雷的格子找出来的时候,能不能成功:
4.扫雷游戏的详细代码
//game.h
#pragma once
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#define Easy_Thunder 10
#include <stdlib.h>
#include <time.h>
//初始化棋盘函数的声明
void Init_Board(char board[ROWS][COLS], int rows, int cols, char set);
//打印棋盘函数的声明
void Display_Board(char board[ROWS][COLS], int row, int col);
//布置雷函数的声明
void Set_thunder(char board[ROWS][COLS], int row, int col);
//排查雷函数的声明
void Find_thunder(char assign[ROWS][COLS], char show[ROWS][COLS], int row, int col);//game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
//初始化棋盘的定义
void Init_Board(char board[ROWS][COLS], int rows, int cols, char set)
{int i = 0;for (i = 0; i < rows; i++){int j = 0;for (j = 0; j < cols; j++){board[i][j] = set;}}
}
//打印棋盘函数的定义
//我们只需要打印出中间的9*9的格子
void Display_Board(char board[ROWS][COLS], int row, int col)
{int i = 0;int j = 0;printf("--------扫雷--------\n");for (i = 0; i <= col; i++){printf("%d ", i);}printf("\n");for (i = 1; i <= row; i++){printf("%d ", i);for (j = 1; j <= col; j++){printf("%c ", board[i][j]);}printf("\n");}
}
//布置雷函数的定义
void Set_thunder(char board[ROWS][COLS], int row, int col)
{int count = Easy_Thunder;//布置10个雷while (count){int x = rand() % row + 1;//生成横坐标int y = rand() % col + 1;//生成纵坐标if (board[x][y] == '0')//防止在同一个地方重复布雷{board[x][y] = '1';count--;}}
}
int Getassign(char assign[ROWS][COLS], int row, int col)//查找不是雷的格子周围有几个雷
{return (assign[row - 1][col - 1]//字符'0'的ASCII值为48,字符'1'的ASCII值为49+ assign[row - 1][col]+ assign[row - 1][col + 1]+ assign[row][col - 1]+ assign[row][col + 1]+ assign[row + 1][col - 1]+ assign[row + 1][col]+ assign[row + 1][col + 1] - 8 * '0');
}
//排查雷函数的定义
void Find_thunder(char assign[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{int x = 0;int y = 0;int win = 0;//计算没有踩到雷的次数while (win<col*row-Easy_Thunder){printf("请输入坐标:>");scanf("%d%d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col){if (assign[x][y] == '1'){printf("很遗憾,你被炸死了!\n");Display_Board(assign, ROW, COL);break;}else{//如果这个位置不是雷就统计周围八个格子雷的个数int c = Getassign(assign, x, y);show[x][y] = c + '0';Display_Board(show, ROW, COL);system("cls");//清屏操作Display_Board(show, ROW, COL);win++;}}else{printf("坐标非法,请重新输入!\n");}}if (win == row * col - Easy_Thunder){printf("恭喜你排雷成功!\n");Display_Board(assign, ROW, COL);}
}//test.c
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
#include <stdio.h>
void menu()
{printf("******************************\n");printf("********* 1.play *********\n");printf("********* 0.exit *********\n");printf("******************************\n");
}
void game()
{char assign[ROWS][COLS] = { 0 };char show[ROWS][COLS] = { 0 };Init_Board(assign,ROWS,COLS,'0');Init_Board(show, ROWS, COLS, '*');Display_Board(assign, ROW, COL);Set_thunder(assign, ROW, COL);Find_thunder(assign, show, ROW, COL);
}
int main()
{srand((unsigned int)time(NULL));int input = 0;do{menu();printf("请选择:>");scanf("%d", &input);switch(input){case 1:game();break;case 0:printf("退出游戏!\n");break;default:printf("选择错误,重新选择!\n");break;}} while (input);return 0;
}
以上就是关于扫雷游戏的全部代码啦!当然这个程序还是存在可优化的空间(比如我们的游戏只能一个一个点,但是不能像网页版的那样能展示一片,这还有待思考),欢迎大家在评论区交流,优化代码。
相关文章:
![](https://img-blog.csdnimg.cn/3b30f16555d0438a97bd43ef48049e4d.png#pic_center)
C语言经典小游戏之扫雷(超详解释+源码)
“少年气,是历尽千帆举重若轻的沉淀,也是乐观淡然笑对生活的豁达!” 今天我们学习一下扫雷游戏怎么用C语言来实现! 扫雷小游戏 1.游戏介绍2.游戏准备3.游戏实现3.1生成菜单3.2游戏的具体实现3.2.1初始化棋盘3.2打印棋盘3.3布置雷…...
![](https://www.ngui.cc/images/no-images.jpg)
算法leetcode|67. 二进制求和(rust重拳出击)
文章目录 67. 二进制求和:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 67. 二进制求和: 给你两个二进制字符串 a 和 b &a…...
![](https://img-blog.csdnimg.cn/46f3fc3ad86240b2a3117668e86c4dc3.png)
【ASP.NET MVC】第一个登录页面(8)
一、准备工作 先从网上(站长之家、模板之家,甚至TB)下载一个HTML模板,要求一整套的CSS和必要的JS,比如下图: 登录页面的效果是: 首页: 利用这些模板可以减少前台网页的设计——拿来…...
![](https://img-blog.csdnimg.cn/45be7b61ad3746fe88098ad6c879b474.png)
使用Openoffice或LibreOffice实现World、Excel、PPTX在线预览
使用Openoffice或LibreOffice实现World、Excel、PPTX在线预览 预览方案使用第三方服务使用前端库转换格式 jodconverterjodconverter概述主要特性OpenOfficeLibreOffice jodconverter的基本使用添加依赖配置创建DocumentConverter实例上传与转换预览启动上传与预览World 与Spri…...
![](https://www.ngui.cc/images/no-images.jpg)
20天学会rust(三)没有object的rust怎么面向对象?
面向对象我们都很熟悉,可以说它是一种软件开发最重要的编程范式之一,它将程序中的数据和操作数据的方法组织成对象。面向对象有几个重要特性: 封装、继承和多态,基于这些特性带来了在可重用性、可维护性、扩展性、可靠性的优点。 …...
![](https://img-blog.csdnimg.cn/a642359a43bf4fb586b7df2770e7e875.png)
整数规划——第三章 全单模矩阵
整数规划——第三章 全单模矩阵 若线性规划问题的约束矩阵为全单模矩阵,则该问题可行域的顶点都是整数点,从而线性规划与整数规划的最优解相同。 3.1 全单模性与最优性 考虑线性整数规划问题: (IP) min c T x , s . t . A x ≤ b , x …...
![](https://www.ngui.cc/images/no-images.jpg)
数据结构和算法
数据结构和算法目录表 CCJava线性结构 1. 数组、单链表和双链表 2. Linux内核中双向链表的经典实现 数组、单链表和双链表 数组、单链表和双链表 栈 栈 栈 队列 队列 队列树形结构 二叉查找树 二叉查找树 二叉查找树 AVL树 AVL树 AVL树 伸展树 伸展树 伸展树 1. 红黑树(一)之…...
![](https://img-blog.csdnimg.cn/6bb50b412e3b4591bf8f5912922a1c38.png)
[Vulnhub] matrix-breakout-2-morpheus
目录 <1> 信息收集 <2> getshell <3> Privilege Escalation(提权) <1> 信息收集 nmap -sP 192.168.236.0/24 扫描一下靶机ip 靶机ip: 192.168.236.154 nmap -A -p 1-65535 192.168.236.154 扫描一下靶机开放哪些服务 开放…...
![](https://img-blog.csdnimg.cn/e493eab42722457aae4d65103f0f60e4.png)
JDK, JRE和JVM之间的区别和联系
JDK, JRE和JVM是与Java编程语言相关的三个重要的概念,它们分别代表Java Development Kit(Java开发工具包)、Java Runtime Environment(Java运行时环境)和Java虚拟机(Java Virtual Machine)。它们…...
![](https://img-blog.csdnimg.cn/d6bf43a01a4b4cf299aca29e7a088bd1.jpeg)
mac电脑访问windows共享文件夹连接不上(设置445端口)
前提:首先需要保证mac和windows都在同一局域网内,如果不在肯定是连不上的,就不用往下看了。 事情是这样的,公司入职发了mac电脑,但是我是window重度用户,在折腾mac的过程中,有许多文件需要从wi…...
![](https://img-blog.csdnimg.cn/775632765b6744fbbecbd8fdd097d1ab.png)
metersphere性能压测执行过程
(1) 首先在controller层,通过RunTestPlanRequest接收请求参数 PostMapping("/run")public String run(RequestBody RunTestPlanRequest request) (2) 在PerformanceTestService中的run中进行具体的逻辑处理, 首先根据请求中ID来获取库中存储…...
![](https://img-blog.csdnimg.cn/img_convert/e39556d42f3b4d42f4941b0e76d7692c.jpeg)
揭秘Word高级技巧:事半功倍的文字处理策略
Microsoft Word是一款广泛使用的文字处理软件,几乎每个人都有使用过它的经历。但是,你是否知道Word中隐藏着许多高级技巧和功能,可以帮助你事半功倍地处理文字?在本文中,我们将揭秘一些Word的高级技巧,让你…...
![](https://img-blog.csdnimg.cn/9fbb03e0ce714de89bdbc79d7df1950d.png)
06-1_Qt 5.9 C++开发指南_对话框与多窗体设计_标准对话框
在一个完整的应用程序设计中,不可避免地会涉及多个窗体、对话框的设计和调用,如何设计和调用这些对话框和窗体是搞清楚一个庞大的应用程序设计的基础。本章将介绍对话框和多窗体设计、调用方式、数据传递等问题,主要包括以下几点。 Qt 提供的…...
![](https://img-blog.csdnimg.cn/6315b86774c64fac8f0cede7910f5ef6.png)
模拟实现消息队列项目(系列7) -- 实现BrokerServer
目录 前言 1. 创建BrokerServer类 1.1 启动服务器 1.2 停止服务器 1.3 处理一个客户端的连接 1.3.1 解析请求得到Request对象 1.3.2 根据请求计算响应 1.3.3 将响应写回给客户端 1.3.4 遍历Session的哈希表,把断开的Socket对象的键值对进行删除 2. 处理订阅消息请求详解(补充) …...
![](https://img-blog.csdnimg.cn/b037a55c7de24729bd1858df8315b861.png)
vscode插件不能搜索安装
1 现象 vscode搜索自己的插件,报错: Error while fetching extensions. HXR failed2 原因 之前用vscode开发golang语言,设置了proxy代理,所以导致错误,删除即可 重启vscode 3 结果...
![](https://img-blog.csdnimg.cn/e7942ecb5f3c41ce8348e253f63ebe1a.png)
路由器工作原理(第二十九课)
路由器工作原理(第二十九课) 一图胜过千言 1) 路由:数据从一个网络到另外一个网络之间转发数据包的过程称为路由 2) 路由器:连接不同网络,实现不同网段之间的通信 3)路由表:路由器选择数据的传输路径的依据 原始的路由表 Destination/Mask Proto Pre Cost …...
![](https://www.ngui.cc/images/no-images.jpg)
linux log 日志
/* author: hjjdebug * date: 2023年 08月 08日 星期二 13:18:08 CST * descriptor: linux log 日志 * destinator: 搞清linux 下log 日志 * 下面代码编译通过即可运行 */ #include <stdio.h> #include <syslog.h> int main(void) { // 打开系统日志, 可…...
![](https://www.ngui.cc/images/no-images.jpg)
uniapp获取当前页面高度
设置动态高度:style"{height: pageHeightpx}" <view class"uni-content" :style"{height: pageHeightpx}" >... </view>获取当前页面高度: onLoad() {// 获取当前窗口高度this.pageHeight uni.getSystemInfoSync().wi…...
![](https://img-blog.csdnimg.cn/43b9e79c4ec74840819c7e90fd717e3c.png)
Java课题笔记~ Spring 集成 MyBatis
Spring 集成 MyBatis 将 MyBatis 与 Spring 进行整合,主要解决的问题就是将 SqlSessionFactory 对象交由 Spring 来管理。所以该整合,只需要将 SqlSessionFactory 的对象生成器SqlSessionFactoryBean 注册在 Spring 容器中,再将其注入给 Dao…...
![](https://www.ngui.cc/images/no-images.jpg)
分布式系统理论基础
文章目录 介绍目标 正文CAPConsistencyAvailabilityPartition tolerance BASEBasically AvailableSoft StateEventually Consistent ACIDatomicityconsistencyisolationdurability 参考文档 介绍 分布式系统面临的场景往往是众口难调,“这也要,那也要”…...
![](https://www.ngui.cc/images/no-images.jpg)
mfc 编辑框限制
DoDataExchange由框架调用,作用是交互并且验证对话框数据,主要由(DDX) 和 (DDV)宏实现。 永远不要直接调用这个函数,而是通过UpdateData(TRUE/FALSE)实现控件与变量之间值的传递。 当然你也可以不使用DoDataExchange而完成控件与变量之间值…...
![](https://img-blog.csdnimg.cn/c7939fedd203484e881e58970cfde6cd.png)
web基础与tomcat环境部署
一. 简述静态网页和动态网页的区别。 请求响应信息,发给客户端进行处理,由浏览器进行解析,显示的页面称为静态页面。处理文件类型如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等 请求响应信息,发给事务端进行处理࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
Go 变量
在Go中,有不同的变量类型,例如: int 存储整数(整数),例如123或-123float32 存储浮点数字,带小数,例如19.99或-19.99string - 存储文本,例如“ Hello World”。字符串值用…...
![](https://img-blog.csdnimg.cn/9d3779ae973a43d587c56ee650440dc5.png)
【雷达通信】非相干多视处理(CSA)(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
![](https://img-blog.csdnimg.cn/09a2c6bb9fd24f4d8a222a45bd7debc0.png)
73. 矩阵置零
题目链接:力扣 解题思路: 方法一:比较容易想到的方向,使用两个数组row和col保存有0的行或者列,然后将有0的那一行或那一列的所有元素都设置为0 AC代码 class Solution {public void setZeroes(int[][] matrix) {in…...
![](https://www.ngui.cc/images/no-images.jpg)
‘大数据技术与应用’和‘数据科学与大数据技术’有什么区别
一、侧重点不同 ‘大数据技术与应用’主要侧重于大数据的存储、处理和分析技术、包括数据挖掘、机器学习、数据仓库、分布式计算等方面的研究,旨在开发大数据相关的应用程序和系统,以满足商业和企业的需求。 ‘数据科学与大数据技术’则更加注重数据本…...
![](https://www.ngui.cc/images/no-images.jpg)
没有jsoup,rust怎么解析html呢?
在 Rust 中,你可以使用各种库来解析网页内容。一个常用的库是 reqwest ,它提供了一个简单的方式来发送 HTTP 请求并获取网页内容。另外,你可以使用 scraper 或 select 等库来解析 HTML 或 XML 格式的网页内容。 下面是一个使用 reqwest 和 sc…...
![](https://img-blog.csdnimg.cn/75cdf47cdb274013aca883c215af2ac0.png)
【C高级】Day4 shell脚本 排序
1. 整理思维导图 2. 写一个函数,获取用户的uid和gid并使用变量接收 #!/bin/bash function getid() {uidid -ugidid -g }getid echo "uid$uid" echo "gid$gid"3. 整理冒泡排序、选择排序和快速排序的代码 #include <myhead.h>void Inp…...
![](https://img-blog.csdnimg.cn/img_convert/26e0f2248b32339b3a4eefcd347a9559.png)
大模型开发(十六):从0到1构建一个高度自动化的AI项目开发流程(中)
全文共1w余字,预计阅读时间约40~60分钟 | 满满干货(附代码),建议收藏! 本文目标:通过LtM提示流程实现自动构建符合要求的函数,并通过实验逐步完整测试code_generate函数功能。 代码下载点这里 一、介绍 此篇文章为…...
![](https://www.ngui.cc/images/no-images.jpg)
【深入了解pytorch】PyTorch强化学习:强化学习的基本概念、马尔可夫决策过程(MDP)和常见的强化学习算法
【深入了解pytorch】PyTorch强化学习:强化学习的基本概念、马尔可夫决策过程(MDP)和常见的强化学习算法 PyTorch强化学习:介绍强化学习的基本概念、马尔可夫决策过程(MDP)和常见的强化学习算法引言强化学习的基本概念状态(State)动作(Action)奖励(Reward)策略(Pol…...
![](/images/no-images.jpg)
重庆石桥铺网站建设公司/网站关键词快速排名优化
将 Game over2.wav改为Log-in-long2.wav 这个是登录界面的音乐将 main_theme.wav改为sellect-loop2.wav 这个是角色选择界面的音乐最好先将Log-in-long2.wav sellect-loop2.wav这两个文件改成别的名字,以免更改的时候说有文件重名 WAV文件夹里面还有一首32.21M…...
![](/images/no-images.jpg)
武汉新闻头条/sem和seo是什么
1、Matplotlib 简介 数据可视化有助于更有效地讲述有关数据的故事并使其易于呈现。有时很难用静态图表来解释数据的变化,为此,我们将讨论matplotlib提供的名为“Animation”的动画库之一。以下是要涵盖的主题。 最流行的Python二维绘图库是Matplolib。大多数人从Matplotlib开…...
![](/images/no-images.jpg)
丹阳翼网官网/seo关键词优化排名
计算机操作员试卷(操作技能)称注 意 事 项名位 线 一、本试卷依据 2008 年颁布的《计算机操作员》国家职业标准命制。单 二、请根据试题考核要求,完成考试内容。三、请服从考评人员指挥,保证考核安全顺利进行。此 试题 1、计算机安装、连接、调试(1)本题…...
![](/images/no-images.jpg)
网站动图banner怎么做/如何优化网络环境
一、H3C 交换机密码配置一、CONSOLE口登陆在AUX用户接口视图下,可以设置CONSOLE用户登陆的口令认证。有如下三种认证方式None:不需要口令认证Password:需要简单的本地口令认证,包含明文(simple)和密文(cipher)Scheme&a…...
![](/images/no-images.jpg)
asp 网站 购物车/怎样才能上百度
1.修改表的字段:修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):语法: ALTER TABLE 表名 MODIFY(列名 数据类型);eg1: alter table skate_test modify (author number(10,0) );在修改列的长度时,只能改为比现有字段实际存的长…...
激情做a图片视频网站/百度seo公司报价
(父级下的a链接 设置成块元素,大小与父元素一样,设置好边框) 原理就是 : 将a链接的高度加长1像素用来盖过隐藏的二级菜单,当父级hover时,a链接底部边框隐藏...