坏巧克力问题.doc_第1页
坏巧克力问题.doc_第2页
坏巧克力问题.doc_第3页
坏巧克力问题.doc_第4页
坏巧克力问题.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/巧克力大小#define M 8#define N 8/设置坏巧克力块的位置#define X 4#define Y 4void print(char choMN) /打印出巧克力形状 for(int i=0;iM;i+) for(int j=0;jN;j+) printf(%d ,choij); printf(n); /执行掰巧克力的函数void Execute(char choMN,char pos,int index) /掰下一列 if(pos=C | pos=c) for(int i=0;iM;i+) for(int j=0;jN;j+) if(j=index)choij=3; /掰下一行 else if(pos=R | pos=r) for(int i=0;iM;i+) if(i=index) for(int j=0;jN;j+)choij=3; /分析行,给出决策可以掰那些行void Row(char choMN,char dm) for(int i=0;iM;i+) int s=-1; /去掉坏巧克力所在行 if(i!=X) for(int j=0;jN;j+) if(choij!=3)s=1; dmi=s; /分析列,给出决策可以掰那些列void Col(char choMN,char dm) for(int j=0;jN;j+) int s=-1; /去掉坏巧克力所在列 if(j!=Y) for(int i=0;iM;i+) if(choij!=3)s=1; dmj=s; /预处理,计算机模拟执行掰的过程,然后计算剩余步骤int PreDispose(char choMN,char dm) int cnt=0; /巧克力块的副本 char cho_tMN; /可以掰的行标,用1表示 char rowM; /可以掰的列表,用1表示 char colN; memset(row,-1,M);memset(col,-1,N); memcpy(cho_t,cho,M*N); Execute(cho_t,dm0,dm1); /分析行,给出决策 Row(cho,row); /分析列,给出决策 Col(cho,col); for(int i=0;iM;i+) if(rowi!=-1)cnt+; for(int j=0;j=0;i-) if(rowi != -1) dm0=R; dm1=i; if(PreDispose(cho,dm)%2!=0) printf(找到最佳步骤:n); return; for(int j=N-1;j=0;j-) if(colj!=-1) dm0=C; dm1=j; if(PreDispose(cho,dm)%2!=0) printf(找到最佳步骤:n); return; /如果没有最佳步骤,则随便走一步 return;/计算机掰巧克力的过程void Computer(char choMN) char dm2; dm0=-1;dm1=-1; /让计算机开始分析巧克力,并给出决策 Alaysize(cho,dm); printf(计算机给出决策 %c %dn,dm0,dm1); if(dm0=-1 & dm1 = -1) printf(计算机输了n); /掰巧克力 Execute(cho,dm0,dm1);int Game() /制作巧克力 char choMN; char pos10; char cmd=0; int index=0; /设置坏巧克力 memset(cho,0,M*N); choXY=1; /打印巧克力 print(cho); printf(请输入命令:n); scanf(%s,pos); while(1) cmd=pos0; index=atoi(pos+1); if(cmd=Q | cmd= q)break; /掰巧克力 Execute(cho,cmd,index); /打印出巧克力形状 print(cho)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论