mac OS X 下ft_rich游戏的重构

      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 Ctxt
	BG_BRIGHT = 0
	BG_WHITE = 0
	FG_RED = 0
	FG_BRIGHT = 0
	FG_GREEN = 0
	def method_missing(name,*arg)
		case name
			when :color
				printf(arg[0])
			else
				puts "unknow func for Ctxt..."
		end
	end
end

     不管啥颜色,一律白色printf,几个常量统统忽略。

    在终端下执行,发现中文是乱码,遂将终端使用偏好中的文字编码改为GBK,

正常鸟。

    现在添加Mac OS X终端的彩色显示功能。下载highline gem:

    gem list --remote highline

    gem install highline

    在源代码中包含 :

    require 'highline/import'

    重构Ctxt类如下:

    

class Ctxt
	@@ct = HighLine.new

	def color(msg,ft)
		printf @@ct.color(msg,ft)
	end
end

    接下来为了以后的扩展性和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)
		else
			raise "unknow type!!!"
	end
  end

    保存,运行,一切OK鸟!!!:)

    

时间: 2024-12-03 06:28:51

mac OS X 下ft_rich游戏的重构的相关文章

《PHP和MySQL Web开发从新手到高手(第5版)》一1.3 在Mac OS X下安装

1.3 在Mac OS X下安装 PHP和MySQL Web开发从新手到高手(第5版)在本节中,我们将介绍如何在一台运行Mac OS X version 10.5(Leopard)的Mac计算机上开始运行一个安装了PHP和MySQL的Web服务器.如果你使用的并不是Mac计算机,可以跳过本节. Mac OS X将Apache和PHP都作为标准安装组件来安装,它是唯一这么做的面向消费者的OS(实际上,它还附带了Ruby.Python和Perl,所有这些都是流行的Web编程语言).也就是说,只需要几

Mac OS X下MySQL 5.0的默认连接数

这段时间mysql上的开发过程中崩溃2次,一直没有找到原因,由于使用macbook已经内存满配,top查看也无异常.sar也正常.mysql日志也没有什么有价值的信息.本文介绍其解决方法:修改Mac OS X下MySQL 5.0的默认连接数. 这段时间服务器崩溃2次,一直没有找到原因,今天看到论坛发出的错误信息邮件,想起可能是MySQL的默认连接数引起的问题,一查果然,老天,默认 连接数才100, 怎么够呀,在网上找了半天资料,有说修改my.cnf的,有说修改safe_mysqld,试了,前者无

Mac OS X 下安装Nginx问题详解

  Mac OS X 下安装Nginx问题碰到的朋友不多,因为在mac系统安装nginx环境不实用了,不过有人碰到了我们就一起来看看,说不定对你会有帮助呢. 我是通过brew install nginx的,前面都很顺利, nginx常用命令: nginx -s stop/quit/reopen/reload 用ln -s 命令创建个软件链接于 /usr/sbin/ 下以方便操作. 直接搞个server看看效果,代码如下: server { listen 80; server_name www.g

mac os X下开启root用户

    在mac os X下使用su指令想暂时切入root用户下,输入密码会发现无法 登陆root用户.这是因为默认情况下root用户密码未被设置,我们先用passwd 命令来设置一下: passwd root Changing password for root. Old Password: New Password: Retype New Password: passwd: authentication token failure 提示失败,用sudo吧: sudo passwd root

ubuntu和mac OS X下另一种使用QQ的方法

    在ubuntu可以到pidgin官网下载http://www.pidgin.im,然后再安装插件 pidgin-lwqq即可,步骤为: sudo add-apt-repository ppa:lainme/pidgin-lwqq sudo apt-get update sudo apt-get install libpurple0 pidgin-lwqq     而在mac OS X下可以使用pidgin,也可以使用adium,可以到官网https://adium.im下载.

Mac OS X下的动态链接库

动态链接库已成为现代操作系统的基本组成部分,比如Windows下数不清的.DLL文件和 臭名昭著的DLL地狱,Linux下成千上万的.so文件.Mac OS X下也有许多动态链接库, 他们的扩展名是.dylib. .dylib是Mach-O格式,也就是Mac OS X下的二进制文件格式.Mac OS X提供了一系列 工具,用于创建和访问动态链接库. 编译器/usr/bin/cc,也就是gcc了,Apple改过的.这个主要还是一个壳,去调用其他 的一些部件.当然同时还有/usr/bin/c++,等

《PHP和MySQL Web开发从新手到高手(第5版)》一一1.3 在Mac OS X下安装

1.3 在Mac OS X下安装 PHP和MySQL Web开发从新手到高手(第5版) 在本节中,我们将介绍如何在一台运行Mac OS X version 10.5(Leopard)的Mac计算机上开始运行一个安装了PHP和MySQL的Web服务器.如果你使用的并不是Mac计算机,可以跳过本节. Mac OS X将Apache和PHP都作为标准安装组件来安装,它是唯一这么做的面向消费者的OS(实际上,它还附带了Ruby.Python和Perl,所有这些都是流行的Web编程语言).也就是说,只需要

mac-如何在Mac os x下实现8086汇编?

问题描述 如何在Mac os x下实现8086汇编? 在学习汇编语言,想练练手,除了使用虚拟机,有没有什么其他的办法? 解决方案 你Mac机器是什么架构的,汇编出来应该就是这个架构的吧,xcode编译器应该就行我猜测 解决方案二: Mac OS X下的动态链接库 解决方案三: 网站啊,很多可以虚拟运行的网站

mac os x-关于 Mac OS X 下使用 OpenGL 库 SOIL 时候出现的链接错误

问题描述 关于 Mac OS X 下使用 OpenGL 库 SOIL 时候出现的链接错误 我刚开始学习 OpenGL,想请教一下大家关于使用 SOIL 加载图片的问题,我在 Mac 上按要求下载并 make.make install 了 SOIL,但是使用的时候还是报了 g++ create_window.cpp -I/usr/local/include -I/opt/X11/include -L/usr/local/lib -I/opt/X11/lib -w -framework OpenGL