• 大小: 14.14MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-22
  • 语言: 其他
  • 标签: 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\n“;
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  五子棋代码\Debug\exercise7---1-1.exe
     文件     1754852  2012-07-14 15:56  五子棋代码\Debug\exercise7---1-1.ilk
     文件     3107840  2012-07-14 15:56  五子棋代码\Debug\exercise7---1-1.pdb
     目录           0  2012-07-14 15:57  五子棋代码\exercise7---1-1\
     目录           0  2012-07-14 15:57  五子棋代码\exercise7---1-1\Debug\
     文件      149684  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\CL.read.1.tlog
     文件        3894  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\CL.write.1.tlog
     文件      154609  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\ai.obj
     文件      148898  2012-07-14 15:20  五子棋代码\exercise7---1-1\Debug\board1.obj
     文件      354814  2012-07-14 15:20  五子棋代码\exercise7---1-1\Debug\button.obj
     文件        3658  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\cl.command.1.tlog
     文件        3247  2012-07-14 13:22  五子棋代码\exercise7---1-1\Debug\exercise7---1-1.Build.CppClean.log
     文件         381  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\exercise7---1-1.exe.intermediate.manifest
     文件          95  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\exercise7---1-1.lastbuildstate
     文件       29706  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\exercise7---1-1.log
     文件      100914  2012-07-14 15:20  五子棋代码\exercise7---1-1\Debug\game_window.obj
     文件        2522  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\link.command.1.tlog
     文件        5530  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\link.read.1.tlog
     文件        1742  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\link.write.1.tlog
     文件       70772  2012-07-14 15:20  五子棋代码\exercise7---1-1\Debug\main.obj
     文件         632  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\mt.command.1.tlog
     文件         808  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\mt.read.1.tlog
     文件         436  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\mt.write.1.tlog
     文件     1117184  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\vc100.idb
     文件      757760  2012-07-14 15:56  五子棋代码\exercise7---1-1\Debug\vc100.pdb
     文件      137216  2012-07-10 23:20  五子棋代码\exercise7---1-1\Fmod.dll
     文件       43611  2012-07-10 23:18  五子棋代码\exercise7---1-1\Fmod.h
     文件      155352  2012-07-10 23:20  五子棋代码\exercise7---1-1\Fmodvc.lib
     文件       19595  2012-07-14 15:56  五子棋代码\exercise7---1-1\ai.cpp
............此处省略26个文件信息

评论

共有 条评论