资源简介
完成品,很诡异的电脑,一般人都下不赢。是在linux下面用GCC直接编译,在终端执行的。
代码片段和文件信息
#include
#include
#include “curses.h“
#include “zifu.h“
#define CURRENT_ATTRIBUTE C_ATTR(g_style g_fore_colorg_back_color)
#define WHITE 1 //棋子颜色
#define BLACK 0
#define LEFTBORDER 44 //棋盘左边界
#define RIGHTBORDER 108 //棋盘右边界
#define MIDDLE (int)(RIGHTBORDER+LEFTBORDER)/2 //棋盘列数的中点
int div[][2]={{-1-1}{-10}{-11}{01}{11}{10}{1-1}{0-1}}; //方向向量
WINDOW* g_win = NULL;
int g_style = A_BOLD;
/******************************************************************/
/************************功能函数实现******************************/
/******************************************************************/
/*init_graphics***************************************/
/*
函数原型:bool init_graphics(void)
函数功能:初始化屏幕(配置当前地域、进入curses模式、设置输入、启用彩色机制并初始化颜色、隐藏鼠标、初始化背景色并绘制背景)
函数参数:无
函数返回值:false:初始化屏幕失败
true:初始化屏幕成功
用到自定义函数:clear_screen
*/
bool init_graphics(void) //初始化屏幕函数
{
setlocale(LC_ALL ““);
g_win=initscr();
if(g_win==NULL)
{
printf(“call initscr() failed!\n“);
return false;
}
cbreak(); //cbreak()模式开启后,除delete或ctrl等仍被视为特殊字元外一切字元立刻被读取。nocbreak是关闭
noecho(); //用来控制输入的字元是否显示在终端上,系统预设是开启。echo是开启
//keypad(g_winTRUE); //启用curses库中对键盘特殊键的定义
if(has_colors()) //has_colors函数检测你的屏幕的颜色显示能力
{
int ijk;
start_color(); //要启动彩色机制,必须先调用start_color()函数
for(i=0 k=0; i {
for(j=0; j {
init_pair(++k i j); //初始化所有颜色
}
}
}
curs_set(0); //隐藏鼠标
clear_screen(0 0 COLS LINES); //绘制背景
wrefresh(g_win); //刷新缓冲区
return true;
}
/*init_graphics***************************************/
/*exit_graphics***************************************/
/*
函数原型:void exit_graphics(void)
函数功能:退出curses图形界面
函数参数:无
函数返回值:无
用到自定义函数:无
*/
void exit_graphics(void)
{
endwin();
}
/*exit_graphics***************************************/
/*set_attribute***************************************/
/*
函数原型:void set_attribute(void)
函数功能:设置字体
函数参数:无
函数返回值:无
用到自定义函数:无
*/
void set_attribute(void)
{
wattrset(g_win CURRENT_ATTRIBUTE);
}
/*set_attribute***************************************/
/*clear_screen****************************************/
/*
函数原型:void clear_screen(void)
函数功能:清屏函数
函数参数:起始位置坐标(xy)清屏区域长度w清屏区域高度h
函数返回值:无
用到自定义函数:无
*/
void clear_screen(int x int y int w int h)
{
int ij;
for(i=x;i for(j=y;j {
wmove(g_winji);
waddch(g_win‘ ‘);
}
wrefresh(g_win);
}
/*clear_screen***************************************/
/*read_key*******************************************/
/*
函数原型:int read_key(void)
函数功能:读取字符,将键盘按键转换为对应ASICII码
函数参数:无
函数返回值:按键所对应的ASICII码
用到自定义函数:无
*/
int read_key(void)
{
int flags;
int ch;
ch=getc(stdin);
if(ch==27)
{
flags=fcntl(STDIN_FILENO F_GETFL 0);// fcntl():stdin_fileno代表要设置的文件。F_GETFL取得文件描述词状态旗标,来自open()中的flag。
fcntl(STDIN_FILENO F_SETFL flags|O
- 上一篇:CVSD语音编码源代码
- 下一篇:zeba
se,zemax镜头库
相关资源
- vsftpd-2.3.4
- Linux内核链表实现多客户端连接服务器
- linux-FTP客户端(纯C代码)
- Linux设备NDIS调试步骤.rar
- linux-cmd.zh
- Qt写的网络版五子棋游戏源代码
- Qt写的单机版的五子棋游戏源代码
- ftp-0.17-51.1.el6.x86_64.rpm
- 嵌入式ARM ,Linux,GPS导航
- 基于内核的Linux键盘记录器
- 北邮2017研究生linux期末作业源代码
- Linux面试宝典大全+答案
- Linux下安装GTK
- 基于单片机控制的智能五子棋
- linux I2C工具i2c-tools-3.0.2.tar.bz2
- linux进程监控和进程守护程序
- QT串口通讯(linux)
- linux网络编程课程设计
- linux下的实时语音聊天程序源码adpcm编
- 纯C实现语音合成支持windows和linux,亲
- 在Linux下的NAMD安装教程
- 五子棋(简易AI)
- Linux 弹球游戏
- Linux下QT tcp接收Zedboard发送的RGB888视频
- linux PL2303 usb转串口驱动源码
- 自行实现的Linux内核USB鼠标驱动
- 2014马哥linux基础视频教程百度网盘8
- linux下Lammps 成功并行安装教程 高清
- Linux 下gtk+2.0的贪吃蛇帮助文档及其源
- V4L2视频采集与h264编码
评论
共有 条评论