shitou's blog 
Home About Feed | 十人族 MIX BOY 塌客

Category "ruby"

22
Nov

ruby写的一个随机发扑克类 by shitou

2

最近用ruby写了一个随机发扑克的类, 可以指定参加的player个数

 

class Card54
  
  @@given = [] #the cards already given
  @@player_num = nil #players number
  @@player_cards = {} #cards players get
  @@now_turn = 0 #now player's turn
  
  @@cards = (1..54).to_a #total cards
  
  def initialize(player_num=4)
    @@player_num = player_num
    @@cards.length.times { run }
  end
  
  def run
    raise 'no card avaiable' if @@given.length == @@cards.length
    card = rand_card(@@cards - @@given)
    @@given << card
    @@now_turn = 0 if @@now_turn == @@player_num
    give @@now_turn.next, card
    @@now_turn = @@now_turn.next
  end
  
  def player_cards
    p @@player_cards
  end
  
  private
  def rand_card c
    c[rand(c.length)]
  end
  
  def give turn, card
    if @@player_cards[turn].nil?
      @@player_cards[turn] = card.to_s
    else
      @@player_cards[turn] = @@player_cards[turn] + ',' + card.to_s
    end
  end
end
 
#require 'card54'
#play = Card54.new 4
#play.player_cards

这样就支持Card54.new.player_cards了

 

class Card54
  
  attr_reader :player_cards, :player_num
  
  def initialize(player_num=4)
    @given = [] #the cards already given
    @player_cards = {} #cards players get
    @now_turn = 0 #now player's turn
    @cards = (1..54).to_a #total cards
    
    @player_num = player_num
    @cards.length.times { run }
  end
  
  def run
    raise 'no card avaiable' if @given.length == @cards.length
    card = rand_card(@cards - @given)
    @given << card
    @now_turn = 0 if @now_turn == @player_num
    give @now_turn.next, card
    @now_turn = @now_turn.next
  end
  
  private
  def rand_card c
    c[rand(c.length)]
  end
  
  def give turn, card
    if @player_cards[turn].nil?
      @player_cards[turn] = card.to_s
    else
      @player_cards[turn] = @player_cards[turn] + ',' + card.to_s
    end
  end
end

 

Tags: ruby

2008-11-22 23:15:28, 599 reviews

send to mailbox

Your email:

Related Posts

[转载]Using temporary files in Ruby - Tempfile.new

[转载]5个有用的ruby gems

关于yield的使用

进程和线程

服务器监控小脚本

Ruby和Erlang的交互

2 Responses

游客

2008-11-24 11:53:57

用的都是类变量?所以,不支持这种用法?2.times do play = Card54.new 4 play.player_cards end-- ashchan

shitou

2008-11-24 12:27:57

说的是,已经修改了

 

TOP

Tags

tenerer MooseFS gearman-ruby Gearman MongoDB MochiChat TCP U-ka saegusa IN db command Mai Kuraki Norah Jones log iPhoneException ACG Mac Safari objective-c CouchDB LVS AJAX debian 推荐 AMQP google mail bug gettext Erlang 北京 iptables 架构 tips mysql backup function 我看 postfix 监控 SEO cache Etag memcache thread 进程 线程 无锡 yield file column mixboy xml rss gems ruby shitou shell lighttpd 安全 csrf 公司 nginx linux 模块 apache webserver 朋友 大学 生活 尼古拉斯凯奇 movie 文件同步 笑笑 歌词 auto complete plugin rails music ubuntu blog

Category

  • iPhone[17]
  • Erlang[8]
  • google[9]
  • 生活[41]
  • 音乐[11]
  • 电影[11]
  • linux[24]
  • web server[6]
  • mail server[3]
  • cluster[1]
  • system manage[8]
  • ruby[18]
  • ruby on rails[27]
  • 开源[3]

Episode

  • MochiChat
  • iPhoneException
  • shell
  • thread
  • memcache

Recent Comments

  • collectively cartoon valley, virtual http://bii...
  • mess assfilled, soderman http://gerero.centerbl...
  • croydon hoes, unlike http://zewero.centerblog.n...
  • Best Site good looking
  • Wonderfull great site
  • very best job
  • felony okcupid, bins http://biiili.centerblog.n...
  • passage mom tube, animosity http://zewero.cente...
  • this is be cool 8)
  • i'm fine good work

Popular Posts

  • 准备开始学习Erlang了(恶狼, 二郎..)
  • MySQL Innodb备份
  • Lighttpd配置参数
  • iPhone上的HelloWorld终于跑起来了
  • Etag和Expire

Recommended Posts

  • 再次被和谐-_-
  • 十人族: 上线了
  • MooseFS vs. NFS
  • Mochichat新版本上线
  • Gearman
  • MongoDB入门
  • find使用非业余研究
  • MochiChat: 一个基于erlang的web聊天室(beta)
  • /dev/shm和swap的区别
  • gen_tcp的packet参数
  • Beauty - Mai Kuraki
  • awk多维数组
  • We Lost Google.cn
  • Erlang TCP Server例子
  • Mai Kuraki -永远より ながく

Friends' blogs

  • levy
  • sphance
  • andreas

Login

   注册

留言 查看留言

留言

   取消

留言 查看留言


Statistics

  • 访问次数: 88211
  • 今天访问: 7
  • 日志: 187
  • 评论: 517
  • 音乐: 9
  • 用户: 495


 

just DO NOT support IE

close