最好是用规则式,便于更改游戏.
游戏实现不是很难,主要就是判断函数用什么方法做,这样会决定程序的好坏!~这个程序小,可以一一列举,就是穷举法,如果要是复杂的游戏呢,例如麻将等.还是找一本人工职能的书,熟悉下里面的A算法和A*算法等等的东西,对你编写人机对战的程序帮助嗷嗷大,要写人机对战的程序,难,我也是初学,看过点东西,在此瞎说,见笑!
----------------解决方案--------------------------------------------------------
晕 发错了 不是这个帖子 怎么条到这里来了,不好意思.
汗!~~~~~
----------------解决方案--------------------------------------------------------
晕,真的明白?建议看一下数据结构,分块写,要不然写好这样一个程序要晕的
----------------解决方案--------------------------------------------------------
//完全按照楼主的意图写的
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 3
int main(void)
{
int iarra[SIZE][SIZE] = {0};
void Process(int iarra[][SIZE]);
Process(iarra);
getch();
return 0;
}
void Process(int iarra[][SIZE])
{
int irow, icolumn, icount = 0;
int Compare(int iarra[][SIZE]);
while (1)
{
{ //你放棋子的位置
printf("Enter irow, icolumn:\n " );
scanf("%d %d", &irow, &icolumn);
iarra[irow][icolumn] = 1;
printf("Person: irow = %d, icolumn = %d\n", irow, icolumn);
icount++;
}
{ //机器放棋子的位置
int ic, id;
srand(time(NULL));
ic = rand() % 3;
id = rand() % 3;
while (iarra[ic][id] == 1 || iarra[ic][id] == 2)
{
ic = rand() % 3;
id = rand() % 3;
}
iarra[ic][id] = 2;
printf("Machine: ic = %d, id = %d\n\n", ic, id);
icount++;
}
{
int flag;
flag = Compare(iarra);
if ( flag == 1)
{
printf("you win.\n");
return ;
}
else if (flag == 0)
{
printf("machine win.\n");
return ;
}
else if (flag == -1)
{
if (icount == 9)
{
printf("both failure.\n");
return ;
}
}
}
}//while
}//Process
int Compare(int iarra[][SIZE])
{
int ie, ig;
for (ie = 0; ie < SIZE; ie++) //行看输赢
{
if (iarra[ie][0] == 1 && iarra[ie][1] == 1 && iarra[ie][2] == 1)
{
return 1;
}
if (iarra[ie][0] == 2 && iarra[ie][1] == 2 && iarra[ie][2] == 2)
{
return 0;
}
}
for (ig = 0; ig < SIZE; ig++) //列看输赢
{
if (iarra[0][ig] == 1 && iarra[1][ig] == 1 && iarra[2][ig] == 1)
{
return 1;
}
if (iarra[0][ig] == 2 && iarra[1][ig] == 2 && iarra[2][ig] == 2)
{
return 0;
}
}
if (iarra[0][0] == 1 && iarra[1][1] == 1 && iarra[2][2] == 1)
{
return 1;
}
if (iarra[0][0] == 2 && iarra[1][1] == 2 && iarra[2][2] == 2)
{
return 0;
}
if (iarra[0][2] == 1 && iarra[1][1] == 1 && iarra[2][0] == 1)
{
return 1;
}
if (iarra[0][2] == 2 && iarra[1][1] == 2 && iarra[2][0] == 2)
{
return 0;
}
return -1;
}
美女交个朋友啊!~!~
----------------解决方案--------------------------------------------------------
太清楚了,非常感谢!
第一次来这里,这里的人真好啊,很热情啊!
----------------解决方案--------------------------------------------------------
严重B4 24楼的最后一句话~
----------------解决方案--------------------------------------------------------
支持了!!!!!!!!!!!!
----------------解决方案--------------------------------------------------------
我也是广东金融学院的哦,你是大一哪个班的?
----------------解决方案--------------------------------------------------------
请问小女子你学什么专业,初学者就编这种等程序,你们老师是不是很厉害?
----------------解决方案--------------------------------------------------------
不能在这里拉关系,这是知识交流的地方
----------------解决方案--------------------------------------------------------