当前位置: 首页 > 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.pierceye.com/news/584127/

相关文章:

  • 深圳做购物网站十堰网络销售
  • 郑州企业网站优化多少钱百度竞价排名价格
  • js特效做的好的网站什么专业是做网站
  • 淄川响应式网站建设网站在国内服务器在国外
  • 施工企业市场经营工作思路及措施个人如何优化网站有哪些方法
  • 怎么做一个盈利网站义乌创博网络科技有限公司
  • 学校网站建设代码不重名的建筑公司名字
  • 网站开发模块的需求海外销售平台有哪些
  • 前端和后端的区别工资郑州网站优化怎样做
  • 小程序模板平台有哪些网站优化包括哪些内容
  • 免费建网站的好的移动端网站模板下载
  • 青岛网站优化排名视频源网站怎么做
  • 做网站找我二级学院网站建设方案
  • 知名网站建设公司 北京近期网络营销的热点事件
  • 网站开发产品经理网站例子
  • 动态静态结合网站网站做404是什么意思
  • 注册域名的网站网站建设的具体步骤
  • 行业网站分类自建站排名
  • 网站备案 登陆安徽省住房和城乡建设厅网站领域
  • 做个网站需要多少钱.网站建设合同注意事项
  • 中国诚信建设网站在线代码生成器
  • 长沙企业网站建设团队目前网络最好的挣钱平台
  • 国家建设工程安全质量监督网站友情链接网
  • 适合html初学者做的网站中卫网站推广软件
  • 一个vps主机放两个网站 速度怎么做发卡网站
  • 海米云网站建设网站开发 去哪里找页面
  • 天津做网站优化的公司新手学做网站优化
  • 万网怎么上传网站wordpress google字体 360
  • 为什么建设的网站有时候访问慢6紫金优化网站制作
  • 如何在公司系统建网站广州短视频seo哪家好