井字游戏(C语言版)

时间:2010-05-06 12:01:11  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:';a[5]='5';a[6]='6';  a[7]='7';a[8]='8';a[9]='9';}void display(chess a){  printf("n");printf("n");  printf("   %c | %c | %cn",a[1],a[2],a[3]);  printf("  --------------n");  printf("   %c | %c | %cn",a[4],a[5],a[6]);  printf("  --------------n");  printf("   %c | %c | %cn",a[7],a[8],a[9]);  ...
  正文:

#include <stdio.h>
typedef char chess[10];
typedef int temparr[10];
chess arr;
temparr brr;
int number,suc,c3,n2,c2,n1,c1;
char ch;
void inarrdata(chess a)
{
  a[1]='1';a[2]='2';a[3]='3';
  a[4]='4';a[5]='5';a[6]='6';
  a[7]='7';a[8]='8';a[9]='9';
}
void display(chess a)
{
  printf("n");printf("n");
  printf("   %c | %c | %cn",a[1],a[2],a[3]);
  printf("  --------------n");
  printf("   %c | %c | %cn",a[4],a[5],a[6]);
  printf("  --------------n");
  printf("   %c | %c | %cn",a[7],a[8],a[9]);
  printf("n");printf("n");
}
int arrfull()
{
  int i;
  int arrf=0;
  for(i=1;i<=9;i++)
    if(i==arr[i]-48)
      arrf=1;
  return arrf;
}
void cn(int line)
{
  switch(line)
    {
      case 0:c3=c3+1;break;
      case 1:n2=n2+1;break;
      case 2:c2=c2+1;break;
      case 3:n1=n1+1;break;
      case 4:c1=c1+1;break;
    }
}
int linenum(char a,char b,char c)
{
  int ln=5;
  if((a=='X')&&(b=='X')&&(c=='X'))
    ln=0;
  if(((a=='O')&&(b=='O')&&(c!='O'))||((a=='O')&&(b!='O')&&(c=='O'))||((a!='O')&&(b=='O')&&(c=='O')))
    ln=1;
  if(((a=='X')&&(b=='X')&&(c!='X'))||((a=='X')&&(b!='X')&&(c=='X'))||((a!='X')&&(b=='X')&&(c=='X')))
    ln=2;
  if(((a=='O')&&(b!='O')&&(c!='O'))||((a!='O')&&(b=='O')&&(c!='O'))||((a!='O')&&(b!='O')&&(c=='O')))
    ln=3;
  if(((a=='X')&&(b!='X')&&(c!='x'))||((a!='X')&&(b=='X')&&(c!='X'))||((a!='X')&&(b!='X')&&(c=='X')))
    ln=4;
  return ln;
}
int maxbrr(int *br)
{
  int temp,i,mb;
  temp=-888;
  for(i=1;i<=9;i++)
    {
      if(temp<=br[i])
        {
          temp=br[i];
          mb=i;
        }
    }
  return mb;
}
void manstep() //人走棋处理模块
{
  int j;
  display(arr);
  if(arrfull()) //如果棋盘上还有下棋的位置,给人走一步棋
    {
      printf("您要走哪一步?请输入数字(1--9):");
      scanf("%d",&j);
      while((j<1)||(j>9)||(j!=arr[j]-48))
        {
          printf("对不起,您输入的数字不对,请重新输入(1--9):");
          scanf("%d",&j);
        }
      arr[j]='O';
    }
}
void computerstep() //计算机走棋处理模块
{
  int i;
  if(arrfull()) //如果棋盘上还有可下棋的位置,则计算机走棋
    {
      for(i=1;i<=9;i++) //对每一步可走的棋进行计算
        {
          if(i==arr[i]-48)
            {
              c3=0;n2=0;c2=0;n1=0;c1=0;
              arr[i]='X';
              number=linenum(arr[1],arr[2],arr[3]);cn(number);
              number=linenum(arr[4],arr[5],arr[6]);cn(number);
              number=linenum(arr[7],arr[8],arr[9]);cn(number);
              number=linenum(arr[1],arr[4],arr[7]);cn(number);
              number=linenum(arr[2],arr[5],arr[8]);cn(number);
              number=linenum(arr[3],arr[6],arr[9]);cn(number);
              number=linenum(arr[1],arr[5],arr[9]);cn(number);
              number=linenum(arr[3],arr[5],arr[7]);cn(number);
              brr[i]=(128*c3-63*n2+31*c2-15*n1+7*c1);  //计算此步权值
              arr[i]=i+48;
            }
"井字游戏(C语言版)"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-05-06/13881.html


关键字:

关于《井字游戏(C语言版)》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td