• 大小: 492KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签: 八数码  

资源简介

本程序利用c++语言编写了八数码 的 小游戏 ,是人工智能 课必做的一个经典程序,希望能对大家有用

资源截图

代码片段和文件信息

#include
#include

int nm;
typedef struct Node
{
char matrix[10];/*存储矩阵*/
char operate;/*存储不可以进行的操作,L代表不能左移R代表不能右移U代表不能上移D代表不能下移*/
char extend;/*是否可以扩展,Y代表可以,N代表不可以*/
int  father;/*指向产生自身的父结点*/
}Node;
char start[10]={“2831 4765“};
char end[10]={“1238 4765“};
Node base[4000];
int result[100];
int match()/*判断是否为目标*/
{
int i;
for(i=0;i<9;i++)
{
if(base[n-1].matrix[i]!=end[i])
{
return 0;
}
}
return 1;
}

void show()/*显示矩阵的内容*/
{
int i=1;
while(m>=0)
{
int mm=result[m];
printf(“\n\n\n        郑明慧  SY0803141                        \t\tStep %d“i);
printf(“\n\n\n\n\n\t\t\t%c\t%c\t%c\n“base[mm].matrix[0]base[mm].matrix[1]base[mm].matrix[2]);
printf(“\n\n\t\t\t%c\t%c\t%c\n“base[mm].matrix[3]base[mm].matrix[4]base[mm].matrix[5]);
printf(“\n\n\t\t\t%c\t%c\t%c\n“base[mm].matrix[6]base[mm].matrix[7]base[mm].matrix[8]);
m--; 
i++;
}283104765;
}

void leave()/*推理成功后退出程序之前要执行的函数,主要作用是输出结果*/
{
n--;
while(base[n].father!=-1)
{
result[m]=n;
m++;
n=base[n].father;
}
result[m]=0;
result[m+1]=‘\0‘;
show();
printf(“\n\n\n\nn\n\t\t\t\tThe End\n\n\n\n\n\n\n\n\n\n“);
getch();
}

int left(int x)/*把下标为X的数组中的矩阵的空格左移*/
{
int ij;
char ch;
for(i=0;i<9;i++)
{
if(base[x].matrix[i]==‘ ‘)
break;
}
if(i==0||i==3||i==6||i==9)
{
return 0;
}

for(j=0;j<9;j++)
{
base[n].matrix[j]=base[x].matrix[j];
}
ch=base[n].matrix[i-1];
base[n].matrix[i-1]=base[n].matrix[i];
base[n].matrix[i]=ch;
base[n].operate=‘R‘;
base[n].extend=‘Y‘;
base[n].father=x;

base[x].extend=‘N‘;
n++;
if(match())
leave();
return 1;
}


int right(int x)/*把下标为X的数组中的矩阵的空格右移*/
{
int ij;
char ch;
for(i=0;i<9;i++)
{
if(base[x].matrix[i]==‘ ‘)
break;
}
if(i==2||i==5||i==8||i==9)
{
return 0;
}

for(j=0;j<9;j++)
{
base[n].matrix[j]=base[x].matrix[j];
}
ch=base[n].matrix[i+1];
base[n].matrix[i+1]=base[n].matrix[i];
base[n].matrix[i]=ch;
base[n].operate=‘L‘;
base[n].extend=‘Y‘;
base[n].father=x;

base[x].extend=‘N‘;
n++;
if(match())
leave();
return 1;
}

int up(int x)/*把下标为X的数组中的矩阵的空格上移*/
{
int ij;
char ch;
for(i=0;i<9;i++)
{
if(base[x].matrix[i]==‘ ‘)
break;
}
if(i==0||i==1||i==2||i==9)
{
return 0;
}

for(j=0;j<9;j++)
{
base[n].matrix[j]=base[x].matrix[j];
}
ch=base[n].matrix[i-3];
base[n].matrix[i-3]=base[n].matrix[i];
base[n].matrix[i]=ch;
base[n].operate=‘D‘;
base[n].extend=‘Y‘;
base[n].father=x;

base[x].extend=‘N‘;
n++;
if(match())
leave();
return 1;
}

int down(int x)/*把下标为X的数组中的矩阵的空格下移*/
{
int ij;
char ch;
for(i=0;i<9;i++)
{
if(base[x].matrix[i]==‘ ‘)
break;
}
if(i==6||i==7||i==8||i==9)
{
return 0;
}

for(j=0;j<9;j++)
{
base[n].matrix[j]=base[x].matrix[j];
}
ch=base[n].matrix[i+3];
base[n].matrix[i+3]=base[n].matrix[i];
base[n].matrix[i]=ch;
ba

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4304  2008-12-20 12:35  八数码程序\八数码难题程序\eightnumber.dsp

     文件        539  2008-12-20 12:13  八数码程序\八数码难题程序\eightnumber.dsw

     文件      50176  2009-03-25 15:54  八数码程序\八数码难题程序\eightnumber.ncb

     文件        908  2008-12-21 10:42  八数码程序\八数码难题程序\eightnumber.plg

     文件       4350  2009-01-07 22:23  八数码程序\八数码难题程序\main.cpp

     文件        242  2009-03-25 15:53  八数码程序\八数码难题程序\main.plg

     文件     196712  2008-12-21 10:42  八数码程序\八数码难题程序\Debug\eightnumber.exe

     文件     196096  2008-12-21 10:42  八数码程序\八数码难题程序\Debug\eightnumber.ilk

     文件     377856  2008-12-21 10:42  八数码程序\八数码难题程序\Debug\eightnumber.pdb

     文件     196710  2009-01-09 09:29  八数码程序\八数码难题程序\Debug\main.exe

     文件     198028  2009-01-09 09:29  八数码程序\八数码难题程序\Debug\main.ilk

     文件      13081  2009-01-09 09:29  八数码程序\八数码难题程序\Debug\main.obj

     文件     213700  2009-01-09 09:25  八数码程序\八数码难题程序\Debug\main.pch

     文件     467968  2009-01-09 09:25  八数码程序\八数码难题程序\Debug\main.pdb

     文件      41984  2009-03-25 15:53  八数码程序\八数码难题程序\Debug\vc60.idb

     文件      53248  2009-01-09 09:25  八数码程序\八数码难题程序\Debug\vc60.pdb

     文件     196655  2008-12-20 13:24  八数码程序\八数码难题程序\Debug\ZHINENG2.exe

     文件     219172  2008-12-20 13:24  八数码程序\八数码难题程序\Debug\ZHINENG2.ilk

     文件     213700  2008-12-20 12:50  八数码程序\八数码难题程序\Debug\ZHINENG2.pch

     文件     467968  2008-12-20 13:24  八数码程序\八数码难题程序\Debug\ZHINENG2.pdb

     文件      41984  2009-03-25 15:52  八数码程序\八数码难题程序\main.ncb

     文件      43520  2009-03-25 15:52  八数码程序\八数码难题程序\eightnumber.opt

     文件       3377  2009-03-25 15:52  八数码程序\八数码难题程序\main.dsp

     文件      53760  2009-03-25 15:54  八数码程序\八数码难题程序\main.opt

     文件        726  2009-03-25 15:54  八数码程序\八数码难题程序\main.dsw

     目录          0  2009-01-09 09:36  八数码程序\八数码难题程序\Debug

     目录          0  2009-01-09 09:36  八数码程序\八数码难题程序

     目录          0  2009-01-09 09:36  八数码程序

----------- ---------  ---------- -----  ----

              3256764                    28

............此处省略1个文件信息

评论

共有 条评论