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

山东建设公司网站网站建设公司的年报

山东建设公司网站,网站建设公司的年报,2017做网站挣钱吗,东莞网网站公司简介三子棋 前言一#xff0c;游戏规则二#xff0c;所需文件三#xff0c;创建菜单四#xff0c;游戏核心内容实现1.棋盘初始化1.棋盘展示3.玩家下棋4.电脑下棋5.游戏胜负判断6.game#xff08;#xff09;函数内部具体实现 四#xff0c;游戏运行实操 前言 C语言实现三子棋… 三子棋 前言一游戏规则二所需文件三创建菜单四游戏核心内容实现1.棋盘初始化1.棋盘展示3.玩家下棋4.电脑下棋5.游戏胜负判断6.game函数内部具体实现 四游戏运行实操 前言 C语言实现三子棋是对大家对数组函数循环与分支等内容的考察。通过本篇文章你将学会如何制作出三子棋坚持一段时间的复习相信你肯定能够掌握三子棋**文末附三子棋全部代码.** 一游戏规则 设计游戏前先了解三子棋基本规则以围绕规则用C语言实现 1、人机双方轮流在格子里落子棋子先连成三棋一线者视为胜利 2、棋盘被摆满棋子仍未分出胜利视为平局 二所需文件 三子棋并不是一项容易的代码需要我们进行分文件编写。 什么是分文件编写 就是把我们的程序代码划分成多个文件这样就不会把所有的代码都放在main.c里面采用分模块的编程思想进行功能划分把每个功能不一样的单独放在一个c文件里然后写头文件把它封装成可调用的一个函数在主函数调用这个封装好的函数编译的时候一起编译即可 好处 a.功能责任划分 b.方便调试 c.主程序简洁 来让给我们看看具体操作如下 头文件中创建game.h ----用来声明函数 源文件中创建game.c—函数具体实现 / test.c—主题流程 三创建菜单 先创建一个菜单以展示进入退出游戏功能 void menu() {printf(**********************\n);printf(****** 1.play ******\n);printf(****** 0.exit ******\n);printf(**********************\n); }用do…while循环实现菜单使用switch语句进行菜单选择 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; }四游戏核心内容实现 game函数中实现整个游戏先数组棋盘 char board[ROW][COL]; 1.棋盘初始化 在game.h中定义行和列为3 #define ROW 3 #define COL 3在game.h中声明初始化函数Initboard //初始化棋盘 void Initboard(char board[ROW][COL], int row, int col);在game.c中实现初始化函数创造三行三列的空格 void Initboard(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){board[i][j] ;}} }期盼初始化完成。 1.棋盘展示 初始化完棋盘需要将棋盘打印在键盘上 在game.文件中声明打印棋盘 //打印棋盘 void Displayboard(char board[ROW][COL], int row, int col);在game.c文件中实现棋盘打印函数 void DisplayBoard(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i){//先打印数据printf( %c | %c | %c \n, board[i][0], board[i][1], board[i][2]);//再打印分割行if(irow-1)printf(---|---|---\n);} }棋盘打印完成 3.玩家下棋 在game.h声明玩家下棋函数 //玩家下棋 void Playermove(char board[ROW][COL], int row, int col);在game.h中实现玩家下棋函数。玩家所在下棋子不能出棋盘否则坐标非法重新下所下棋子必须在无棋子格子中否则坐标备占有重新下while实现玩家下错棋子重新下直到下正确退出循环 void PlayerMove(char board[ROW][COL], int row, int col) {int x 0;int y 0;printf(玩家下棋\n);while (1){printf(请输入要下棋的坐标:);scanf(%d %d, x, y);if (x 1 x row y 1 y col){if (board[x-1][y-1] )//数组下标从0开始所以横纵坐标各减一{board[x - 1][y - 1] *;break;}else{printf(该坐标被占有请输入其他坐标\n);}}else{printf(坐标非法请重新输入\n);}} }玩家下棋完成。 4.电脑下棋 在game.h声明电脑下棋函数 //电脑下棋 void Computermove(char board[ROW][COL], int row, int col);在game.c文件中实现电脑下棋函数。电脑随机下棋需要随机坐标引头文件#include stdlib.h随机数生成需要头文件#include time.h。将电脑所下棋控制在棋盘内然后判断是否下在空棋盘内否则重下while实现玩家下错棋子重新下直到下正确退出循环 void Computermove(char board[ROW][COL], int row, int col) {printf(电脑开始下棋\n);int x 0;int y 0;while (1){x rand() % row;y rand() % col;if (board[x][y] ){board[x][y] #;break;}} }5.游戏胜负判断 在game.h中声明胜负判断函数。 //判断输赢 char IsWin(char board[ROW], int row, int col);在game.c中实现胜负判断函数。每次下棋结果共有四种1.玩家嬴2.电脑嬴3.平局4.继续游戏 for循环实现行列三点成直线if判断玩家或电脑三点成直线打印‘ * ’或‘ # ’ char IsWin(char board[ROW][COL], int row, int col) {int i 0;for (i 0; i row; i){if (board[i][0] board[i][1] board[i][1] board[i][2] board[i][0] board[i][0] board[i][2] ! )//行连成线{return board[i][0];}}for(i 0; i col; i){if (board[0][i] board[1][i] board[1][i] board[2][i] board[0][i] board[2][i] board[0][i] ! )//列连成线{return board[i][0];}}if (board[0][0] board[1][1] board[1][1] board[2][2] board[0][0] board[2][2] board[0][0] ! )//斜方连成线{return board[0][0];}if (board[2][0] board[1][1] board[1][1] board[0][2] board[0][2] board[2][0] board[1][1] ! )//斜方连成线{return board[1][1];}if (isFull(board, ROW, COL)){return Q;}return C; }嵌套平局函数在game.h中。若所有坐标被占满坐标都不为空平局函数返回真判断胜负函数返回Q平局。若坐标有空平局函数返回假在判断胜负函数中返回C继续游戏 static isFull(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){if (board[i][j] )return 0;}}return 1; }6.game函数内部具体实现 创建数组char board[ROW][COL];调用初始化棋盘(Initboard(board, ROW, COL))和打印棋盘Displayboard(board, ROW, COL)函数while循环实现电脑和玩家相互下棋用ret接受胜负结果如果不是继续游戏C则跳出循环。若结果为玩家*则玩家嬴若结果为电脑#则电脑应否则结果为平局。 void game() {int ret 0;char board[ROW][COL];Initboard(board, ROW, COL);Displayboard(board, ROW, COL);while (1){Playermove(board, ROW, COL);Displayboard(board, ROW, COL);ret IsWin(board, ROW, COL);if (ret ! C){break;}Computermove(board, ROW, COL);Displayboard(board, ROW, COL);ret IsWin(board, ROW, COL);if (ret ! C){break;}}if (ret *){printf(玩家嬴\n);}else if (ret #){printf(电脑嬴\n);}else{printf(平局\n);} }四游戏运行实操 1.运行程序出现菜单 1.选择1开始玩游戏出现棋盘 2.输入下棋位置开始下棋 3.棋子没有落在空位置重新下棋 4出现三点成直线获得胜利 5若棋盘下满则平局 6.选择0退出游戏 完整代码: game.h #pragma once#include stdio.h #include time.h #include stdlib.h#define ROW 3 #define COL 3//初始化棋盘 void Initboard(char board[ROW][COL], int row, int col); //打印棋盘 void Displayboard(char board[ROW][COL], int row, int col); //玩家下棋 void Playermove(char board[ROW][COL], int row, int col); //电脑下棋 void Computermove(char board[ROW][COL], int row, int col); //判断输赢 char IsWin(char board[ROW], int row, int col); game.c #define _CRT_SECURE_NO_WARNINGS 1 #includegame.hvoid Initboard(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){board[i][j] ;}} } void Displayboard(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){printf( %c , board[i][j]);if (j col - 1)printf(|);}printf(\n);if (i row - 1){for (j 0; j col; j){printf(---);if (j col - 1)printf(|);}}printf(\n);} } void Playermove(char board[ROW][COL], int row, int col) {int x 0;int y 0;printf(玩家要下棋:\n);while (1){printf(请输入下棋位置);scanf(%d %d, x, y);if (x 1 x row y1 y col){if (board[x - 1][y - 1] ){board[x - 1][y - 1] *;break;//跳出循环}else{printf(所输入位置被占用,请输入其他坐标\n);}}else{printf(输错位置,请重新输入\n);}} } void Computermove(char board[ROW][COL], int row, int col) {printf(电脑开始下棋\n);int x 0;int y 0;while (1){x rand() % row;y rand() % col;if (board[x][y] ){board[x][y] #;break;}} } static isFull(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){if (board[i][j] )return 0;}}return 1; } char IsWin(char board[ROW][COL], int row, int col) {int i 0;for (i 0; i row; i){if (board[i][0] board[i][1] board[i][1] board[i][2] board[i][0] board[i][0] board[i][2] ! ){return board[i][0];}}for(i 0; i col; i){if (board[0][i] board[1][i] board[1][i] board[2][i] board[0][i] board[2][i] board[0][i] ! ){return board[i][0];}}if (board[0][0] board[1][1] board[1][1] board[2][2] board[0][0] board[2][2] board[0][0] ! ){return board[0][0];}if (board[2][0] board[1][1] board[1][1] board[0][2] board[0][2] board[2][0] board[1][1] ! ){return board[1][1];}if (isFull(board, ROW, COL)){return Q;}return C; }test.c #define _CRT_SECURE_NO_WARNINGS 1 #includegame.h //创建菜单 void menu() {printf(**********************\n);printf(****** 1.play ******\n);printf(****** 0.exit ******\n);printf(**********************\n); } //创建游戏 void game() {int ret 0;char board[ROW][COL];Initboard(board, ROW, COL);Displayboard(board, ROW, COL);while (1){Playermove(board, ROW, COL);Displayboard(board, ROW, COL);ret IsWin(board, ROW, COL);if (ret ! C){break;}Computermove(board, ROW, COL);Displayboard(board, ROW, COL);ret IsWin(board, ROW, COL);if (ret ! C){break;}}if (ret *){printf(玩家嬴\n);}else if (ret #){printf(电脑嬴\n);}else{printf(平局\n);} } int main() {int input 0;srand((unsigned int)time(NULL));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; }本次三子棋学习告一段落三子棋详解完整代码反复阅读坚持打码相信你在不久的将来就会拿下三子棋以扩展更高级代码。期待下次作品与大家见面
http://www.hkea.cn/news/14509690/

相关文章:

  • 中国化工建设协会网站虚拟机wordpress安装教程视频教程
  • 免费网站优缺点北京网站设计多少钱
  • 做微信头图的网站如何进行网络推广和宣传
  • 域名备案后网站打不开推进网站集约化建设 网络安全
  • 无锡建设管理服务中心网站优化代码
  • 国家建设标准网站网站用什么语言做
  • 做衣服外单网站国外网站谷歌seo推广
  • 比较好的建站公司淘宝购物网站的建设
  • 网站gif素材网站模板库 下载
  • 打开网站自动跳转代码wordpress不自动安装
  • 营销网站建设品牌企业杭州正晖建设工程有限公司网站
  • 做a视频网站有哪些汕头公关公司
  • 购物网站界面 管理员需求分析家电企业展厅设计
  • 唐山哪个公司可以建网站网站优化快照
  • 商水住房城乡建设网站vi设计怎么做
  • 检测WordPress主题的网站简洁大气企业网站源码
  • 在网站建设中什么用于搭建页面结构空调安装工做网站
  • 中国数据网站空间高端自适应网站开发
  • linux打包网站做备份坪山模板网站建设公司
  • 怎么建设网站平台六安网站制作哪家好
  • 无锡有人代做淘宝网站吗wordpress更改主题的响应
  • 自己建公司网站可以嘛开发者模式开着好不好
  • 旅游网站 源码 织梦钓鱼网站怎么做的
  • 做网站使用什么软件的电商网站建设培训
  • .net 免备案网站空间百度云盘下载
  • WordPress子站站群aws安装wordpress
  • 关键词优化除了做网站还有什么方法不知怎么入门
  • 旅游+网站建设布局设计
  • 学会网站建设的重要性沧州大型网站建设
  • 中投建设官方网站seo搜索引擎优化原理