c语言 sdl编写五子棋,SDL 五子棋游戏

1.定义窗口大小,棋盘大小

SDL_GetWindowSize()读取窗口大小,

由于棋盘是15*15格局,上下留白一行,在另外加一个状态行,所以每行高度为width/17

2.图片加载

surface = IMG_Load(file)

texture = SDL_CreateTextureFromSurface(render, surface)

free(surface)

return texture;

3.文字加载

pFont = TTF_OpenFont(FontFile, 20)

surface = TTF_RenderUTF8_Blended(pFont, string, color)

texture = SDL_CreateTextureFromSurface(render, surface)

free(surface)

return texture

4.绘制

SDL_RenderClear(pRenderer); 先清空

SDL_RenderCopyEx(pRenderer, pBackTexture, NULL, NULL, 0, NULL, SDL_FLIP_NONE);拷贝texture

//src_rect//dst//angle//center

SDL_RenderPresent(pRenderer);提交显示

5.绘制接口

SDL_RenderDrawLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2) 画线

SDL_SetRenderDrawColor(SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b, Uint8 a)设置render颜色

SDL_RenderFillRect(SDL_Renderer * renderer, const SDL_Rect * rect)填充颜色

6.事件监听

SDL_QUIT

/* Window events */

SDL_WINDOWEVENT    = 0x200, /**< Window state change */

SDL_SYSWMEVENT,             /**< System specific event */

/* Keyboard events */

SDL_KEYDOWN        = 0x300, /**< Key pressed */

SDL_KEYUP,                  /**< Key released */

SDL_TEXTEDITING,            /**< Keyboard text editing (composition) */

SDL_TEXTINPUT,              /**< Keyboard text input */

SDL_KEYMAPCHANGED,          /**< Keymap changed due to a system event such as an

input language or keyboard layout change.

*/

/* Mouse events */

SDL_MOUSEMOTION    = 0x400, /**< Mouse moved */

SDL_MOUSEBUTTONDOWN,        /**< Mouse button pressed */

SDL_MOUSEBUTTONUP,          /**< Mouse button released */

SDL_MOUSEWHEEL,             /**< Mouse wheel motion */

/* Joystick events */

SDL_JOYAXISMOTION  = 0x600, /**< Joystick axis motion */

SDL_JOYBALLMOTION,          /**< Joystick trackball motion */

SDL_JOYHATMOTION,           /**< Joystick hat position change */

SDL_JOYBUTTONDOWN,          /**< Joystick button pressed */

SDL_JOYBUTTONUP,            /**< Joystick button released */

SDL_JOYDEVICEADDED,         /**< A new joystick has been inserted into the system */

SDL_JOYDEVICEREMOVED,       /**< An opened joystick has been removed */

/* Game controller events */

SDL_CONTROLLERAXISMOTION  = 0x650, /**< Game controller axis motion */

SDL_CONTROLLERBUTTONDOWN,          /**< Game controller button pressed */

SDL_CONTROLLERBUTTONUP,            /**< Game controller button released */

SDL_CONTROLLERDEVICEADDED,         /**< A new Game controller has been inserted into the system */

SDL_CONTROLLERDEVICEREMOVED,       /**< An opened Game controller has been removed */

SDL_CONTROLLERDEVICEREMAPPED,      /**< The controller mapping was updated */

/* Touch events */

SDL_FINGERDOWN      = 0x700,

SDL_FINGERUP,

SDL_FINGERMOTION,

/* Gesture events */

SDL_DOLLARGESTURE   = 0x800,

SDL_DOLLARRECORD,

SDL_MULTIGESTURE,

/* Clipboard events */

SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */

/* Drag and drop events */

SDL_DROPFILE        = 0x1000, /**< The system requests a file open */

SDL_DROPTEXT,                 /**< text/plain drag-and-drop event */

SDL_DROPBEGIN,                /**< A new set of drops is beginning (NULL filename) */

SDL_DROPCOMPLETE,             /**< Current set of drops is now complete (NULL filename) */

/* Audio hotplug events */

SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */

SDL_AUDIODEVICEREMOVED,        /**< An audio device has been removed. */

/* Render events */

SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */

SDL_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */

/** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,

*  and should be allocated with SDL_RegisterEvents()

*/

SDL_USEREVENT    = 0x8000,

原文:http://www.cnblogs.com/chencesc/p/5780950.html

XO_OX 0.0 这些是“XO_OX"的注解。它们会让你全面了解这个游戏,并会说明如何安装它。 什么是“XO_OX"? “XO_OX"又名“五子棋”,五子棋则咸信是流传于古中国的传统棋种之一,至今仍在民间广泛流传,规则相当简单。或许因没有形成一套独立完整的棋种理论及文化内涵,更无制定公平完善的规则来解决黑白平衡问题,一直没有得到发展,所以没有像六博、格五、弹棋等传统棋类流传广泛,导致缺少可考古的棋具或文献,直到流传到外国才规则改革。 不管是哪种五子棋,棋手在先后手的观念、空间的思维及对棋形的理解都十分重要。 游戏规则: * 行棋:一人流轮一著下于棋盘空点处,下后不得移动。 * 胜负:先把五枚或以上己棋相连成任何横纵斜方向为胜。 * 和棋: o 行棋中一方提出和棋,另一方同意则判和棋。 o 棋子落满整张棋盘仍未分出胜负为和棋。 o 一方PASS后另一方下一手也PASS为和棋。 技术规格说明: 1、用C语言调用SDL实现; 2、基于LGPL协议。 3、程序中用到了SDL_image扩展包 如何安装: 1、在终端中运行make 2、在终端中运行make install 如何卸载: make uninstall 历史: 一、2011年8月15日 项目开始,谢红负责图形模块,赵梓辰负责游戏逻辑,吕玉飞负责事件响应,范人豪负责整体架构。 二、2011年8月17日 为了增加游戏的可玩性,项目由圈叉棋升级为五子棋
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值