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

电商网站的分辨率/电商培训心得体会

电商网站的分辨率,电商培训心得体会,网站源码模板下载,昌平网络公司三子棋小游戏 设计思路: 创建一个3*3的二维数组,每个元素都是一个char类型 创建棋盘,并且初始化棋盘,把棋盘所有位置都设置成空格;打印空白棋盘;玩家落子,让玩家输入一组坐标(行r…

三子棋小游戏

设计思路:

创建一个3*3的二维数组,每个元素都是一个char类型

  1. 创建棋盘,并且初始化棋盘,把棋盘所有位置都设置成空格;
  2. 打印空白棋盘;
  3. 玩家落子,让玩家输入一组坐标(行row,列col);
  4. 判断输赢;
  5. 电脑落子,电脑随机生成一组坐标,进行随机落子;
  6. 判断输赢;
代码实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX_ROW 3
#define MAX_COL 3//1.创建棋盘
//棋盘初始化
void init(char ChessBoard[MAX_ROW][MAX_COL]) {for (int row = 0; row < MAX_ROW; row++) {for(int col=0;col<MAX_COL;col++){ChessBoard[row][col] = ' ';}}
}
//2.打印棋盘
void Print(char ChessBoard[MAX_ROW][MAX_COL]) {printf("+---+---+---+\n");for (int row = 0; row < MAX_ROW; row++) {printf("|");for (int col = 0; col < MAX_COL; col++) {printf(" %c |", ChessBoard[row][col]);}printf("\n+---+---+---+\n");}
}
//3.玩家落子
void PlayerMove(char ChessBoard[MAX_ROW][MAX_COL]) {printf("玩家开始落子.....\n\n");while (1) {int row = 0;int col = 0;printf("请输入一组坐标(row,col):");//(row,col)相当于(y,x)scanf("%d %d", &row, &col);if (row < 0 || row >= MAX_ROW || col<0 || col>MAX_COL) {printf("您的输入越界,请重新输入!\n");continue;}if (ChessBoard[row][col] != ' ') {printf("您输入的地方已被占用,请重新输入!\n");continue;}ChessBoard[row][col] = 'x';break;}
}
void ComputerMove(char ChessBoard[MAX_ROW][MAX_COL]) {srand((unsigned int)time(0));while (1) {int row = rand() % MAX_ROW;int col = rand() % MAX_COL;if (ChessBoard[row][col] != ' ') { //表示此处位置已经被占用continue;}ChessBoard[row][col] = 'o';break;}
}
int isFull(char ChessBoard[MAX_ROW][MAX_COL]) { //遍历棋盘,看有无空格for (int row = 0; row < MAX_ROW; row++) {for (int col = 0; col < MAX_COL; col++) {if (ChessBoard[row][col] == ' ') {return 0; //返回0则表示 棋盘没满}}}return 1;//返回1则表示 棋盘已满
}
char isOver(char ChessBoard[MAX_ROW][MAX_COL]) {//扫描所有的行for (int row = 0; row < MAX_ROW; row++) {if (ChessBoard[row][0] != ' ' && ChessBoard[row][0] == ChessBoard[row][1] && ChessBoard[row][0] == ChessBoard[row][2]) {return ChessBoard[row][0];}}//扫描所有的列for (int col = 0; col < MAX_COL; col++) {if (ChessBoard[0][col] != ' ' && ChessBoard[0][col] == ChessBoard[1][col] && ChessBoard[0][col] == ChessBoard[2][col]) {return ChessBoard[0][col];}}//扫描对角线 1 if (ChessBoard[0][0] != ' ' && ChessBoard[0][0] == ChessBoard[1][1]&& ChessBoard[0][0] && ChessBoard[2][2]) {return ChessBoard[0][0];}//扫描对角线 2if (ChessBoard[0][2] != ' ' && ChessBoard[0][2] == ChessBoard[1][1] && ChessBoard[0][2] == ChessBoard[2][0]) {return ChessBoard[0][2];}if (isFull(ChessBoard)) {return 'h'; //和棋 }return ' ';
}
int main() {char ChessBoard[MAX_ROW][MAX_COL];init(ChessBoard);//1.棋盘初始化char winner = ' ';while (1) {system("cls");Print(ChessBoard);//2.打印棋盘PlayerMove(ChessBoard);//3.玩家落子Print(ChessBoard);winner = isOver(ChessBoard);if (winner != ' ') {break;}ComputerMove(ChessBoard);//4.电脑落子winner = isOver(ChessBoard);if (winner != ' ') {break;}}if (winner == 'x') {printf("恭喜你 赢了!\n");}else if (winner == 'o') {printf("很遗憾,你失败了\n");}else {printf("平局!\n");}system("pause");return 0;
}
代码剖析:

1.初始化棋盘,把棋盘所有位置都设置成空格; init函数实现
在这里插入图片描述
2. 打印棋盘; Print函数实现
在这里插入图片描述
3. 玩家落子;PlayerMove函数实现
在这里插入图片描述

4.(1) 判断游戏是否结束; isOver函数
(2)判断是否平局;isFull函数

在这里插入图片描述
5. 电脑随机落子;ComputerMove函数
在这里插入图片描述

输出示例:

在这里插入图片描述

将各个函数在主函数中正确调用即可!为了游戏体验感,不要忘了清屏和最终获胜结果的呈现哦~

http://www.lbrq.cn/news/1096669.html

相关文章:

  • 北京做公司网站的公司/站长工具服务器查询
  • WordPress修改首页文章预览/北京网站优化价格
  • 学做动态网站的步骤/文件外链
  • 政府网站 都是谁做的/郑州官网网站优化公司
  • 网站登录接口怎么做/网络推广公司运营
  • 自己做网站花多少钱/2345系统导航
  • 武汉网站建设组织/wordpress建站公司
  • 秦皇岛做网站优化公司/免费推广网站注册入口
  • 白云网站建设/杭州网站关键词排名
  • 宿迁网站制作/天津seo网络
  • 模板做的网站 怎么提升排名/山东济南seo整站优化公司
  • 普陀建设网站/有没有免费的seo网站
  • 建筑图集网站07fs02图集/四川最好的网络优化公司
  • 都江堰做网站/关键词排名 收录 查询
  • 江苏建筑网站建设/汽车网站建设方案
  • 外贸网站平台推广/如何做网页链接
  • 问卷星网站开发市场调查问卷/谷歌浏览器下载安装2023最新版
  • 眉县住房和城乡建设局网站/网站推广方案范文
  • 做电子的外单网站有哪些的/最全bt搜索引擎
  • 新网站如何做优化/设计师网站
  • 怎么选择做网站的公司/线上推广有哪些平台效果好
  • 怎么做QQ信任网站/优化用户体验
  • oppo手机开发者选项在哪/seo高级教程
  • 英文网站开发/微信指数
  • 慈善总会网站建设方案/小广告公司如何起步
  • 如何做自己的独立的网站/浙江网络推广公司
  • 惠民县建设局网站/怎么在百度打广告
  • 成都哪里做网站/优化方案官方网站
  • 网站建设企业号助手/网站建设软件
  • 网站开发技术期末考试试题/个人网站首页设计
  • 深入浅出理解 TCP 与 UDP:网络传输协议的核心差异与应用
  • uniapp请求封装上传
  • Jenkins 不同节点间文件传递:跨 Job 与 同 Job 的实现方法
  • 【LeetCode 热题 100】236. 二叉树的最近公共祖先——DFS
  • 71 模块编程之新增一个字符设备
  • 笔试——Day12