五子棋游戏的设计.docx
《五子棋游戏的设计.docx》由会员分享,可在线阅读,更多相关《五子棋游戏的设计.docx(9页珍藏版)》请在冰点文库上搜索。
五子棋游戏的设计
五子棋游戏的设计(LINUX)
一.C语言的开发过程:
分析问题:
(1)确定软件功能
(2)可行性分析
(3)开发环境以及工具
(4)总体框架
(5)界面设计与模块划分
(4)总体框架:
(流程图)
(5)模块划分:
(1)初始化五子棋;
(2)五子棋棋盘落子;
(3)判断五子棋的输赢;
(6)界面设计:
设计者自己设计;
二,XWindow的初始化(在LINUX的环境下)
1,XWindow(窗口);
2,XClient;
3,XServier(资源的分配);
4,XWindowprogramming;
(1)建立display至XServier;
(2)获得颜色映射访问,分配颜色;
(3)建立窗口
(4)和视窗管理程序(windowmanager)沟通
(5)处理程序代码
(6)关闭窗口
(7)关闭display
2,建立一个320X240的窗口程序:
#include
#include
#include
#include
#include
#include
intmain(intargc,char**argv)
{
Display*display;//存放关于display的数据
Windowwindow;//父窗口
XSetWindowAttributesattr;//存放窗口的属性
Colormapcolormap;//标准颜色映射
XColorcolor1,color2;//RGB颜色存放
XGCValuesgcvalues;
GCgc;
XSizeHints*size;
char*display_name=NULL;
charkey;
//intscreen_num;
/*--------------建立一个displya的connection--------------*/
display=XOpenDisplay(display_name);//和Xserver之间建立一个连接线(connection)
if(display==NULL)
{
//printf("不能与X服务器建立链接。
\n");
printf("CannotconnecttoXserver.\n");
exit(-1);
}
printf("connecttoXserverOK!
\n");
/*--------------获得了颜色映射的访问--------------*/
colormap=DefaultColormap(display,DefaultScreen(display));//获取屏幕的标准颜色映射
/*--------------开始分配颜色--------------*/
color1.red=color1.blue=color1.green=0xffff;//red、green、blue的围从0到65535
color2.red=color2.green=color2.blue=0x0000;
color1.flags=color2.flags=DoRed|DoGreen|DoBlue;
//分配一个对应到硬件所能提供该RGB值的pixel
XAllocColor(display,colormap,&color1);
XAllocColor(display,colormap,&color2);
/*--------------设定视窗的attribute--------------*/
attr.background_pixel=color2.pixel;//背景颜色
/*--------------建立和设定window的属性--------------*/
window=XCreateWindow(display,XDefaultRootWindow(display),0,0,320,240,2,XDefaultDepth(display,0),InputOutput,CopyFromParent,CWBackPixel,&attr);
/*--------------和windowmanager进行沟通--------------*/
XStoreName(display,window,"helloworld!
!
");
size=XAllocSizeHints();
size->x=100;size->y=100;size->width=320;size->height=240;size->flags=USPosition|USSize;
XSetNormalHints(display,window,size);
/*--------------MappingWindow正式映射到显示器画面上--------------*/
XMapWindow(display,window);
XFlush(display);
printf("DispWindow!
\n");
getchar();
/*--------------建立并设定GC--------------*/
gc=XCreateGC(display,window,0,&gcvalues);
//把获得的颜色配置给一些GC(图像上下文)作为前景色和背景色
XSetForeground(display,gc,color1.pixel);
XSetBackground(display,gc,color2.pixel);
/*--------------XWindowClient程序处理代码--------------*/
XDrawLine(display,window,gc,10,10,20,20);//划线
XFlush(display);
XDrawPoint(display,window,gc,8,10);
XFlush(display);
//颜色设置
color1.red=0xffff;color1.green=0x0000;color1.blue=0xffff;
XAllocColor(display,colormap,&color1);
XSetForeground(display,gc,color1.pixel);
XDrawArc(display,window,gc,50,50,15,15,0,360*64);
XFlush(display);
getchar();
/*--------------关闭视窗--------------*/
XDestroyWindow(display,window);
XFlush(display);
printf("ClosewindowOK!
\n");
/*--------------关闭连接到X服务器的链接--------------*/
XCloseDisplay(display);
printf("ClosedisplayOK!
\n");
}
三,五子棋的设计
(1)初始化五子棋
1,初始化棋盘数组
2,消除视窗内容(XClearWindow(display,window))
3,画棋盘XDrawLine()XDrawRectangle()XFillRectangle()
4,信息显示XDrawString()对界面进行设计
(2)创建线程1,2
线程1(让棋子闪烁)
1,读取HangLiePlayer
2,显示棋子
3,延时
4,消隐棋子
5,延时
6,设置标志,等待线程退出
线程2(扫描按键)
1,等待按键
2,根据按键值修改HangLiePlayer
3,确认按键,记录数据,判断输赢,修改玩家
4,设置标志,等待线程退出
四,整个项目的程序清单
/************************************************************
*版权信息:
2011-1-15-20-42
*文件名:
五子棋游戏
*摘要:
*当前版本信息:
*作者:
霍小波
*完成功能:
*完成时间:
20011-1-15-20
**************************************************************/
/*************************************************************
头文件
**************************************************************/
#include
#include
#include
#include