CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

毕业设计要做单机五子棋,现求算法及设计思路

楼主l5223035(筱筱)2006-03-30 21:40:24 在 C/C++ / 新手乐园 提问

各位高手帮帮忙啊!  
  想用C#或者C++做 问题点数:0、回复次数:42Top

1 楼thzhaosen(随风)回复于 2006-03-31 11:12:38 得分 0

这个使用C写的。希望对楼主有用  
   
   
  /**********************************************************/  
  /*             本程序在Turbo   C或Borland   C下编译通过                             */  
  /*             源程序在光盘   \source\   目录下                                             */  
  /*             文件名:   afive.c                                                                       */  
  /**********************************************************/  
   
  /**********************************************************/  
  /*   程序中用到的库函数所在头文件应用   #include   命令包含进来   */  
   
  #include   <stdio.h>  
  #include   <bios.h>  
  #include   <ctype.h>  
  #include   <conio.h>  
  #include   <dos.h>  
   
  /**********************************************************/  
  /*   定义符号常量                                                                                       */  
   
  /*定义画棋盘所需的制表符*/  
  #define   CROSSRU           0xbf     /*右上角点*/  
  #define   CROSSLU           0xda     /*左上角点*/  
  #define   CROSSLD           0xc0     /*左下角点*/  
  #define   CROSSRD           0xd9     /*右下角点*/  
  #define   CROSSL             0xc3     /*左边*/  
  #define   CROSSR             0xb4     /*右边*/  
  #define   CROSSU             0xc2     /*上边*/  
  #define   CROSSD             0xc1     /*下边*/  
  #define   CROSS               0xc5     /*十字交叉点*/  
   
  /*定义棋盘左上角点在屏幕上的位置*/  
  #define   MAPXOFT           5  
  #define   MAPYOFT           2  
   
  /*定义1号玩家的操作键键码*/  
  #define   PLAY1UP           0x1157/*上移--'W'*/  
  #define   PLAY1DOWN       0x1f53/*下移--'S'*/  
  #define   PLAY1LEFT       0x1e41/*左移--'A'*/  
  #define   PLAY1RIGHT     0x2044/*右移--'D'*/  
  #define   PLAY1DO           0x3920/*落子--空格键*/  
   
  /*定义2号玩家的操作键键码*/  
  #define   PLAY2UP           0x4800/*上移--方向键up*/  
  #define   PLAY2DOWN       0x5000/*下移--方向键down*/  
  #define   PLAY2LEFT       0x4b00/*左移--方向键left*/  
  #define   PLAY2RIGHT     0x4d00/*右移--方向键right*/  
  #define   PLAY2DO           0x1c0d/*落子--回车键Enter*/  
   
  /*若想在游戏中途退出,   可按   Esc   键*/  
  #define   ESCAPE             0x011b  
   
  /*定义棋盘上交叉点的状态,   即该点有无棋子   */  
  /*若有棋子,   还应能指出是哪个玩家的棋子       */  
  #define   CHESSNULL       0     //没有棋子  
  #define   CHESS1             'O'//一号玩家的棋子  
  #define   CHESS2             'X'//二号玩家的棋子  
   
  /*定义按键类别*/  
  #define   KEYEXIT                 0/*退出键*/  
  #define   KEYFALLCHESS       1/*落子键*/  
  #define   KEYMOVECURSOR     2/*光标移动键*/  
  #define   KEYINVALID           3/*无效键*/  
   
  /*定义符号常量:   真,   假   ---   真为1,   假为0   */  
  #define   TRUE                 1  
  #define   FALSE               0  
   
  /**********************************************************/  
  /*   定义数据结构                                                                                       */  
   
  /*棋盘交叉点坐标的数据结构*/  
  struct   point  
  {  
        int   x,y;  
  };  
   
  /**********************************************************/  
  /*自定义函数原型说明                                                                             */  
  void   Init(void);  
  int     GetKey(void);  
  int   CheckKey(int   press);  
  int     ChangeOrder(void);  
  int     ChessGo(int   Order,struct   point   Cursor);  
  void   DoError(void);  
  void   DoOK(void);  
  void   DoWin(int   Order);  
  void   MoveCursor(int   Order,int   press);  
  void   DrawCross(int   x,int   y);  
  void   DrawMap(void);  
  int     JudgeWin(int   Order,struct   point   Cursor);  
  int     JudgeWinLine(int   Order,struct   point   Cursor,int   direction);  
  void   ShowOrderMsg(int   Order);  
  void   EndGame(void);  
  /**********************************************************/  
   
  /**********************************************************/  
  /*   定义全局变量                                                                                       */  
  int     gPlayOrder;                   /*指示当前行棋方                     */  
  struct   point   gCursor;         /*光标在棋盘上的位置             */  
  char   gChessBoard[19][19];/*用于记录棋盘上各点的状态*/  
  /**********************************************************/  
   
  /**********************************************************/  
  Top

2 楼thzhaosen(随风)回复于 2006-03-31 11:13:17 得分 0

/*主函数*/  
  void   main()  
  {  
      int   press;  
      int   bOutWhile=FALSE;/*退出循环标志*/  
   
      Init();/*初始化图象,数据*/  
   
      while(1)  
      {  
          press=GetKey();/*获取用户的按键值*/  
          switch(CheckKey(press))/*判断按键类别*/  
          {  
          /*是退出键*/  
          case   KEYEXIT:  
              clrscr();/*清屏*/  
              bOutWhile   =   TRUE;  
              break;  
   
          /*是落子键*/  
          case   KEYFALLCHESS:  
              if(ChessGo(gPlayOrder,gCursor)==FALSE)/*走棋*/  
                  DoError();/*落子错误*/  
              else  
              {  
                  DoOK();/*落子正确*/  
   
                  /*如果当前行棋方赢棋*/  
                  if(JudgeWin(gPlayOrder,gCursor)==TRUE)  
                  {    
                      DoWin(gPlayOrder);  
                      bOutWhile   =   TRUE;/*退出循环标志置为真*/  
                  }  
                  /*否则*/  
                  else  
                      /*交换行棋方*/  
                      ChangeOrder();  
              }  
              break;  
   
          /*是光标移动键*/  
          case   KEYMOVECURSOR:  
              MoveCursor(gPlayOrder,press);  
              break;  
   
          /*是无效键*/  
          case   KEYINVALID:  
              break;  
          }  
   
          if(bOutWhile==TRUE)  
              break;  
      }  
   
      /*游戏结束*/  
      EndGame();  
  }  
  /**********************************************************/  
   
  /*界面初始化,数据初始化*/  
  void   Init(void)  
  {  
      int   i,j;  
      char   *Msg[]=  
      {  
          "Player1   key:",  
          "     UP----w",  
          "     DOWN--s",  
          "     LEFT--a",  
          "     RIGHT-d",  
          "     DO----space",  
          "",  
          "Player2   key:",  
          "     UP----up",  
          "     DOWN--down",  
          "     LEFT--left",  
          "     RIGHT-right",  
          "     DO----ENTER",  
          "",  
          "exit   game:",  
          "     ESC",  
          NULL,  
      };  
   
      /*先手方为1号玩家*/  
      gPlayOrder   =   CHESS1;  
      /*棋盘数据清零,   即棋盘上各点开始的时候都没有棋子*/  
      for(i=0;i<19;i++)  
          for(j=0;j<19;j++)  
              gChessBoard[i][j]=CHESSNULL;  
      /*光标初始位置*/  
      gCursor.x=gCursor.y=0;  
   
      /*画棋盘*/  
      textmode(C40);  
      DrawMap();  
   
  Top

3 楼thzhaosen(随风)回复于 2006-03-31 11:13:56 得分 0

/*显示操作键说明*/  
      i=0;  
      textcolor(BROWN);  
      while(Msg[i]!=NULL)  
      {  
          gotoxy(25,3+i);  
          cputs(Msg[i]);  
          i++;  
      }  
   
      /*显示当前行棋方*/  
      ShowOrderMsg(gPlayOrder);  
      /*光标移至棋盘的左上角点处*/  
      gotoxy(gCursor.x+MAPXOFT,gCursor.y+MAPYOFT);  
  }  
   
  /*画棋盘*/  
  void   DrawMap(void)  
  {  
      int   i,j;  
   
      clrscr();  
   
      for(i=0;i<19;i++)  
          for(j=0;j<19;j++)  
              DrawCross(i,j);  
   
  }  
   
  /*画棋盘上的交叉点*/  
  void   DrawCross(int   x,int   y)  
  {  
      gotoxy(x+MAPXOFT,y+MAPYOFT);  
      /*交叉点上是一号玩家的棋子*/  
      if(gChessBoard[x][y]==CHESS1)  
      {  
          textcolor(LIGHTBLUE);  
          putch(CHESS1);  
          return;  
      }  
      /*交叉点上是二号玩家的棋子*/  
      if(gChessBoard[x][y]==CHESS2)  
      {  
          textcolor(LIGHTBLUE);  
          putch(CHESS2);  
          return;  
      }  
   
      textcolor(GREEN);  
   
      /*左上角交叉点*/  
      if(x==0&&y==0)  
      {  
          putch(CROSSLU);  
          return;  
      }  
   
      /*左下角交叉点*/  
      if(x==0&&y==18)  
      {  
          putch(CROSSLD);  
          return;  
      }  
       
      /*右上角交叉点*/  
      if(x==18&&y==0)  
      {  
          putch(CROSSRU);  
          return;  
      }  
   
      /*右下角交叉点*/  
      if(x==18&&y==18)  
      {  
          putch(CROSSRD);  
          return;  
      }  
   
      /*左边界交叉点*/  
      if(x==0)  
      {  
          putch(CROSSL);  
          return;  
      }  
   
      /*右边界交叉点*/  
      if(x==18)  
      {  
          putch(CROSSR);  
          return;  
      }  
   
      /*上边界交叉点*/  
      if(y==0)  
      {  
          putch(CROSSU);  
          return;  
      }  
   
      /*下边界交叉点*/  
      if(y==18)  
      {  
          putch(CROSSD);  
          return;  
      }  
   
      /*棋盘中间的交叉点*/  
      putch(CROSS);  
  }  
   
  /*交换行棋方*/  
  int   ChangeOrder(void)  
  {  
      if(gPlayOrder==CHESS1)  
          gPlayOrder=CHESS2;  
      else  
          gPlayOrder=CHESS1;  
   
      return(gPlayOrder);  
  }  
   
  /*获取按键值*/  
  int   GetKey(void)  
  {  
        char   lowbyte;  
        int   press;  
   
        while   (bioskey(1)   ==   0)  
              ;/*如果用户没有按键,空循环*/  
   
        press=bioskey(0);  
        lowbyte=press&0xff;  
        press=press&0xff00   +   toupper(lowbyte);  
        return(press);  
  }  
   
  /*落子错误处理*/  
  void   DoError(void)  
  {  
        sound(1200);  
        delay(50);  
        nosound();  
  }  
   
  /*赢棋处理*/  
  void   DoWin(int   Order)  
  {  
        sound(1500);delay(100);  
        sound(0);       delay(50);  
        sound(800);   delay(100);  
        sound(0);       delay(50);  
        sound(1500);delay(100);  
        sound(0);       delay(50);  
        sound(800);   delay(100);  
        sound(0);       delay(50);  
        nosound();  
   
        textcolor(RED+BLINK);  
        gotoxy(25,20);  
        if(Order==CHESS1)  
            cputs("PLAYER1   WIN!");  
        else  
            cputs("PLAYER2   WIN!");  
        gotoxy(25,21);  
        cputs("     \\<^+^>/");  
        getch();  
  }  
   
  /*走棋*/  
  int     ChessGo(int   Order,struct   point   Cursor)  
  {  
        /*判断交叉点上有无棋子*/  
        if(gChessBoard[Cursor.x][Cursor.y]==CHESSNULL)  
        {  
            /*若没有棋子,   则可以落子*/  
            gotoxy(Cursor.x+MAPXOFT,Cursor.y+MAPYOFT);  
            textcolor(LIGHTBLUE);  
            putch(Order);  
            gotoxy(Cursor.x+MAPXOFT,Cursor.y+MAPYOFT);  
            gChessBoard[Cursor.x][Cursor.y]=Order;  
            return   TRUE;  
        }  
        else  
            return   FALSE;  
  }  
   
  Top

4 楼wumingchenchao(一缕阳光)回复于 2006-03-31 11:42:26 得分 0

www.vcok.com/class/里面有个现成的。Top

5 楼thzhaosen(随风)回复于 2006-03-31 15:09:21 得分 0

/*判断当前行棋方落子后是否赢棋*/  
  int     JudgeWin(int   Order,struct   point   Cursor)  
  {  
      int   i;  
      for(i=0;i<4;i++)  
          /*判断在指定方向上是否有连续5个行棋方的棋子*/  
          if(JudgeWinLine(Order,Cursor,i))  
              return   TRUE;  
      return   FALSE;  
  }  
   
  /*判断在指定方向上是否有连续5个行棋方的棋子*/  
  int     JudgeWinLine(int   Order,struct   point   Cursor,int   direction)  
  {  
        int   i;  
        struct   point   pos,dpos;  
        const   int   testnum   =   5;  
        int   count;  
   
        switch(direction)  
        {  
        case   0:/*在水平方向*/  
            pos.x=Cursor.x-(testnum-1);  
            pos.y=Cursor.y;  
            dpos.x=1;  
            dpos.y=0;  
            break;  
        case   1:/*在垂直方向*/  
            pos.x=Cursor.x;  
            pos.y=Cursor.y-(testnum-1);  
            dpos.x=0;  
            dpos.y=1;  
            break;  
        case   2:/*在左下至右上的斜方向*/  
            pos.x=Cursor.x-(testnum-1);  
            pos.y=Cursor.y+(testnum-1);  
            dpos.x=1;  
            dpos.y=-1;  
            break;  
        case   3:/*在左上至右下的斜方向*/  
            pos.x=Cursor.x-(testnum-1);  
            pos.y=Cursor.y-(testnum-1);  
            dpos.x=1;  
            dpos.y=1;  
            break;  
        }  
   
        count=0;  
        for(i=0;i<testnum*2+1;i++)  
        {  
            if(pos.x>=0&&pos.x<=18&&pos.y>=0&&pos.y<=18)  
            {  
                if(gChessBoard[pos.x][pos.y]==Order)  
                {  
                            count++;  
                            if(count>=testnum)  
                            return   TRUE;  
                }  
                else  
                    count=0;  
            }  
            pos.x+=dpos.x;  
            pos.y+=dpos.y;  
        }  
   
        return   FALSE;  
  }  
   
  /*移动光标*/  
  void   MoveCursor(int   Order,int   press)  
  {  
      switch(press)  
      {  
      case   PLAY1UP:  
          if(Order==CHESS1&&gCursor.y>0)  
              gCursor.y--;  
          break;  
      case   PLAY1DOWN:  
          if(Order==CHESS1&&gCursor.y<18)  
              gCursor.y++;  
          break;  
      case   PLAY1LEFT:  
          if(Order==CHESS1&&gCursor.x>0)  
              gCursor.x--;  
          break;  
      case   PLAY1RIGHT:  
          if(Order==CHESS1&&gCursor.x<18)  
              gCursor.x++;  
          break;  
   
      case   PLAY2UP:  
          if(Order==CHESS2&&gCursor.y>0)  
              gCursor.y--;  
          break;  
      case   PLAY2DOWN:  
          if(Order==CHESS2&&gCursor.y<18)  
              gCursor.y++;  
          break;  
      case   PLAY2LEFT:  
          if(Order==CHESS2&&gCursor.x>0)  
              gCursor.x--;  
          break;  
      case   PLAY2RIGHT:  
          if(Order==CHESS2&&gCursor.x<18)  
              gCursor.x++;  
          break;  
      }  
   
      gotoxy(gCursor.x+MAPXOFT,gCursor.y+MAPYOFT);  
  }  
  /*游戏结束处理*/  
  void   EndGame(void)  
  {  
        textmode(C80);  
  }  
   
  /*显示当前行棋方*/  
  void   ShowOrderMsg(int   Order)  
  {  
      gotoxy(6,MAPYOFT+20);  
      textcolor(LIGHTRED);  
      if(Order==CHESS1)  
            cputs("Player1   go!");  
      else  
            cputs("Player2   go!");  
   
      gotoxy(gCursor.x+MAPXOFT,gCursor.y+MAPYOFT);  
  }  
   
  /*落子正确处理*/  
  void   DoOK(void)  
  {  
        sound(500);  
        delay(70);  
        sound(600);  
        delay(50);  
        sound(1000);  
        delay(100);  
        nosound();  
  }  
   
  /*检查用户的按键类别*/  
  int   CheckKey(int   press)  
  {  
          if(press==ESCAPE)  
              return   KEYEXIT;/*是退出键*/  
   
          else    
          if  
          (   (   press==PLAY1DO   &&   gPlayOrder==CHESS1)   ||  
              (   press==PLAY2DO   &&   gPlayOrder==CHESS2)  
          )  
              return   KEYFALLCHESS;/*是落子键*/  
   
          else  
          if  
          (   press==PLAY1UP       ||   press==PLAY1DOWN     ||  
              press==PLAY1LEFT   ||   press==PLAY1RIGHT   ||  
              press==PLAY2UP       ||   press==PLAY2DOWN     ||  
              press==PLAY2LEFT   ||   press==PLAY2RIGHT  
          )  
              return   KEYMOVECURSOR;/*是光标移动键*/  
   
          else  
              return   KEYINVALID;/*按键无效*/  
  }  
   
  Top

6 楼oybee(oybee)回复于 2006-03-31 17:09:05 得分 0

有职业规则的吗?  
  Top

7 楼windking21(想玩玩WOW 真的那么难吗)回复于 2006-03-31 17:27:24 得分 0

我有VC版的  
  要代码的话给个邮箱发给你Top

8 楼sihouduan()回复于 2006-04-01 09:19:22 得分 0

thzhaosen(随风)   真强,呵呵  
  Top

9 楼guanyouwen(劳尔)回复于 2006-04-01 09:53:21 得分 0

windking21(想玩玩WOW   真的那么难吗):  
  能给我发一个吗???  
  gyw21123@126.com  
  Top

10 楼rubbish1(美言)回复于 2006-04-01 13:01:58 得分 0

哇咔咔~!那个网址好多的C语言的初级例题,谢谢了Top

11 楼cime63(流浪的孩子)回复于 2006-04-02 12:15:46 得分 0

收藏Top

12 楼SammyLan((基础决定你能走多远)--英语菜才是真的菜)回复于 2006-04-02 13:06:38 得分 0

毕业设计才做五子棋  
  而且是单机版的?(=_=)  
   
  上学期用VC写过一个网络对战版的五子棋  
  可以在局域网里面使用  
  不过界面做的很烂   (=_=)  
   
   
  五子棋的算法不难  
  反而界面要下功夫Top

13 楼yuanchuang(元创)回复于 2006-04-02 13:07:18 得分 0

windking21(想玩玩WOW   真的那么难吗)   (   )   信誉:100     2006-3-31   17:27:24     得分:   0      
   
         
  我有VC版的  
  要代码的话给个邮箱发给你  
  --------------------------------------------------  
  发给我吧,谢谢  
  wyuanchuang@sohu.comTop

14 楼l5223035(筱筱)回复于 2006-04-02 17:12:13 得分 0

5555555555  
  感动一个先  
  偶邮箱是lilingling220@163.com  
   
  谢谢先Top

15 楼l5223035(筱筱)回复于 2006-04-02 17:18:07 得分 0

感谢帮偶的大虾们Top

16 楼l5223035(筱筱)回复于 2006-04-02 17:20:51 得分 0

由于刚刚开始做  
  所以不知道怎么下手  
  只能从最简单的先开始考虑  
  如果有时间再加内容  
  Top

17 楼baggio1984(good good study ,day day up !)回复于 2006-04-02 22:04:56 得分 0

我有一本电子书,上面有讲这个,是vc版的,要不??Top

18 楼duanliyu(板儿砖)回复于 2006-04-03 08:40:23 得分 0

baggio1984(good   good   study   ,day   day   up   !)    
  我有一本电子书,上面有讲这个,是vc版的,要不??  
  ----------------------------------------------------  
  给我发一个吧,Cyber55@163.comTop

19 楼danjiewu(阿丹)回复于 2006-04-03 09:14:33 得分 0

单机版的要实现人机对战才难。Top

20 楼franson12()回复于 2006-04-03 09:33:29 得分 0

能发一个VC版的5子棋给我吗,谢谢  
  我的邮箱是franson_df@163.comTop

21 楼yuanchuang(元创)回复于 2006-04-03 09:43:30 得分 0

danjiewu(阿丹)   (   )   信誉:100     2006-04-03   09:14:00     得分:   0      
     
     
        单机版的要实现人机对战才难。  
  -------------------------------------------------------------  
  对,单机版的要是只能人和人下的话,那有什么意思?有什么难度?Top

22 楼justrun2005(机枪)回复于 2006-04-03 09:48:29 得分 0

在我的理解。。。。五子棋不实现人机对战,就没啥意义吧?判断五个子在不在一条线上没啥难读罢?似乎比迷宫问题还简单。  
            一直考虑做个五子棋,但机器的算法挺让人郁闷的。。。回头做个贪吃蛇什么的比较简单吧。就是界面。。。。Top

23 楼qzfty(初学者)回复于 2006-04-03 15:39:38 得分 0

能发一个VC版的5子棋给我吗,谢谢  
  我的邮箱是00006@126.com  
  Top

24 楼yinqing_yx(淘汰引擎)(玩虚一族)回复于 2006-04-03 15:44:58 得分 0

我的求职DEMO就是一个小五子棋游戏   哈哈    
   
  Top

25 楼l5223035(筱筱)回复于 2006-04-04 00:01:45 得分 0

windking21(想玩玩WOW   真的那么难吗)    
  我有VC版的  
  要代码的话给个邮箱发给你  
   
  baggio1984(good   good   study   ,day   day   up   !)    
  我有一本电子书,上面有讲这个,是vc版的,要不??  
   
  上面两位,麻烦发给偶!  
  lilingling220@163.comTop

26 楼poppylx(静若子水)回复于 2006-04-04 00:20:55 得分 0

windking21(想玩玩WOW   真的那么难吗)    
  我有VC版的  
  要代码的话给个邮箱发给你  
   
  既然这么多人要   你肯定会发的   那也不多我一个啊  
  谢谢了  
  poppy_lx@hotmail.comTop

27 楼cattlenzq(吃狼的豆腐(不要给分了,散起来真麻烦!))回复于 2006-04-04 00:27:26 得分 0

1搜1把啊。。。。。。。。。。。Top

28 楼liner632(落花非雪)回复于 2006-04-04 11:22:41 得分 0

偶也是新手,最近也也做毕业设计,可是没一点头绪,所以也把这个例子拿区看看哦~~Top

29 楼chenzhichao2008(陈智超)回复于 2006-04-04 12:54:48 得分 0

你如果你的五子棋(15*15)可以搜索10层的话,你就很强了Top

30 楼guanyouwen(劳尔)回复于 2006-04-04 13:16:08 得分 0

收藏了...Top

31 楼zhuhe8234(和气)回复于 2006-04-04 15:36:55 得分 0

 
  LZ能发一个VC版的5子棋给我吗,呵呵,谢谢啊!  
  我的邮箱是zhuhe@stu.hziee.edu.cnTop

32 楼l5223035(筱筱)回复于 2006-04-07 00:57:36 得分 0

windking21(想玩玩WOW   真的那么难吗)    
  我有VC版的  
  要代码的话给个邮箱发给你  
   
  这位大哥人那?Top

33 楼zhy02148575(小英子)回复于 2006-04-07 17:44:04 得分 0

做个这东东也可以作毕业设计!!!!!!!!!!!!!!!  
  真的无语.你们真的轻松.  
  我只能说指导老师脑子灌水.Top

34 楼danjiewu(阿丹)回复于 2006-04-07 18:27:37 得分 0

如果要做人机对战的话,一般就是AlphaBeta剪枝搜索+估值函数。  
  思路虽然简单,想要做好就难了。Top

35 楼zzk8994073(代码)回复于 2006-04-08 13:29:28 得分 0

本人代写程序,包括课程设计,毕业设计,以及特殊定制的各种程序。语言包括C/C++、Java、C#、Delphi、JSP、ASP、Asp.net,价格合理,信誉良好,满意后付款。    
  有意者请加    
  QQ:274447169    
  Email:mymy828@gmail.com       
  此信息长期有效!Top

36 楼zzk8994073(代码)回复于 2006-04-08 13:29:33 得分 0

本人代写程序,包括课程设计,毕业设计,以及特殊定制的各种程序。语言包括C/C++、Java、C#、Delphi、JSP、ASP、Asp.net,价格合理,信誉良好,满意后付款。    
  有意者请加    
  QQ:274447169    
  Email:mymy828@gmail.com       
  此信息长期有效!Top

37 楼xyq1986(综艺一哥)回复于 2006-04-08 18:24:34 得分 0

确实,我觉得博弈的算法可以写得很深……我曾经用API写了个黑白棋的游戏,不过界面就没怎么做装修了……算法方面主要是alpha-beta搜索……估值函数……Top

38 楼yj5095(yj5095)回复于 2006-04-09 18:43:14 得分 0

上这个看看!上面介绍的还是比较清楚的  
  http://www.chinaitpower.com/A200508/2005-08-07/186455.html  
  Top

39 楼Kenn_C(星空释)回复于 2006-04-10 22:28:27 得分 0

mykelven@gmail.com  
   
  3q   very   muchTop

40 楼sessdu(三里屯的熊)回复于 2006-04-11 11:04:17 得分 0

看了这么多,反正我觉的楼主这人太不厚道了  
  这么多兄弟都帮忙,也不知道留点分,怕是混不久啊.....Top

41 楼l5223035(筱筱)回复于 2006-04-11 15:10:14 得分 0

呵呵  
  小女子第一次上这里  
  所以不知道要怎么才有分数  
  不好意思了  
   
  拜谢各位了Top

42 楼l5223035(筱筱)回复于 2006-04-11 15:12:41 得分 0

??Top

相关问题

  • 毕业设计 SPIHT算法源码
  • 毕业设计要用遗传算法智能组卷。。
  • 求矩阵的逆矩阵的算法???????(急,要交毕业设计了)
  • 毕业设计问题 fft的dit的算法怎么实现 谢谢
  • 毕业设计
  • 毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计毕业设计
  • 毕业设计
  • 有关菜单的问题.我是在做一个五子棋的毕业设计.能快点回答我吗?我好急啊五一就要交了,谢谢!!
  • 连珠五子棋的算法
  • 关于五子棋的算法。

关键词

  • play
  • define
  • 落子
  • 方向键
  • xc
  • 定义
  • 角
  • cursor
  • down
  • left

得分解答快速导航

  • 帖主:l5223035

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo