最近用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
2008-11-22 23:15:28, 923 reviews, comment
send to mailbox
[转载]Using temporary files in Ruby - Tempfile.new
[转载]5个有用的ruby gems
关于yield的使用
进程和线程
服务器监控小脚本
Ruby和Erlang的交互
json_formatter
少女,不点下广告吗!
all by shitou
blog comments powered by Disqus