哪些网站可以做详情页洛阳做家教去什么网站

web/2025/10/3 15:21:14/文章来源:
哪些网站可以做详情页,洛阳做家教去什么网站,wordpress主题在那个目录,网站模板下载简单的那种目录 前言 一、游戏规则 1.功能分析 2.玩法分析 3.胜负判定条件 二、游戏实现思路 三、代码实现与函数封装 1.项目文件创建 2.头文件说明 3.函数封装 1#xff09;菜单实现 2#xff09;进度条实现 3#xff09;main函数实现 4#xff09;Game函数 5#xff0…目录 前言 一、游戏规则 1.功能分析 2.玩法分析 3.胜负判定条件 二、游戏实现思路 三、代码实现与函数封装 1.项目文件创建 2.头文件说明 3.函数封装  1菜单实现 2进度条实现 3main函数实现 4Game函数 5ShowBoard函数实现 6PlayerMove函数实现 7ChessCount函数实现 8IsOver函数实现 四、源码分享 1.main.c 2.ProBar.h 3.probar.c 4.game.h 5.game.c 总结 前言 五子棋又称连珠棋是一种双人对弈的棋类游戏。游戏目标是在一个棋盘上通过在横、竖、斜线上依次放置棋子使自己的五个棋子连成一线即横线、竖线或斜线且无被对手堵住的空位从而获胜。 实现简单的五子棋游戏需要有二维数组、函数调用等知识。本项目代码量大致为两三百行。 一、游戏规则 1.功能分析 五子棋的功能比较简单只有黑棋落子和白棋落子有些五子棋还有悔棋功能、显示胜率、记录走的步数等功能但是初学时可以只实现简单的落子功能即可。 2.玩法分析 由黑棋先走鼠标左击即可落子然后轮到白棋回合如此循环直到游戏结束。 3.胜负判定条件 五子棋的棋盘通常为15×15的格子双方轮流在空位上放置自己的棋子先连成五子的一方获胜。如果棋盘填满但没有五子连成一线游戏结束为平局。 二、游戏实现思路 使用坐标输入代替鼠标点击坐标应该符合人们使用习惯从1开始【鼠标左击】功能若有人胜利提示胜利方为谁并结束游戏若无人胜利且棋盘未满提示继续若棋盘已满提示平局实现清屏功能每次落完子之后刷新屏幕可以加入进度条在游戏开始时展示。 三、代码实现与函数封装 1.项目文件创建 将源代码分为五个文件两个头文件(.h)用于声明函数分别声明进度条和游戏函数 三个源文件(.c)两个用于写函数体实现进度条和游戏主体一个为主函数调用函数。 2.头文件说明 1.为了防止在项目中多次申明同一个头文件需要加入防重复判断语句 #pragma once 2.头文件中可以直接引用需要的标准库然后在源文件中只需要引用自己写的头文件即可 #include game.h #include ProBar.h 3.函数封装  棋盘设置为15×15且可更改方便之后的更改。 1菜单实现 void Menu() {printf(#########################\n);printf(### 1.Play 0.Exit ###\n);printf(#########################\n);printf(Please Select: ); } 2进度条实现 \r使光标每次回到开头的位置使用fflush函数刷新输出界面并使用usleep函数进行延迟达到很好的效果。 #define NUM 100void process_bar() {char bar[NUM1];memset(bar, \0, sizeof(bar));const char* lable |/-\\;int i 0;while(i NUM){printf(Load...[%-100s][%-3d%%][%c]\r, bar, i, lable[i%4]);fflush(stdout);bar[i] #;usleep(10000);}printf(\n); } 3main函数实现 使用quit变量来控制循环的退出 Game函数实现游戏的主体。 int main() {int quit 0;int select 0;while(!quit){Menu();scanf(%d, select);switch(select){case 1:process_bar();Game();break;case 0:quit 1;printf(Exit Success!\n);break;defualt :printf(Enter Error, Try Again!\n);break;}}return 0; } 4Game函数 建立棋盘使用memset函数初始化棋盘do...while执行游戏运行IsOver函数判断游戏是否结束PlayerMove函数玩家走一步棋Showboard 打印出棋盘switch...case 显示出游戏结果。 #define ROW 20 #define COL 20#define PLAYER1 1 #define PLAYER2 2#define NEXT 0 #define PLAYER1_WIN 1 #define PLAYER2_WIN 2 #define DRAW 3void Game() {int board[ROW][COL];memset(board, \0, sizeof(board));int result NEXT;do{ShowBoard(board, ROW, COL);PlayerMove(board, ROW, COL, PLAYER1);result IsOver(board, ROW, COL);if(NEXT ! result){break;}ShowBoard(board, ROW, COL);PlayerMove(board, ROW, COL, PLAYER2);result IsOver(board, ROW, COL);if(NEXT ! result){break;}}while(1);//p1 win , p2 win, drawShowBoard(board, ROW, COL);switch(result){case PLAYER1_WIN:printf(congratulate Player1, you win!\n);break;case PLAYER2_WIN:printf(congratulate player2, you win!\n);break;case DRAW:printf(draw!\n);break;default:break;} } 5ShowBoard函数实现 刷新屏幕 printf(\033c); void ShowBoard(int board[ROW][COL], int row, int col) {//clear screen//printf(\e[1;1H\e[2J)]]);//printf( );printf(\033c);printf(\n\n );for(int i0; icol; i){printf(%3d, i1);}printf(\n);for(int i0; irow; i){printf(%2d , i1);for(int j0; jcol; j){if(board[i][j] 0){printf( . );}else if(board[i][j] PLAYER1){printf( x );}else{printf( o );}}printf(\n);} } 6PlayerMove函数实现 int x 0; int y 0; 设置为全局变量由用户输入从1开始 int x 0; int y 0;void PlayerMove(int board[ROW][COL], int row, int col, int player) {while(1){printf(\nPlayer[%d] Please Enter Your Pos:, player);scanf(%d %d, x, y);//判断合法坐标if(x1 || x row || y1 || ycol){printf(Pos is not right!\n);continue;}else if(board[x-1][y-1] ! 0){printf(Pos is occpuied!\n);continue;}else{board[x-1][y-1] player;//谁落子就放置谁的数据break;}} } 7ChessCount函数实现 要判断是否继续下棋需要判断是否已经五子连珠就需要数下的这个子周围有没有出现五子连珠由于每次下棋都会判断一次所以不会出现漏判的情况。 enum Dir {LEFT,RIGHT,UP,DOWN,LEFT_UP,LEFT_DOWN,RIGHT_UP,RIGHT_DOWN };int ChessCount(int board[ROW][COL], int row, int col, enum Dir d) {int _x x-1;int _y y-1;int count 0;while(1){switch(d){case LEFT:_y--;break;case RIGHT:_y;break;case UP:_x--;break;case DOWN:_x;break;case LEFT_UP:_x--;_y--;break;case LEFT_DOWN:_x;_y--;break;case RIGHT_UP:_x--, _y;break;case RIGHT_DOWN:_x, _y;break;default://Do nothingbreak;}if(_x0 || _xrow-1 || _y0 || _y col-1){break;}if(board[x-1][y-1] board[_x][_y]){count;}else{break;}}return count; } 8IsOver函数实现 任何落子位置都有八个方向所以判定五子连珠本质是判定1,5方向之和2,6方向之和37方向之和4,8方向 之和其中任意一个出现相同的连续五个棋子即游戏结束 int IsOver(int board[ROW][COL], int row, int col) {//注意每次统计的时候都没有统计当前节点需要单独1int count1 ChessCount(board, row, col, LEFT) ChessCount(board, row, col, RIGHT) 1;int count2 ChessCount(board, row, col, UP) ChessCount(board, row, col, DOWN) 1;int count3 ChessCount(board, row, col, LEFT_UP) ChessCount(board, row, col, RIGHT_DOWN) 1;int count4 ChessCount(board, row, col, LEFT_DOWN) ChessCount(board, row, col, RIGHT_UP) 1;if(count1 5 || count25 || count35 || count45){//谁赢返回谁//return board[x-1][y-1];if(board[x-1][y-1] PLAYER1){return PLAYER1_WIN;}else{return PLAYER2_WIN;}}for(int i0; irow; i){for(int j0; jcol; j){if(board[i][j] 0){//棋盘未满返回继续return NEXT;}}}//棋盘已满且没人赢返回平局return DRAW; } 四、源码分享 1.main.c #include game.h #include ProBar.hint main() {int quit 0;int select 0;while(!quit){Menu();scanf(%d, select);switch(select){case 1:process_bar();Game();break;case 0:quit 1;printf(Exit Success!\n);break;defualt :printf(Enter Error, Try Again!\n);break;}}return 0; }2.ProBar.h #pragma once #include stdio.h #include unistd.h #include string.h#define NUM 100void process_bar(); 3.probar.c #include ProBar.hvoid process_bar() {char bar[NUM1];memset(bar, \0, sizeof(bar));const char* lable |/-\\;int i 0;while(i NUM){printf(Load...[%-100s][%-3d%%][%c]\r, bar, i, lable[i%4]);fflush(stdout);bar[i] #;usleep(10000);}printf(\n); }4.game.h #include string.h #include stdlib.h#define ROW 20 #define COL 20#define PLAYER1 1 #define PLAYER2 2#define NEXT 0 #define PLAYER1_WIN 1 #define PLAYER2_WIN 2 #define DRAW 3enum Dir {LEFT,RIGHT,UP,DOWN,LEFT_UP,LEFT_DOWN,RIGHT_UP,RIGHT_DOWN };void Menu(); void Game();int IsOver(int board[ROW][COL], int row, int col); void ShowBoard(int board[ROW][COL], int row, int col); int ChessCount(int board[ROW][COL], int row, int col, enum Dir d); void Playermove(int board[ROW][COL], int row, int col, int player); 5.game.c #include game.h #include ProBar.h int x 0; int y 0;void Menu() {printf(#########################\n);printf(### 1.Play 0.Exit ###\n);printf(#########################\n);printf(Please Select: ); }//four possbilities: //NEXT: continue //1: 1 win //2: 2 win //3: draw int IsOver(int board[ROW][COL], int row, int col) {//import hard//wu zi lian zhuint count1 ChessCount(board, row, col, LEFT) ChessCount(board, row, col, RIGHT) 1;int count2 ChessCount(board, row, col, UP) ChessCount(board, row, col, DOWN) 1;int count3 ChessCount(board, row, col, LEFT_UP) ChessCount(board, row, col, RIGHT_DOWN) 1;int count4 ChessCount(board, row, col, LEFT_DOWN) ChessCount(board, row, col, RIGHT_UP) 1;if(count1 5 || count25 || count35 || count45){//return board[x-1][y-1];if(board[x-1][y-1] PLAYER1){return PLAYER1_WIN;}else{return PLAYER2_WIN;}}for(int i0; irow; i){for(int j0; jcol; j){if(board[i][j] 0){return NEXT;}}}return DRAW; }int ChessCount(int board[ROW][COL], int row, int col, enum Dir d) {int _x x-1;int _y y-1;int count 0;while(1){switch(d){case LEFT:_y--;break;case RIGHT:_y;break;case UP:_x--;break;case DOWN:_x;break;case LEFT_UP:_x--;_y--;break;case LEFT_DOWN:_x;_y--;break;case RIGHT_UP:_x--, _y;break;case RIGHT_DOWN:_x, _y;break;default://Do nothingbreak;}if(_x0 || _xrow-1 || _y0 || _y col-1){break;}if(board[x-1][y-1] board[_x][_y]){count;}else{break;}}return count; }void ShowBoard(int board[ROW][COL], int row, int col) {//clear screen//printf(\e[1;1H\e[2J)]]);//printf( );printf(\033c);printf(\n\n );for(int i0; icol; i){printf(%3d, i1);}printf(\n);for(int i0; irow; i){printf(%2d , i1);for(int j0; jcol; j){if(board[i][j] 0){printf( . );}else if(board[i][j] PLAYER1){printf( x );}else{printf( o );}}printf(\n);} }void PlayerMove(int board[ROW][COL], int row, int col, int player) {while(1){printf(\nPlayer[%d] Please Enter Your Pos:, player);scanf(%d %d, x, y);if(x1 || x row || y1 || ycol){printf(Pos is not right!\n);continue;}else if(board[x-1][y-1] ! 0){printf(Pos is occpuied!\n);continue;}else{board[x-1][y-1] player;break;}} }void Game() {int board[ROW][COL];memset(board, \0, sizeof(board));int result NEXT;do{ShowBoard(board, ROW, COL);PlayerMove(board, ROW, COL, PLAYER1);result IsOver(board, ROW, COL);if(NEXT ! result){break;}ShowBoard(board, ROW, COL);PlayerMove(board, ROW, COL, PLAYER2);result IsOver(board, ROW, COL);if(NEXT ! result){break;}}while(1);//p1 win , p2 win, drawShowBoard(board, ROW, COL);switch(result){case PLAYER1_WIN:printf(congratulate Player1, you win!\n);break;case PLAYER2_WIN:printf(congratulate player2, you win!\n);break;case DRAW:printf(draw!\n);break;default:break;} } 总结 实际上这个版本还是一个非常简易的版本在之后学习到别的模块之后可以对这个项目再进行改进比如可以尝试以下功能 人机对战功能扩展颜色提示步数记录先手随机交换等网络版本 码云Gitee项目链接GoBangGame · Kevin Ray/LinuxPractice - 码云 - 开源中国 (gitee.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

珠海网站建设技术支持迁西县住房和城乡规划建设局网站

12月6日,浙江省经信厅公示了2023年浙江省信息技术应用创新典型案例入围名单。本次案例征集活动,由浙江省经信厅、省密码管理局、工业和信息化部网络安全产业发展中心联合组织开展,共遴选出24个优秀典型解决方案,迪捷软件“基于全数…

全网营销网站建设惠城网站制作

在 C# 中,IServiceCollection 是 ASP.NET Core 中用于依赖注入的接口。依赖注入是一种设计模式,它允许对象之间的依赖关系由外部组件管理,而不是在对象内部直接创建它们的依赖项。IServiceCollection 接口用于注册和配置应用程序中的服务。 …

网站建设鼠标移动变颜色传奇176网页游戏

前情提要,如果看了书本,这个lab难度不高,但是如果不看书,难度还是挺高的,并且这个lab会用到cachelab中学到的东西,需要阅读 第十章:系统编程第十一章:网络编程第十二章:…

西宁网站建设最好的公司校园加盟网站建设

机器视觉应用开发是指利用计算机视觉技术进行图像或视频数据处理和分析,实现自动化、智能化的应用程序开发。下面是机器视觉应用开发的一般步骤和常见任务。 需求分析:明确开发的机器视觉应用的具体需求和目标,例如人脸识别、目标检测、图像分…

做英语四级题的网站谷歌广告上海有限公司官网

对于网页编程来说,最重要的就是存取和读写数据了。存储方式可能有很多种,可以是字符串、数组、文件的形式等,今天学习了数组,可以说是PHP的数据应用中较重要的一种方式。PHP的数组函数众多,下面是我学习的小结&#xf…

黄浦企业网站制作wordpress添加语系

添加系统用户 useradd samba 添加samba用户 smbpasswd -a samba 激活samba用户 smbpasswd -e samba 1.winr运行secpol.msc打开本地安全策略 2.安全策略->本地策略->安全选项 3.右侧找到 网络安全:LAN管理器身份验证级别 打开 ,选择 仅发送NTLMv2响应&#xf…

app下载官方网站英文外贸网站制作

[vue] 说下你对指令的理解? 指令 (Directives) 是带有 v- 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式 (v-for 是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时,将其产生的连带影响&a…

医院网站建设联系方式营销型网站建设公司排名

Typescript允许你覆盖它的判断,并且能以任何你想要的方式分析它,这种机制被称为类型断言。 类型断言的两种方式: 1.as关键字 interface SquareConfig {color?: string;width?: number; }function createSquare(config: SquareConfig) {/…

企业门户网站需求模板网站建设开发方案

toFixed() 转载于:https://www.cnblogs.com/ytg1120/p/7101317.html

怎样创办一个网站重庆网络公司流程

这是Project Student的一部分。 其他帖子包括带有Jersey的Webservice Client,带有Jersey的 Webservice Server和带有Spring Data的Persistence 。 RESTful Webapp洋葱的第三层是业务层。 这就是应用程序的精髓所在–编写良好的持久性和Web服务层受到约束&#xff0…

乌镇网站建设标书网络营销手段有哪些

一、什么是湖仓一体(Lakehouse)? 湖仓一体是一种融合了数据湖的灵活存储能力与数据仓库的高效分析功能的现代数据架构。它通过整合两者的优势,解决了传统架构的局限性,为企业数据处理提供了更全面的解决方案。 数据湖…

学校集约网站建设我做的网站怎样被百度收录

在本文中,我们将看到作为JEP 286的一部分提出的名为Local Variable Type Inference的Java10功能。 从Java的第一个版本开始,它是一种强类型语言,在这里我们需要提及每种变量数据类型。 我们所有人都感到Java是冗长的语言,并期望精…

廊坊公司网站建设濮阳市建设分局网站

查询非嵌套文档数组 非嵌套文档的数组,数组由数字、字符串等元素组成。 以下方法对数组字段进行查询操作的示例,包括对数组匹配查询,元素的增、删、改操作,空数组、非空数组查询等。 测试数据 连接到 mongodb 数据库&#xff0…

中国行业网站大全wordpress入侵教程

功能:在Web页中创建通用表。 属性: 1、CellPadding属性:用于设置表中单元格的边框和内容之间的距离(以像素为单位)。默认为-1(未设置)。 2、CellSpacing属性:用于设置表中单元格之间…

信息网站设计案例中山做网站排名

如今闹得不可开交的3Q大战已经成了一道独特的风景线,让我们在茶余饭后又增添了不少谈资。这两个中国最大的客户端软件提供商各有拥趸无数,双方铆足了劲相互吐口水、扔砖头,现在貌似到了动刀子了。周、马在媒体上也都将自己标榜为“美貌与智慧…

如何制作一个公司网站网站建设倒计时单页源码

文章目录1. 题目2. 解题1. 题目 学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。 请你返回至少有多少个学生没有站在正确位置数量。该人数指的是:能让所有学生以 非递减 高度排列的必要移动人数。 示例:输入:[…

开发 网站 费用织梦响应式网站

实现使用 Docker 在一台服务器上搭建支持 80、443 端口访问的测试、生产双站点系统。 1、生产环境&测试环境的规划和部署 1.1、说明 图1 系统部署示意图 1)项目 此处以一个演示项目的形式来进行环境的规划和部署。此项目名称默认定义为:“demo”&a…

哪家做的濮阳网站建设重庆建站公司哪个好

编写一个程序,计算|X-Y|的值,并将结果存入RESULT单元中,其中X和Y都为带符号字数据。 P154 例4.11 汇编思路:DATA段定义X、Y、RESULE分别用于存放随机数、存放随机数、存放最后计算结果。STACK段定义100DB大小的堆栈段运算存储空间。将AX获取…

关于网站得精神文明建设网站建设与管理代码题

文本三剑客(sed) 使用场景基本语法实例命令列表 使用场景 sed提供了一种面交互的方式修改文件内容。 它是一行一行处理,可以通过正则匹配要修改的部分 基本语法 基本语法 sed [-opt] command files(多个文件 空格隔开) sed 使用正则 sed -…

网站打开慢怎么回事啊装修网站建设策划方案

生成报表页面: 右下图是报表页面,如果图纸有改动,点左图更新 举例,下图有急停按钮符号,要把急停按钮显示在清单里.第一步,已经有了符号(下左图急停),符号有设备标识符.第二步就是简易自建部件,第三部是在符号属性里关联自建部件 上图是右键点击同类型的部件,然后新建.下图新建部…