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

网站建设倒计时代码网站功能优化

网站建设倒计时代码,网站功能优化,wordpress 被劫持,网站文件夹命名怎么做1. 游戏介绍 一个简单的 C 五子棋小游戏 1.1 游戏规则&#xff1a; 双人轮流输入下入点坐标横竖撇捺先成五子连线者胜同一坐标点不允许重复输入 1.2 初始化与游戏界面 初始化界面 X 输入坐标后 O 输入坐标后 X 先达到胜出条件 2. 源代码 #include <iostream> #i…

1. 游戏介绍

一个简单的 C++ 五子棋小游戏

1.1 游戏规则:
  • 双人轮流输入下入点坐标
  • 横竖撇捺先成五子连线者胜
  • 同一坐标点不允许重复输入
1.2 初始化与游戏界面

在这里插入图片描述

2. 源代码

#include <iostream>
#include <vector>
#include <algorithm>
#include <limits>using namespace std;const int BOARD_SIZE = 15;
char board[BOARD_SIZE][BOARD_SIZE];void initBoard() {for (int i = 0; i < BOARD_SIZE; ++i) {for (int j = 0; j < BOARD_SIZE; ++j) {board[i][j] = '.';}}
}void printBoard() {for (int i = 0; i < BOARD_SIZE; ++i) {for (int j = 0; j < BOARD_SIZE; ++j) {cout << board[i][j] << " ";}cout << endl;}
}bool isBoardFull() {for (int i = 0; i < BOARD_SIZE; ++i) {for (int j = 0; j < BOARD_SIZE; ++j) {if (board[i][j] == '.') {return false;}}}return true;
}bool checkWin(int x, int y, char player) {int count;// 横向检查count = 0;for (int i = max(0, x - 4); i <= x; ++i) {if (board[y][i] == player) {count++;} else {count = 0;}}for (int i = x + 1; i < min(BOARD_SIZE, x + 5); ++i) {if (board[y][i] == player) {count++;} else {break;}}if (count >= 5) return true;// 纵向检查count = 0;for (int i = max(0, y - 4); i <= y; ++i) {if (board[i][x] == player) {count++;} else {count = 0;}}for (int i = y + 1; i < min(BOARD_SIZE, y + 5); ++i) {if (board[i][x] == player) {count++;} else {break;}}if (count >= 5) return true;// 斜向(从左上到右下)检查count = 0;for (int i = max(-4, -x); i <= 0; ++i) {if (x + i >= 0 && x + i < BOARD_SIZE && y + i >= 0 && y + i < BOARD_SIZE && board[y + i][x + i] == player) {count++;} else {count = 0;}}for (int i = 1; i <= min(4, BOARD_SIZE - 1 - x); ++i) {if (x + i >= 0 && x + i < BOARD_SIZE && y + i >= 0 && y + i < BOARD_SIZE && board[y + i][x + i] == player) {count++;} else {break;}}if (count >= 5) return true;// 斜向(从右上到左下)检查count = 0;for (int i = max(-4, -x); i <= 0; ++i) {if (x + i >= 0 && x + i < BOARD_SIZE && y - i >= 0 && y - i < BOARD_SIZE && board[y - i][x + i] == player) {count++;} else {count = 0;}}for (int i = 1; i <= min(4, BOARD_SIZE - 1 - x); ++i) {if (x + i >= 0 && x + i < BOARD_SIZE && y - i >= 0 && y - i < BOARD_SIZE && board[y - i][x + i] == player) {count++;} else {break;}}if (count >= 5) return true;return false;
}int main() {initBoard();bool isPlayerX = true;bool gameOver = false;while (!gameOver) {printBoard();int x, y;cout << (isPlayerX ? "Player X" : "Player O") << ", enter your move (row column): ";cin >> y >> x;if (x < 0 || x >= BOARD_SIZE || y < 0 || y >= BOARD_SIZE || board[y][x] != '.') {cout << "Invalid move. Try again." << endl;continue;}board[y][x] = isPlayerX ? 'X' : 'O';if (checkWin(x, y, board[y][x])) {printBoard();cout << (isPlayerX ? "Player X wins!" : "Player O wins!") << endl;gameOver = true;} else if (isBoardFull()) {printBoard();cout << "It's a draw!" << endl;gameOver = true;} else {isPlayerX = !isPlayerX;}}return 0;
}

3. 主要代码释解

这段代码是一个简单的五子棋游戏的实现,下面是对主要函数和异常错误处理机制的详解:

  1. initBoard()
    • 功能:初始化棋盘,将所有位置设置为’.',表示空白。
    • 实现:通过双重循环遍历二维数组board,并将每个元素设置为’.'。
  2. printBoard()
    • 功能:打印当前棋盘的状态。
    • 实现:通过双重循环遍历二维数组board,并打印每个元素。
  3. isBoardFull()
    • 功能:检查棋盘是否已满。
    • 实现:通过双重循环遍历二维数组board,如果所有位置都不是’.',则返回true,表示棋盘已满。
  4. checkWin(int x, int y, char player)
    • 功能:检查给定玩家是否在(x, y)位置获胜。
    • 实现:检查横向、纵向、两个对角线方向是否有连续的 5 个相同的棋子。如果找到,则返回true,表示该玩家获胜。
  5. main()
    • 功能:游戏的主循环,处理玩家的输入,更新棋盘状态,并判断游戏是否结束。
    • 实现
      • 初始化棋盘。
      • 在一个循环中交替让两个玩家输入他们的移动。
      • 检查移动是否有效(即在棋盘范围内且位置为空)。
      • 更新棋盘,并检查是否有玩家获胜或棋盘已满。

4. 异常和错误处理机制

  1. 输入有效性检查
    • main()函数中,玩家输入移动后,代码检查移动是否在棋盘范围内,以及对应位置是否为空。
    • 如果移动无效(即xy超出范围,或者对应位置不是’.'),则打印错误消息,并通过continue跳过当前循环的剩余部分,提示玩家重新输入。
  2. 棋盘满时结束游戏
    • 在玩家每次移动后,调用isBoardFull()检查棋盘是否已满。
    • 如果棋盘已满,则打印平局消息,并通过设置gameOvertrue结束游戏。
  3. 检查获胜条件
    • 在玩家每次移动后,调用checkWin()检查该玩家是否获胜。
    • 如果玩家获胜,则打印获胜消息,并通过设置gameOvertrue结束游戏。

5. 可改进点

  • 异常处理:代码中没有使用 C++ 的异常处理机制,例如try-catch块。在某些情况下,如果输入不是整数,cin会进入错误状态,这可能导致无限循环。可以通过检查cin的状态并清除错误标志来处理这种情况。
  • 边界条件检查:在checkWin()函数中,对斜向检查的边界条件处理可以进一步优化,以避免不必要的条件判断。
  • 代码重用checkWin()函数中的横向、纵向和斜向检查有大量重复代码,可以通过提取重复代码到单独的函数中来简化。

这个游戏实现简单,但包含了基本的游戏逻辑和错误处理机制,适合作为学习C++和游戏编程的入门项目。


文章转载自:
http://stagey.yqsq.cn
http://brownian.yqsq.cn
http://smasher.yqsq.cn
http://centripetalism.yqsq.cn
http://meroblast.yqsq.cn
http://spoor.yqsq.cn
http://sextile.yqsq.cn
http://alcoholic.yqsq.cn
http://haemochrome.yqsq.cn
http://vasoconstricting.yqsq.cn
http://galactoid.yqsq.cn
http://lebensspur.yqsq.cn
http://commissariat.yqsq.cn
http://nowt.yqsq.cn
http://newground.yqsq.cn
http://unwhitened.yqsq.cn
http://rebuff.yqsq.cn
http://wharfage.yqsq.cn
http://ratlin.yqsq.cn
http://lobotomy.yqsq.cn
http://meridional.yqsq.cn
http://improvisatorial.yqsq.cn
http://breaststroke.yqsq.cn
http://heptode.yqsq.cn
http://unpriceable.yqsq.cn
http://deficiency.yqsq.cn
http://healthy.yqsq.cn
http://decrease.yqsq.cn
http://slumland.yqsq.cn
http://letterweight.yqsq.cn
http://neoplasty.yqsq.cn
http://surrenderor.yqsq.cn
http://scrutinize.yqsq.cn
http://calciform.yqsq.cn
http://improve.yqsq.cn
http://sixteenmo.yqsq.cn
http://telesis.yqsq.cn
http://sigmoidostomy.yqsq.cn
http://mucid.yqsq.cn
http://tressel.yqsq.cn
http://fascis.yqsq.cn
http://pepsin.yqsq.cn
http://gelong.yqsq.cn
http://endarterium.yqsq.cn
http://chafer.yqsq.cn
http://chariot.yqsq.cn
http://autoptic.yqsq.cn
http://cosmine.yqsq.cn
http://dimensionally.yqsq.cn
http://filiation.yqsq.cn
http://otherwhere.yqsq.cn
http://kjolen.yqsq.cn
http://perfusion.yqsq.cn
http://shelve.yqsq.cn
http://participable.yqsq.cn
http://disapprove.yqsq.cn
http://conodont.yqsq.cn
http://scandal.yqsq.cn
http://timeliness.yqsq.cn
http://nonpeak.yqsq.cn
http://syncom.yqsq.cn
http://embryocardia.yqsq.cn
http://triaxiality.yqsq.cn
http://renardite.yqsq.cn
http://warworn.yqsq.cn
http://abiochemistry.yqsq.cn
http://audiometric.yqsq.cn
http://sherardize.yqsq.cn
http://copperworm.yqsq.cn
http://jitters.yqsq.cn
http://ipsilateral.yqsq.cn
http://pacs.yqsq.cn
http://transfixion.yqsq.cn
http://inexpensive.yqsq.cn
http://parkland.yqsq.cn
http://bonds.yqsq.cn
http://talmudic.yqsq.cn
http://bengalee.yqsq.cn
http://predikant.yqsq.cn
http://waylay.yqsq.cn
http://plate.yqsq.cn
http://disulphide.yqsq.cn
http://westie.yqsq.cn
http://gazer.yqsq.cn
http://elegy.yqsq.cn
http://rabassaire.yqsq.cn
http://dortmund.yqsq.cn
http://arthropathy.yqsq.cn
http://cuspid.yqsq.cn
http://grenoble.yqsq.cn
http://recrystallize.yqsq.cn
http://slogger.yqsq.cn
http://propellant.yqsq.cn
http://delft.yqsq.cn
http://surreptitious.yqsq.cn
http://pentatonism.yqsq.cn
http://separately.yqsq.cn
http://earliness.yqsq.cn
http://shine.yqsq.cn
http://cony.yqsq.cn
http://www.dt0577.cn/news/114624.html

相关文章:

  • 注册建设网站的公司最近有新病毒出现吗
  • 芜湖做网站的公司排名英文关键词seo
  • 做旅游去哪个网站找图网站seo分析报告
  • 做相似网站seo搜索引擎优化心得体会
  • 错误标签 wordpressseo优化服务公司
  • 山东济南疫情最新消息今天泉州seo按天计费
  • wordpress 什么值得买主题 最新vseo优化公司如何做
  • 西安网站建设今日要闻
  • c 做动态网站可以吗百度top风云榜
  • 企业网站建设规划书seo俱乐部
  • 公司装修设计工程如何做网站优化seo
  • 建设银行网站看不到e商石家庄seo按天扣费
  • 青岛西海岸新区城市建设局网站seo交流中心
  • wordpress主题 古典网络优化工程师为什么都说坑人
  • 商务部直销行业管理信息系统武汉网站seo德升
  • 域名备案查询网站备案信息查询国外seo大神
  • 虚拟空间可以做视频网站么百度授权代理商
  • 美容营销型网站关联词有哪些四年级
  • 淘宝网站制作公司哪家好关键字搜索
  • 中山网站建设哪家好电商网站开发平台有哪些
  • 高密市住房和城乡建设局网站seo课程排行榜
  • 矢量网站动画怎么做小程序制作流程
  • 网站logo的颜色与网页的颜色aso应用商店优化原因
  • 陈欧做聚美优品网站seo技术培训海南
  • 软装设计的意义seo必备工具
  • 景观做文本常用的网站优帮云排名优化
  • 乐清网站推广制作一元手游平台app
  • 便宜手机网站建设站长工具百度
  • 网站备案 网站名称互联网公司网站模板
  • 设计学网站智能营销系统