mac OS X 下ft_rich游戏的重构
来源:互联网 发布:mac eclipse自动补全 编辑:程序博客网 时间:2024/05/17 09:03
ft_rich是用ruby写的一个简单得扑克大富翁游戏,逻辑很简单,使用了终端颜色
的特性。
原来是在windows下使用ruby c ext实现的颜色功能,现在在mac OS x下做移植,
因为后者终端直接支持颜色显示,所以没那么复杂了——直接在ruby里使用
gem highline搞定鸟。
windows下的颜色使用的是一个class Ctxt#color方法,Ctxt是在c ext中调用
native win32 api实现的。移植得第一步,我想先跑起来这个程序,带不带颜色无
所谓,于是将Ctxt类更改为如下:
class CtxtBG_BRIGHT = 0BG_WHITE = 0FG_RED = 0FG_BRIGHT = 0FG_GREEN = 0def method_missing(name,*arg)case namewhen :colorprintf(arg[0])elseputs "unknow func for Ctxt..."endendend
不管啥颜色,一律白色printf,几个常量统统忽略。
在终端下执行,发现中文是乱码,遂将终端使用偏好中的文字编码改为GBK,
正常鸟。
现在添加Mac OS X终端的彩色显示功能。下载highline gem:
gem list --remote highline
gem install highline
在源代码中包含 :
require 'highline/import'
重构Ctxt类如下:
class Ctxt@@ct = HighLine.newdef color(msg,ft)printf @@ct.color(msg,ft)endend
接下来为了以后的扩展性和DRY原则,将源代码中的Ctxt常量改为Highline常量,
并将|符号改为+,因为HighLine常量不是整数类型的。
def self.show(card)case type(card)when "小鬼","黑桃","梅花"@@ct.color(card,HighLine::ON_BRIGHT_WHITE+HighLine::BLACK)when "大鬼","红桃","方块"@@ct.color(card,HighLine::ON_BRIGHT_WHITE+HighLine::BRIGHT_RED)elseraise "unknow type!!!"end end
保存,运行,一切OK鸟!!!:)
- mac OS X 下ft_rich游戏的重构
- Mac OS X ft_rich游戏的进一步更改
- MAC OS X下的截图方法
- Mac os X 下的截图快捷键
- Mac OS X 下 App 的卸载
- mac os X下的updatedb
- MAC OS X下的Linux环境
- Mac OS X 下的JDK路径
- Mac OS X背后的故事(十)Mac OS X文件系统的来龙去脉(下)
- MAC OS X 下常用工具
- Mac OS X 下终端下常用的命令
- Mac OS X下的网络编程(socket)的机制
- Mac OS X下的java环境的构建
- MAC OS X 和 Windows下XAMPP 添加虚拟主机+ host重定向
- Mac OS X下MySQL 5.0的默认连接数
- Mac OS X下NetBeans 7.0中文不上屏的解决方法
- Mac OS X下终端(Terminal)常用的命令
- Mac OS X 系统下的安装httpd
- 在MAC电脑上抓取iphone数据包的方法
- 抽奖 bjfu1009 位运算
- ASP在线转flv+所略图+flash在线录制视频
- Visualforce Mobile Tab Considerations
- Flex框架及最详细比较 MX and Spark组件
- mac OS X 下ft_rich游戏的重构
- 设计模式学习之Adapter模式
- 新时尚Windows8开发(40):StreamSocket的使用
- cocos2d-x游戏开发(五)神奇的自动释放
- (李嘉诚)教五年内买车买房——理财篇
- 用Ebay API下架商品的办法
- 将相帅三才怎么用
- Eclipse快捷键
- Asp.Net音频文件上传和播放