教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> C >> 游戏编程 >> 个用C 编写的五子棋游戏(1) RSS订阅
个用C 编写的五子棋游戏(1)
个用C 编写的五子棋游戏(1)(1)
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

在TC 1.0~TC 3.0下编译

// LUFFAR.CPP
////////////////////////////////////////////////////
//
// Luffar.Cpp by Yuheng Zhao
//
////////////////////////////////////////////////////

#include "types.h"
#include "shell.h"
#include "luffar.h"
#include "mouse.h"

CBoard::CBoard(CPlayer* p1,CPlayer* p2)
{
m_bSearchAll = TRUE;
// Rensa arrayen
for (int temp=0;temp<MAX_X;temp )
{
for (int temp1=0;temp1<MAX_Y;temp1 )
{
m_nBoard[temp][temp1]=0;
}
}

m_bIsEmpty = TRUE;
m_pPlayer1 = p1;
m_pPlayer2 = p2;
m_pCurrentPlayer = p1;
m_nWhoBegins=1;

x0 = 25;
y0 = 45;
x1 = 435;
y1 = 455;
m_nMargin = 10;
m_nShadow = 5;
m_nCellX = (x1-x0)/MAX_X;
m_nCellY = (y1-y0)/MAX_Y;
// Justera storleken p?br刣et s?att det blir delbart
x1=x0 m_nCellX*MAX_X;
y1=y0 m_nCellY*MAX_Y;

msg[0]='\0';
CreateImages();
}

void CBoard::ResetBoard()
{
if (!m_bIsEmpty)
{
for (int temp=0;temp<MAX_X;temp )
{
for (int temp1=0;temp1<MAX_Y;temp1 )
{
m_nBoard[temp][temp1]=0;
}
}
m_lastPt = CPoint();
m_nextlPt = CPoint();
if (m_nWhoBegins==1)
{
m_pCurrentPlayer = m_pPlayer2;
m_nWhoBegins=2;
}else
{
m_pCurrentPlayer = m_pPlayer1;
m_nWhoBegins=1;
}
m_bIsEmpty = TRUE;
Draw();
Message("-----------------");
Message("New game ... ");
}
}

CBoard::~CBoard()
{
free(m_pImage1);
free(m_pImage2);
}

void CBoard::CreateImages()
{
int r = (m_nCellX>m_nCellY)?m_nCellY:m_nCellX;
r/=2;
r-=1;
int x = 465;
int y = 60;
unsigned int size;

/* calculate the size of the image */
size = imagesize(0,0,r*2,r*2);

/* allocate memory to hold the image */
m_pImage1 = malloc(size);
m_pImage2 = malloc(size);

file://F攔sta image
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
fillellipse(x,y,r,r);
setfillstyle(SOLID_FILL,DGRAY);
fillellipse(x-3,y-3,r-4,r-4);
setcolor(LGRAY);
setfillstyle(SOLID_FILL,LGRAY);
fillellipse(x-3,y-3,r-7,r-7);

/* grab the image */
getimage(x-r,y-r,x r,y r, m_pImage1);

x = 465;
y = 85;

// Andra image
setcolor(DGRAY);
setfillstyle(SOLID_FILL,DGRAY);
fillellipse(x,y,r,r);
setfillstyle(SOLID_FILL,LGRAY);
fillellipse(x-1,y-2,r-2,r-2);
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
fillellipse(x-3,y-3,r-7,r-7);

getimage(x-r,y-r,x r,y r, m_pImage2);

// putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);
}

void CBoard::Draw()
{

HidePoint();
CRect rect(x0-m_nMargin,y0-m_nMargin,
x1 m_nMargin,y1 m_nMargin);
rect.Draw(BROWN,NOCOLOR,TRUE,m_nShadow);

setcolor(BLACK);
for (int temp=0;temp<MAX_Y 1;temp )
line(x0,y0 temp*m_nCellY,x1,y0 temp*m_nCellY);
for (temp=0;temp<MAX_X 1;temp )
line(x0 temp*m_nCellX,y0,x0 temp*m_nCellX,y1);
ShowPoint();
}

int CBoard::Go()
{
int scrx=-1,scry=-1,b;
CPoint newPt;
BOOL redraw=FALSE;

if (m_pCurrentPlayer->IsComputer())
{
newPt = Think();
m_nBoard[newPt.x][newPt.y]=m_pCurrentPlayer->WhichPlayer();
redraw = TRUE;
m_bIsEmpty = FALSE;
m_nextlPt = m_lastPt;
m_lastPt = newPt;
}else
{
ReadMouse(scrx,scry,b);
if (b==1)
{
if (CRect(x0,y0,x1,y1).PtInRect(CPoint(scrx,scry)))
{
newPt = CPoint((scrx-x0)/m_nCellX,(scry-y0)/m_nCellY);
if (newPt.x>=MAX_X) newPt.x=MAX_X-1;
if (newPt.y>=MAX_Y) newPt.y=MAX_Y-1;
if (m_nBoard[newPt.x][newPt.y]==0)
{
m_nBoard[newPt.x][newPt.y]=m_pCurrentPlayer->WhichPlayer();
redraw = TRUE;
m_bIsEmpty = FALSE;
m_nextlPt = m_lastPt;
m_lastPt = newPt;
}
}
}
}


if (newPt.x!=-1 && newPt.y!=-1 && redraw)
{
HidePoint();
if (m_pCurrentPlayer->WhichPlayer() == 1)
{
putimage(x0 newPt.x*m_nCellX 1,y0 newPt.y*m_nCellY 1,
m_pImage1,COPY_PUT);

}
else
putimage(x0 newPt.x*m_nCellX 1,y0 newPt.y*m_nCellY 1,
m_pImage2,COPY_PUT);

来源:十度教育
作者:
关键字:用C,编写,五子棋游戏
发表日期:2006-6-13 17:01:16

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:迷宫   下一篇:个用C 编写的五子棋游戏(2)


共11页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [118 :>

2008-11-23 20:58:57
本文的相类似文章
  • VB简单计算函数的编写过程
  • VB编写键盘记录器
  • 用VB编写键盘拦截程序
  • VB下如何编写CRC校验程序
  • VB编写入侵监听程序
  • VB编写一个加密软件
  • COM程序编写入门(全文-1)
  • 怎样编写CSS?
  • 巧用COPY命令加密文本文件
  • 你学会正确地使用CD刻录机了吗
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com