C语言用TEMP这个AIjavascript开始函数数一

【图文】C语言第04章_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言第04章
大小:175.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢C语言实现 用函数实现两个数的交换
#include &stdio.h&
#include &stdlib.h&
int main()
int change_num(int a, int b);//声明change_num函数
printf(&please enter two numbers:&);
scanf(&%d,%d&, &a, &b);
change_num(&a,&b);//调用change_num函数
printf(&%d %d\n&, a, b);
system(&pause&);
int change_num(int *px, int *py)//定义change_num函数【图片】之前写了井字棋双人对战的 后来补了一个带ai的 三子棋ai好做【c语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:551,873贴子:
之前写了井字棋双人对战的 后来补了一个带ai的 三子棋ai好做收藏
1楼界面懒得像上次坐好看的界面了 看得过去就ok
51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,c语言.通过在线学习的方式,帮助广大技术人员实现技能提升,高薪就业的职业梦想,c语言.
2楼思路一个二维数组来存放3*3大小棋盘 初始化值都是0玩家走起将数组赋值3 电脑是20除了第一步以外 全是函数检测第一个函数是检测有没有将要赢得棋子 换句话说 检测八组(横 竖 斜 共8种胜利可能)值有没有是40的 40说明自己有两个子 而对手没有堵住 那么将剩下一个空位落子如果上一个函数不成立 检测有没有对手要赢得棋
就是那8种 有没有和是6的如果还没有 按优先级检测空位 换句话说 如果中间没子就走中间(中间优先级高)不满足 检测四角 最后检测四个边整体就是这样实现的可是电脑经常连续走两步!!!头痛 我猜测是中间flag值电脑没有修改好导致的大家没事可以玩玩。。。。要是大神 可以抽时间看看能否帮忙修改一下 或者指出这个困扰我一天的bug出现在哪里 谢啦~
总代码这样粘贴可能有误 下楼给截图的#include&stdio.h&#include&stdlib.h&#include&time.h&#include&windows.h&int system(const char *string);void draw(int x[3][3]); void luozi(int x[3][3],int a,int b);
void yanshi();
void sort(intx[3][3]);void aiwin();void wjwin();void ailuozi(int x[3][3],int flag);void yingqi(int x[3][3],int flag);//检测有没有自己马上要赢得棋子void duqi(int x[3][3],int flag);//检测对面要赢得棋子void nowin();void pingju(int x[3][3]);void main(){
int x[3][3];//棋盘
int flag=0;//标志位 看电脑走子没 1该电脑 0该玩家
int b=0;//玩家输入坐标//选项存储位置
for(i=0;i&3;i++)
{for(j=0;j&3;j++) x[i][j]=0;
draw(x);luozi(x,a,b);yanshi();if(x[1][1]==3) x[0][0]=20;else{x[1][1]=20;}draw(x);//************************第一步下完flag=1;luozi(x,a,b);yanshi();sort(x);pingju(x);yingqi(x,flag);duqi(x,flag);ailuozi(x,flag);draw(x);sort(x);pingju(x);//************2flag=1;luozi(x,a,b);yanshi();sort(x);pingju(x);yingqi(x,flag);duqi(x,flag);ailuozi(x,flag);draw(x);sort(x);pingju(x);//************3flag=1;luozi(x,a,b);yanshi();sort(x);pingju(x);yingqi(x,flag);duqi(x,flag);ailuozi(x,flag);draw(x);sort(x);pingju(x);//************4flag=1;luozi(x,a,b);yanshi();sort(x);pingju(x);yingqi(x,flag);duqi(x,flag);ailuozi(x,flag);draw(x);sort(x);pingju(x);//************5}void draw(int x[3][3])//
画棋盘 {system("cls");printf(" 1 2 3\n");for(int i=0;i&3;i++){printf("%d",i+1);for(int j=0;j&3;j++){if(x[i][j]==3) printf("●");else{if(x[i][j]==0) printf("□");
else{printf("○");}}if(j==2) printf("\n");}}} void luozi(int x[3][3],int a,int b)
{ printf("请下棋...\n");printf("输入落子坐标...\n");scanf("%d%d",&a,&b);/*if(x[a]!=0){printf("输入有误!\n");Sleep(500);printf("输入有误!\n");Sleep(500);printf("输入有误!\n");Sleep(500);luozi(x[3][3],a,b)}*/x[a-1]=3;system("cls");draw(x); } void yanshi()//没意义 让电脑延时3s { printf("电脑正在思考中...\n");Sleep(800); printf("电脑正在思考中...\n");Sleep(800);
system("cls");
}void sort(int x[3][3])//检测有没有已经成功的棋子{int sum=0;//第一种for(int i=0;i&3;i++) sum+=x[0][i];
if(sum==9) wjwin();
if(sum==60) aiwin();//2
sum=0;for( i=0;i&3;i++) sum+=x[1][i];
if(sum==9) wjwin();
if(sum==60) aiwin(); //3
sum=0;for( i=0;i&3;i++) sum+=x[2][i];
if(sum==9) wjwin();
if(sum==60) aiwin();
sum=0;for( i=0;i&3;i++) sum+=x[i][0];
if(sum==9) wjwin();
if(sum==60) aiwin();
sum=0;for( i=0;i&3;i++) sum+=x[i][1];
if(sum==9) wjwin();
if(sum==60) aiwin();
sum=0;for( i=0;i&3;i++) sum+=x[i][2];
if(sum==9) wjwin();
if(sum==60) aiwin();//7
sum=0;sum=x[0][0]+x[1][1]+x[2][2];
if(sum==9) wjwin();
if(sum==60) aiwin();
sum=0;sum=x[0][2]+x[1][1]+x[2][0];
if(sum==9) wjwin();
if(sum==60) aiwin();}void aiwin()//电脑赢了{system("cls");printf("哈哈!电脑赢了!\n");printf("按任意键退出!\n");system("pause");exit(0);}void wjwin()//玩家赢了{system("cls");printf("哈哈 你赢了!\n");printf("按任意键退出!\n");system("pause");exit(0);}void yingqi(int x[3][3],int flag)//检测有没有自己马上要赢得棋子{int sum=0;//第一种for(int i=0;i&3;i++) sum+=x[0][i];if(sum==40) {if(x[0][0]==0){x[0][0]=20;flag=0;};if(x[0][1]==0)
{ x[0][1]=20;flag=0;};if(x[0][2]==0){x[0][2]=20;flag=0;};};//2
sum=0;for( i=0;i&3;i++) sum+=x[1][i];if(sum==40) {if(x[1][0]==0){x[1][0]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[1][2]==0){x[1][2]=20;flag=0;};}; //3
sum=0;for( i=0;i&3;i++) sum+=x[2][i];if(sum==40) {if(x[2][0]==0){x[2][0]=20;flag=0;};if(x[2][1]==0)
{ x[2][1]=20;flag=0;};if(x[2][2]==0){x[2][2]=20;flag=0;};};
sum=0;for( i=0;i&3;i++) sum+=x[i][0];
if(sum==40) {if(x[0][0]==0){x[0][0]=20;flag=0;};if(x[1][0]==0)
{ x[1][0]=20;flag=0;};if(x[2][0]==0){x[2][0]=20;flag=0;};};
sum=0;for( i=0;i&3;i++) sum+=x[i][1];if(sum==40) {if(x[0][1]==0){x[0][1]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[2][1]==0){x[2][1]=20;flag=0;};};
sum=0;for( i=0;i&3;i++) sum+=x[i][2];
if(sum==40) {if(x[0][2]==0){x[0][2]=20;flag=0;};if(x[1][2]==0)
{ x[1][2]=20;flag=0;};if(x[2][2]==0){x[2][2]=20;flag=0;};};//7
sum=0;sum=x[0][0]+x[1][1]+x[2][2];if(sum==40) {if(x[0][0]==0){x[0][0]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[2][2]==0){x[2][2]=20;flag=0;};};
sum=0;sum=x[0][2]+x[1][1]+x[2][0];
if(sum==40) {if(x[0][2]==0){x[0][2]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[2][0]==0){x[2][0]=20;flag=0;};};}void duqi(int x[3][3],int flag)//检测对面要赢得棋子{int sum=0;//第一种for(int i=0;i&3;i++) sum+=x[0][i];if(flag==1&&sum==6) {if(x[0][0]==0){x[0][0]=20;flag=0;};if(x[0][1]==0)
{ x[0][1]=20;flag=0;};if(x[0][2]==0){x[0][2]=20;flag=0;};};//2
sum=0;for( i=0;i&3;i++) sum+=x[1][i];if(flag==1&&sum==6) {if(x[1][0]==0){x[1][0]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[1][2]==0){x[1][2]=20;flag=0;};}; //3
sum=0;for( i=0;i&3;i++) sum+=x[2][i];if(flag==1&&sum==6) {if(x[2][0]==0){x[2][0]=20;flag=0;};if(x[2][1]==0)
{ x[2][1]=20;flag=0;};if(x[2][2]==0){x[2][2]=20;flag=0;};};
sum=0;for( i=0;i&3;i++) sum+=x[i][0];
if(flag==1&&sum==6) {if(x[0][0]==0){x[0][0]=20;flag=0;};if(x[1][0]==0)
{ x[1][0]=20;flag=0;};if(x[2][0]==0){x[2][0]=20;flag=0;};};
sum=0;for( i=0;i&3;i++) sum+=x[i][1];if(flag==1&&sum==6) {if(x[0][1]==0){x[0][1]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[2][1]==0){x[2][1]=20;flag=0;};};
sum=0;for( i=0;i&3;i++) sum+=x[i][2];
if(flag==1&&sum==6) {if(x[0][2]==0){x[0][2]=20;flag=0;};if(x[1][2]==0)
{ x[1][2]=20;flag=0;};if(x[2][2]==0){x[2][2]=20;flag=0;};};//7
sum=0;sum=x[0][0]+x[1][1]+x[2][2];if(flag==1&&sum==6) {if(x[0][0]==0){x[0][0]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[2][2]==0){x[2][2]=20;flag=0;};};
sum=0;sum=x[0][2]+x[1][1]+x[2][0];
if(flag==1&&sum==6) {if(x[0][2]==0){x[0][2]=20;flag=0;};if(x[1][1]==0)
{ x[1][1]=20;flag=0;};if(x[2][0]==0){x[2][0]=20;flag=0;};};}void nowin(){printf("平局哦!再接再厉!\n");printf("按任意键结束\n");system("pause");exit(0);}void pingju(int x[3][3])//检测是不是平局{if(x[0][0]!=0&&x[0][1]!=0&&x[0][2]!=0&&x[1][0]!=0&&x[1][1]!=0&&x[1][2]!=0&&x[2][0]!=0&&x[2][1]!=0&&x[2][2]!=0) nowin();}void ailuozi(int x[3][3],int flag)//没有智能{if(flag==1){if(x[0][0]==0){x[0][0]=20;flag=0;};};if(flag==1){if(x[0][2]==0){x[0][2]=20;flag=0;};};if(flag==1){if(x[2][0]==0){x[2][0]=20;flag=0;};};if(flag==1){if(x[2][2]==0){x[2][2]=20;flag=0;};};if(flag==1){if(x[0][1]==0){x[0][1]=20;flag=0;};};if(flag==1){if(x[1][0]==0){x[1][0]=20;flag=0;};};if(flag==1){if(x[1][2]==0){x[1][2]=20;flag=0;};};if(flag==1){if(x[2][1]==0){x[2][1]=20;flag=0;};};}
2 主函数前半段 定义变量和初始化
3主函数后半段 因为3子棋步数少 直接主体也放在main里了 第一步是直接下的(规则是人走了中间 电脑就走左上角 人如果不走中间 不管走哪里 电脑都走中间)
中间几步棋
基本上是参照第二步 复制的
主函数结束以后是画棋盘函数
时光IT学院,免费在线直播教学,大牛现场答疑;拒绝纯理论学习,以c/c++/java项目实战为核心.针对c/c++/java零基础学员,快速入门,高薪就业.
然后是收录玩家落子坐标的函数
和一个延时函数 让游戏看起来好一点
关键的函数来了 这是电脑每步走棋的第一次检测 自己有没有将要成功的棋子 还有电脑胜利以及玩家胜利的结束函数
楼主的代码真心好长啊←_←
有什么用?
别三子棋,你仔细观察下这个棋有最优走法,且双方尽力走会永远和棋。于是别用这个试ai
代码冗长,对于角色判定不需要用到什么flag,你这个本身就是个双人的游戏,所以你完全可以用奇偶性判定当前角色,初始化int turn=0;每执行一次落子就turn++;然后用if(turn%2){//人}else{//机}至于胜负的判定也不需要这么麻烦人落子就赋值1,机落子就赋值-1,空位置为0如果相邻的三个和为3就是人赢,相邻的三个和为-3就是机赢,turn达到上限未分出胜负就是平局,
登录百度帐号推荐应用网站已改版,请使用新地址访问:
gamma 用C++编程,求伽马函数的值;
表达式:Γ(x)=∫e^(-t)*t^(x-1)dt (积分的下 Mathimatics-Numerical algorithms 数值算法/人工智能 238万源代码下载-
&文件名称: gamma
& & & & &&]
&&所属分类:
&&开发工具: Visual C++
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 87
&&提 供 者:
&详细说明:用C++编程,求伽马函数的值;
伽玛函数表达式:Γ(x)=∫e^(-t)*t^(x-1)dt (积分的下限是0,上限是+∞) -gamma function
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&gamma.cpp
&[]:很好,推荐下载
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 差值法+色彩矫正+伽马矫正
其中插值法 运用最少邻算法和双线性算法 来解决灰度图片通过parton之后的变换问题
&[] - 伽马函数求解C语言,用来求解伽马函数的C语言
求解干嘛函数用的
&[] - 用Fortran语言编写的计算不完全伽马函数的程序
&[] - GCC C语言大量随机数生成函数,正态分布,平均分布……
&[] - 差值法+色彩矫正+伽马矫正
其中插值法 运用最少邻算法和双线性算法 来解决灰度图片通过parton之后的变换问题
&[] - 计算各种分布函数的分位数,比如F分布、T分布、正态分布、BETA分布

我要回帖

更多关于 vs2008 跳转函数开始 的文章

 

随机推荐