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鸟!!!:)


    

相关文章
|
4月前
|
「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏
本篇将带你实现一个简单的数字猜谜游戏。用户输入一个数字,应用会判断是否接近目标数字,并提供提示“高一点”或“低一点”,直到用户猜中目标数字。这个小游戏结合状态管理和用户交互,是一个入门级的互动应用示例。
119 7
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
549 2
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
85 0
MAC OS X 硬盘安装详细分解教程
MAC OS X 硬盘安装详细分解教程
289 1
VirtualBox虚拟机安装Mac OS X Lion系统详解
VirtualBox虚拟机安装Mac OS X Lion系统详解
410 1
Mac pro升级 MacOS 10.15 Catalina 后根目录是只读的, Recovery OS不能访问
Mac pro升级 MacOS 10.15 Catalina 后根目录是只读的, Recovery OS不能访问
204 0
|
10月前
|
史上最全:MAC OS X 命令行汇总
史上最全:MAC OS X 命令行汇总
254 0
HP4230s笔记本安装mac os总结(原创)
HP4230s笔记本安装mac os总结(原创)
177 0
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
135 10

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等