五子棋fltk代码


用fltk库编写的五子棋代码,内含简单的ai,有界面,实现了多种功能,无禁手
资源截图
代码片段和文件信息
#ifndef AI_H
#define AI_H

/*评分规则:
           *代表玩家方的棋子及棋盘边线,+代表空位,o代表Ai的棋子
     + o +              1   分  单子
 + o o +            10  分  双连
 + o o o *          5  分  冲三
 + o o o +          50 分  活三
 + o o o o *        2000分  冲四
 + o o o o +        500分  活四
 o o o o o          5000分 五子连珠
 如果对玩家棋子进行评分,则o和*交换,分数取负即可。
*/


#include“board1.h“
#include“game_window.h“

extern game_window *win;//外部定义

void board::black_ai()//黑棋的ai
{
if( win->someone_win==1)//若已经分出胜负或者棋盘上已经有人下过子则不能落子
{   cout<<“wrong
“;
return  ;}

 int   a_qipan[N][N]={
{000000000000000}
{011111111111110}
{012222222222210}
{012333333333210}
{012344444443210}
{012345555543210}
{012345666543210}
{012345676543210}
{012345666543210}
{012345555543210}
{012344444443210}
{012333333333210}
{012222222222210}
{011111111111110}
{000000000000000}};//初始化


 for(int i=0;i  {
 for(int j=0;j  {//1的情况
    if( win->qipan[i][j-1]==1 || win->qipan[i][j+1]==1 || 
win->qipan[i-1][j]==1 || win->qipan[i+1][j]==1 || 
win->qipan[i-1][j-1]==1 || win->qipan[i+1][j+1]==0 || 
win->qipan[i-1][j+1]==1 || win->qipan[i+1][j-1]==1 ) 
                    a_qipan[i][j]+=1;
            //2的情况
if(win->qipan[i-2][j]==1 && win->qipan[i-1][j]==1) 
  a_qipan[i][j]+=5;
    if(win->qipan[i+2][j]==1 && win->qipan[i+1][j]==1) 
  a_qipan[i][j]+=5;
if(win->qipan[i][j-2]==1 && win->qipan[i][j-1]==1) 
  a_qipan[i][j]+=5;
if(win->qipan[i][j+2]==1 && win->qipan[i][j+1]==1) 
  a_qipan[i][j]+=5;
if(win->qipan[i+2][j+2]==1 && win->qipan[i+1][j+1]==1) 
  a_qipan[i][j]+=5;
if(win->qipan[i-2][j+2]==1 && win->qipan[i-1][j+1]==1) 
  a_qipan[i][j]+=5;
if(win->qipan[i+2][j-2]==1 && win->qipan[i+1][j-1]==1) 
  a_qipan[i][j]+=5;
if(win->qipan[i-2][j-2]==1 && win->qipan[i-1][j-1]==1) 
  a_qipan[i][j]+=5;

if(win->qipan[i+1][j-1]==1 && win->qipan[i-1][j+1]==1) 
  a_qipan[i][j]+=10;
if(win->qipan[i+1][j]==1 && win->qipan[i-1][j]==1) 
  a_qipan[i][j]+=10;
if(win->qipan[i][j-1]==1 && win->qipan[i][j+1]==1) 
  a_qipan[i][j]+=10;
if(win->qipan[i+1][j+1]==1 && win->qipan[i-1][j-1]==1) 
  a_qipan[i][j]+=10;
//3
if(win->qipan[i][j+3]==1 && win->qipan[i][j+2]==1 && win->qipan[i][j+1]==1  ) 
  a_qipan[i][j]+=100;
if(win->qipan[i][j-3]==1 && win->qipan[i][j-2]==1 && win->qipan[i][j-1]==1  ) 
  a_qipan[i][j]+=100;
if(win->qipan[i-3][j]==1 && win->qipan[i-2][j]==1 && win->qipan[i-1][j]==1  ) 
  a_qipan[i][j]+=100;
if(win->qipan[i+3][j]==1 && win->qipan[i+2][j]==1 && win->qipan[i+1][j]==1  ) 
  a_qipan[i][j]+=100;
if(win->qipan[i+3][j+3]==1 && win->qipan[i+2][j+2]==1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-07-14 15:57  五子棋代码
     目录           0  2012-07-14 15:57  五子棋代码Debug
     文件      821248  2012-07-14 15:56  五子棋代码Debugexercise7---1-1.exe
     文件     1754852  2012-07-14 15:56  五子棋代码Debugexercise7---1-1.ilk
     文件     3107840  2012-07-14 15:56  五子棋代码Debugexercise7---1-1.pdb
     目录           0  2012-07-14 15:57  五子棋代码exercise7---1-1
     目录           0  2012-07-14 15:57  五子棋代码exercise7---1-1Debug
     文件      149684  2012-07-14 15:56  五子棋代码exercise7---1-1DebugCL.read.1.tlog
     文件        3894  2012-07-14 15:56  五子棋代码exercise7---1-1DebugCL.write.1.tlog
     文件      154609  2012-07-14 15:56  五子棋代码exercise7---1-1Debugai.obj
     文件      148898  2012-07-14 15:20  五子棋代码exercise7---1-1Debugoard1.obj
     文件      354814  2012-07-14 15:20  五子棋代码exercise7---1-1Debugutton.obj
     文件        3658  2012-07-14 15:56  五子棋代码exercise7---1-1Debugcl.command.1.tlog
     文件        3247  2012-07-14 13:22  五子棋代码exercise7---1-1Debugexercise7---1-1.Build.CppClean.log
     文件         381  2012-07-14 15:56  五子棋代码exercise7---1-1Debugexercise7---1-1.exe.intermediate.manifest
     文件          95  2012-07-14 15:56  五子棋代码exercise7---1-1Debugexercise7---1-1.lastbuildstate
     文件       29706  2012-07-14 15:56  五子棋代码exercise7---1-1Debugexercise7---1-1.log
     文件      100914  2012-07-14 15:20  五子棋代码exercise7---1-1Debuggame_window.obj
     文件        2522  2012-07-14 15:56  五子棋代码exercise7---1-1Debuglink.command.1.tlog
     文件        5530  2012-07-14 15:56  五子棋代码exercise7---1-1Debuglink.read.1.tlog
     文件        1742  2012-07-14 15:56  五子棋代码exercise7---1-1Debuglink.write.1.tlog
     文件       70772  2012-07-14 15:20  五子棋代码exercise7---1-1Debugmain.obj
     文件         632  2012-07-14 15:56  五子棋代码exercise7---1-1Debugmt.command.1.tlog
     文件         808  2012-07-14 15:56  五子棋代码exercise7---1-1Debugmt.read.1.tlog
     文件         436  2012-07-14 15:56  五子棋代码exercise7---1-1Debugmt.write.1.tlog
     文件     1117184  2012-07-14 15:56  五子棋代码exercise7---1-1Debugvc100.idb
     文件      757760  2012-07-14 15:56  五子棋代码exercise7---1-1Debugvc100.pdb
     文件      137216  2012-07-10 23:20  五子棋代码exercise7---1-1Fmod.dll
     文件       43611  2012-07-10 23:18  五子棋代码exercise7---1-1Fmod.h
     文件      155352  2012-07-10 23:20  五子棋代码exercise7---1-1Fmodvc.lib
     文件       19595  2012-07-14 15:56  五子棋代码exercise7---1-1ai.cpp
............此处省略26个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)