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

做智能网站营销话术一半都有哪些做影视外包的网站

做智能网站营销话术,一半都有哪些做影视外包的网站,seo是网站搜索引擎上的优化,营销型网站的优势实验目的 实现人与人或人与电脑进行五子棋对弈 实验内容 启动游戏#xff0c;显示游戏参数设置界面#xff0c;用户输入参数后进入游戏界面#xff0c;显示棋盘及双方博弈过程#xff0c;游戏过程中可选择退出游戏。判定一方获胜后结束本局游戏#xff0c;可选择继续下…实验目的 实现人与人或人与电脑进行五子棋对弈 实验内容 启动游戏显示游戏参数设置界面用户输入参数后进入游戏界面显示棋盘及双方博弈过程游戏过程中可选择退出游戏。判定一方获胜后结束本局游戏可选择继续下一局或者退出游戏。 分析与设计 设计棋盘使用for循环的嵌套并定义一个二维数组存储棋子 void create_board(char board[N][N] , int n) {for(int i 0;i n;i){for(int j 0;j n;j){cout board[i][j] ;// %c if(j n - 1)cout |;}cout endl;if(i n - 1){for(int j 0;j n;j){cout ---;if(j n - 1)cout |;}}cout endl;} } 下棋下棋是有先后顺序为了保持顺序以及判断是否胜利定义一个game函数来设置下棋流程。下棋者可以是人也可以是电脑先对人下棋设置一个函数play_game和play_game_2来定义双方下棋的位置与不同棋子 //玩家下棋 bool play_game(char board[N][N] , int n) {int x,y;cout 请玩家1下棋- endl;while(1){cin x y;if(x 0 x n y 0 y n){if(board[x][y] ){board[x][y] *;return check_game(board,n);break;}elsecout 该点已经下过请您重新下谢谢 endl;}else{cout 坐标越界请重新输入 endl;} } } bool play_game_2(char board[N][N] , int n) {int x,y;cout 请玩家2下棋- endl;while(1){cin x y;if(x 0 x n y 0 y n){if(board[x][y] ){board[x][y] #;return check_game(board,n);break;}elsecout 该点已经下过请您重新下谢谢 endl;}else{cout 坐标越界请重新输入 endl;} } } 而电脑下棋就定义一个种子srand使电脑随机性下棋。 //电脑下棋 bool computer_game(char board[N][N],int n) {srand((unsigned int)time(NULL)); //设置随机生成的数字cout 电脑1下棋-;int x,y;while(1){x rand() % n;y rand() % n;if(board[x][y] ){board[x][y] #;cout x , y endl;return check_game(board,n);break;} } } 判断胜利五子棋胜利条件是五个子横着竖着斜着相连这个时候就要判断其连通性判断连通性最好办法就是使用DFS首先利用两个for循环嵌套遍历当前board数组随后对四个可能的联通方向通过DFS递归探索如果五子确实相连这个时候返回true不相连则返回false。 //判断是否胜利 int dx[N] { 1, 1, 0, 1 }; int dy[N] { 0, 1, 1,-1 }; //判断直线是否能走 bool dfs(int x,int y,char a,int i,int res) {if(board[x][y] ! a)//五个子不全连return false;else if(res 5) return true; //五个子全连return dfs(x dx[i], y dy[i],a,i,res1); } //遍历四种途径 bool check(char board[N][N],int x,int y) { for(int i 0;i 3;i)//四种胜利的路径判断一遍{if(dfs(x,y,board[x][y],i,1) true){return true;}}return false; } bool check_game(char board[N][N],int n) {for(int i 0;i n;i){for(int j 0;j n;j){if(board[i][j] ! )if(check(board,i,j) true)return true;}}return false; } 最后主函数利用while循环的嵌套判断玩家选择方式如果其输入错误的数字那么就会循环直到输入正确。 另外这里也需要判断是否棋盘全满 //判断棋盘是否填满 bool is_full(char board[N][N],int n) {for(int i 0;i n;i){for(int j 0;j n;j){if(board[i][j] ){return false;}}}return true; } 完整代码如下 #include iostream #include time.h using namespace std; const int N 100; char board[N][N]; void menu() {cout ******************************* endl;cout ************menu*************** endl;cout **(请输入对应的数字进行选择)*** endl;cout *********1.玩家对弈************ endl;cout *********2.电脑下棋************ endl;cout *********3.结束游戏************ endl;cout ******************************* endl;cout ******************************* endl;} void choose() {cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ******请玩家输入棋盘大小******* endl;cout *********(注:6-100)************ endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl; } void win_1() {cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ********恭喜玩家1胜利********** endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl; } void win_2() {cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ********恭喜玩家2胜利********** endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl; } void win_computer() {cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ***********电脑胜利************ endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl; } void choose_3() {cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout *************BYE*************** endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl; } void end() {cout ******************************* endl;cout ******************************* endl;cout *******是否重新开始游戏******** endl;cout *********1.continue************ endl;cout ***********2.end*************** endl;cout ******************************* endl;cout ******************************* endl;cout ******************************* endl; } //初始化棋盘 void error_board(char board[N][N] , int n) {for(int i 0;i n;i){for(int j 0;j n;j){board[i][j] ;}} } //创建棋盘 void create_board(char board[N][N] , int n) {for(int i 0;i n;i){for(int j 0;j n;j){cout board[i][j] ;// %c if(j n - 1)cout |;}cout endl;if(i n - 1){for(int j 0;j n;j){cout ---;if(j n - 1)cout |;}}cout endl;} }//判断是否胜利 int dx[N] { 1, 1, 0, 1 }; int dy[N] { 0, 1, 1,-1 }; //判断直线是否能走 bool dfs(int x,int y,char a,int i,int res) {if(board[x][y] ! a)//五个子不全连return false;else if(res 5) return true; //五个子全连return dfs(x dx[i], y dy[i],a,i,res1); } //遍历四种途径 bool check(char board[N][N],int x,int y) { for(int i 0;i 3;i)//四种胜利的路径判断一遍{if(dfs(x,y,board[x][y],i,1) true){return true;}}return false; } bool check_game(char board[N][N],int n) {for(int i 0;i n;i){for(int j 0;j n;j){if(board[i][j] ! )if(check(board,i,j) true)return true;}}return false; } //玩家下棋 bool play_game(char board[N][N] , int n) {int x,y;cout 请玩家1下棋- endl;while(1){cin x y;if(x 0 x n y 0 y n){if(board[x][y] ){board[x][y] *;return check_game(board,n);break;}elsecout 该点已经下过请您重新下谢谢 endl;}else{cout 坐标越界请重新输入 endl;} } } bool play_game_2(char board[N][N] , int n) {int x,y;cout 请玩家2下棋- endl;while(1){cin x y;if(x 0 x n y 0 y n){if(board[x][y] ){board[x][y] #;return check_game(board,n);break;}elsecout 该点已经下过请您重新下谢谢 endl;}else{cout 坐标越界请重新输入 endl;} } } //电脑下棋 bool computer_game(char board[N][N],int n) {srand((unsigned int)time(NULL)); //设置随机生成的数字cout 电脑1下棋-;int x,y;while(1){x rand() % n;y rand() % n;if(board[x][y] ){board[x][y] #;cout x , y endl;return check_game(board,n);break;} } } //判断棋盘是否填满 bool is_full(char board[N][N],int n) {for(int i 0;i n;i){for(int j 0;j n;j){if(board[i][j] ){return false;}}}return true; } void game_1(char board[N][N] , int n) {bool res false;//初始化棋盘error_board(board,n);//初始化create_board(board,n);//打印棋盘//下棋while(1){res play_game(board,n);//玩家下棋create_board(board,n);//打印棋盘if(res true){create_board(board,n);win_1();break; } res play_game_2(board,n);//电脑下棋create_board(board,n);//打印棋盘if(res true){create_board(board,n);win_2();break;}else if(is_full(board,n)){cout 棋盘已经被填满本局平局 endl;break;}} } //游戏流程循环 void game_2(char board[N][N] , int n) {bool res false;//初始化棋盘error_board(board,n);//初始化create_board(board,n);//打印棋盘//下棋while(1){cout 请在0-n之间输入数据 endl;res play_game(board,n);//玩家下棋create_board(board,n);//打印棋盘if(res true){create_board(board,n);win_1();break; } res computer_game(board,n);//电脑下棋create_board(board,n);//打印棋盘if(res true){create_board(board,n);win_computer();break;}else if(is_full(board,n)){cout 棋盘已经被填满本局平局 endl;break;}} } int main() {menu();while(1){int a;int res;cin a;//输入模式if(a 1)//玩家对弈{while(1){choose();int n;cin n;if(n 6 || n 100){cout 请重新输入棋盘大小 endl;}else{game_1(board,n);end();int res;cin res;if(res 2)break;} } if(res 2){choose_3();break;}}else if(a 2)//电脑对弈{while(1){choose();int n;cin n;if(n 6 || n 100){cout 请重新输入棋盘大小 endl;}else{game_2(board,n);end();cin res;if(res 2)break; } } if(res 2){choose_3();break;}}else if(a 3)//退出{choose_3();break;}else {cout 不满足请重新输入 endl;}}return 0; } 运行结果 结果分析与结论 这套程序有很多不足的地方 棋盘的画法不够美观可以利用Turbo c的图形库画图电脑下棋不够难度随机性强可以通过DFS判断当连通性为3的情况进行补位判断胜利不够高效时间复杂度很高n^2的递归暴搜非常慢 可以适当的利用graphics.h以及conio.h头文件画图并加入一些更为高效的算法优化判断
http://www.zqtcl.cn/news/584127/

相关文章:

  • 中国建设银行网站招聘wordpress 文件下载插件
  • 福州企业建站程序莆田市的网站建设公司
  • 龙岩做网站推广龙华品牌网站建设
  • 如何用网站开发工具停止网页进程微信网站 教程
  • 高端网站网站设计网站建设怎么分析市场分析
  • 株洲网站设计外包运营wordpress seo插件教程
  • 做湘菜的网站wordpress外贸网站
  • 可以做书的网站做网站的软件叫什么
  • 深圳营销型网站公司电话网站优化北京如何联系?
  • 网站配资公司网站织梦怎么关闭网站
  • 建设企业网站哪家好网站页面布局设计思路
  • 长尾词在线挖掘数字营销服务商seo
  • cms傻瓜式建站系统帝国 cms 网站关键字
  • 东莞营销网站建设直播php 网站 项目
  • 网站访问量什么意思wordpress 静态商店
  • 汕头建站平台网站如何配置域名
  • 大芬网站建设石嘴山网站建设
  • 彩票网站开发解决方案wordpress网站如何与关联
  • 怎么做各大视频网站的会员代理芜湖的网站建设
  • 番禺做网站开发免费素材下载网站
  • 做网站服务公司王业美
  • 遵义网站建设推广城乡住房建设部官网查询
  • 电商设计网站素材免费建站网站seo
  • 做雕塑网站丹阳网站推广
  • 夏津网站建设公司应用分析网站
  • 长春seo网站优化个人网站要有什么
  • 网站开发流程步骤 口袋青海个人旅游网站建设
  • php企业网站多少钱图书馆网站建设建议
  • 企业网站建设综合实训学习体会个人网站空间申请
  • 企业小型网站要多少钱合肥城乡建设网站首页