news 2026/8/22 9:48:41

新手小白学习计算机的第十二天(老王专场)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
新手小白学习计算机的第十二天(老王专场)

#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>// 宏定义棋盘尺寸,统一管理,修改方便#defineROW15#defineCOL15// 函数声明voidinitBoard(charboard[ROW][COL]);// 初始化棋盘voiddrawBoard(charboard[ROW][COL]);// 绘制棋盘intputChess(charboard[ROW][COL],intx,inty,charch);// 落子intisWin(charboard[ROW][COL],intx,inty,charch);// 判断胜利intisDraw(charboard[ROW][COL]);// 判断平局// 棋盘初始化函数voidinitBoard(charboard[ROW][COL]){for(inti=0;i<ROW;i++){for(intj=0;j<COL;j++){board[i][j]=' ';// 全部置空}}}// 棋盘绘制函数voiddrawBoard(charboard[ROW][COL]){// 打印顶部坐标printf(" ");for(inti=0;i<COL;i++){printf("%2d",i);}printf("\n");// 打印棋盘主体for(inti=0;i<ROW;i++){printf("%2d ",i);// 打印左侧坐标for(intj=0;j<COL;j++){printf("%c",board[i][j]);if(j<COL-1){printf("|");}}printf("\n");// 打印分割线if(i<ROW-1){printf(" ");for(intk=0;k<COL;k++){printf("--");if(k<COL-1){printf("+");}}printf("\n");}}}// 落子函数:成功返回1,失败返回0intputChess(charboard[ROW][COL],intx,inty,charch){// 坐标越界判断if(x<0||x>=ROW||y<0||y>=COL){return0;// 落子失败}// 判断位置是否已有棋子if(board[x][y]!=' '){return0;// 落子失败}// 合法落子,更新棋盘board[x][y]=ch;return1;// 落子成功}// 判断胜负:四大方向检测五子连珠intisWin(charboard[ROW][COL],intx,inty,charch){intcount=1;// 当前棋子本身为1// 1. 水平方向 左右判断for(inti=y-1;i>=0;i--){if(board[x][i]==ch)count++;elsebreak;}for(inti=y+1;i<COL;i++){if(board[x][i]==ch)count++;elsebreak;}if(count>=5)return1;// 2. 垂直方向 上下判断count=1;for(inti=x-1;i>=0;i--){if(board[i][y]==ch)count++;elsebreak;}for(inti=x+1;i<ROW;i++){if(board[i][y]==ch)count++;elsebreak;}if(count>=5)return1;// 3. 左斜方向 左上-右下count=1;for(inti=x-1,j=y-1;i>=0&&j>=0;i--,j--){if(board[i][j]==ch)count++;elsebreak;}for(inti=x+1,j=y+1;i<ROW&&j<COL;i++,j++){if(board[i][j]==ch)count++;elsebreak;}if(count>=5)return1;// 4. 右斜方向 右上-左下count=1;for(inti=x-1,j=y+1;i>=0&&j<COL;i--,j++){if(board[i][j]==ch)count++;elsebreak;}for(inti=x+1,j=y-1;i<ROW&&j>=0;i++,j--){if(board[i][j]==ch)count++;elsebreak;}if(count>=5)return1;// 无五子连珠,继续游戏return0;}// 判断平局intisDraw(charboard[ROW][COL]){for(inti=0;i<ROW;i++){for(intj=0;j<COL;j++){if(board[i][j]==' '){return0;// 还有空位,不是平局}}}return1;// 棋盘已满,平局}// 主函数:游戏逻辑整体调度intmain(){charboard[ROW][COL];intx,y;intret;intturn=0;// 0:玩家1黑子 1:玩家2白子// 初始化棋盘initBoard(board);while(1){system("cls");// 清屏刷新界面drawBoard(board);// 切换玩家if(turn==0){printf("【玩家1 黑子】请输入落子坐标(行 列):");scanf("%d %d",&x,&y);ret=putChess(board,x,y,'@');// 落子失败重新输入while(ret==0){printf("坐标非法或已有棋子!请重新输入:");scanf("%d %d",&x,&y);ret=putChess(board,x,y,'@');}// 判断是否获胜if(isWin(board,x,y,'@')){system("cls");drawBoard(board);printf("🎉 玩家1(黑子)获胜!游戏结束!\n");break;}}else{printf("【玩家2 白子】请输入落子坐标(行 列):");scanf("%d %d",&x,&y);ret=putChess(board,x,y,'#');while(ret==0){printf("坐标非法或已有棋子!请重新输入:");scanf("%d %d",&x,&y);ret=putChess(board,x,y,'#');}if(isWin(board,x,y,'#')){system("cls");drawBoard(board);printf("🎉 玩家2(白子)获胜!游戏结束!\n");break;}}// 判断平局if(isDraw(board)){system("cls");drawBoard(board);printf("🤝 棋盘已满,平局!游戏结束!\n");break;}// 切换回合turn=!turn;}return0;}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 9:46:39

AI又“幻觉“了?我在提示词发布流程加了一道“安检门“

一、问题现状&#xff1a;AI的"一本正经胡说八道" 在AI对话产品的实际运营中&#xff0c;长期存在一类难以被传统测试手段覆盖的质量问题&#xff1a; > 现象&#xff1a; AI回答流畅、逻辑自洽、代码工整&#xff0c;但核心事实完全错误。 1.1 典型案例&#xff…

作者头像 李华
网站建设 2026/8/22 9:45:40

GetQzonehistory:免费完整导出QQ空间全部历史说说,三步完成备份

GetQzonehistory&#xff1a;免费完整导出QQ空间全部历史说说&#xff0c;三步完成备份 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 想翻回大学时期的说说&#xff0c;却发现QQ空间有…

作者头像 李华
网站建设 2026/8/22 9:44:54

太阳黑子预测:物理约束驱动的时序建模方法

1. 这不是一道“算数题”&#xff0c;而是一场太阳活动周期的推演实验“2023认证杯A题&#xff1a;太阳黑子预测”——看到这个标题&#xff0c;很多刚接触数学建模的同学第一反应是&#xff1a;“又要调sklearn、跑LSTM、画个loss曲线交差&#xff1f;”但真正做过这道题的人会…

作者头像 李华
网站建设 2026/8/22 9:44:11

从克隆到即时生效:COM3D2 实时编辑器 Maid Fiddler 完整使用指南

从克隆到即时生效&#xff1a;COM3D2 实时编辑器 Maid Fiddler 完整使用指南 【免费下载链接】COM3D2.MaidFiddler Maid Fiddler for COM3D2 -- a real-time value editor for COM3D2 项目地址: https://gitcode.com/gh_mirrors/co/COM3D2.MaidFiddler 想培养的性格等得…

作者头像 李华
网站建设 2026/8/22 9:44:07

拉格朗日乘数法原理与Python实战:从KKT条件到资源优化调度

最近在项目开发中&#xff0c;经常遇到需要处理复杂约束条件下的最优解问题&#xff0c;尤其是在资源分配、路径规划等场景。传统的暴力搜索或简单贪心算法往往效率低下或无法找到满意解。这时&#xff0c;拉格朗日乘数法&#xff08;Lagrange Multiplier Method&#xff09;作…

作者头像 李华