[#54640] bRuby? — Austin Ziegler <austin@...>

Can anyone explain to me what Yuya's package bRuby

16 messages 2002/11/01
[#54646] Re: bRuby? — Matt Gushee <mgushee@...> 2002/11/01

On Fri, Nov 01, 2002 at 11:40:51AM +0900, Austin Ziegler wrote:

[#55128] Re: bRuby? (Yet another Ruby parser) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/07

In article <20021107151904lBE13F@ohmsha.co.jp>,

[#54839] rubyconf notes — Pat Eyler <pate@...>

On Saturday Night, I recommended that attendees of Ruby Conf send off

38 messages 2002/11/04
[#54881] Matz Roundtable Summary (was Re: rubyconf notes) — Paul Duncan <pabs@...> 2002/11/05

Below is my pieced together summary of matz's roundtable summary. It's

[#54862] A vision for Parrot — Daniel Pfeiffer <occitan@...>

Hi,

80 messages 2002/11/04

[#54889] PGP on the list (was: Re: Matz Roundtable Summary) — Eric Hodel <drbrain@...7.net>

Paul Duncan (pabs@pablotron.org) wrote:

12 messages 2002/11/05

[#54906] Win32 support issues — "Gavin Sinclair" <gsinclair@...>

<quote source="roundtable">

14 messages 2002/11/05

[#55091] PGP signatures — "Gavin Sinclair" <gsinclair@...>

From: "Paul Duncan" <pabs@pablotron.org>

18 messages 2002/11/07

[#55149] Making Instace Variables Private/Local — William Djaja Tjokroaminata <billtj@...>

Hi Matz,

27 messages 2002/11/07

[#55221] CPAN Style installer — Tom Clarke <tom@...2i.com>

Hi all,

30 messages 2002/11/08
[#55233] Re: CPAN Style installer — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/08

In article <Pine.LNX.4.44.0211071926160.7998-100000@localhost.localdomain>,

[#55241] Re: CPAN Style installer — Tom Clarke <tom@...2i.com> 2002/11/08

On Fri, 8 Nov 2002, Phil Tomson wrote:

[#55290] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

>

[#55291] Re: CPAN Style installer — tom <tom@...2i.com> 2002/11/08

On Sat, 9 Nov 2002, JamesBritt wrote:

[#55304] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

> From: tom [mailto:tom@u2i.com]

[#55258] Beginner Question (Idiomatic way to subset an array — "Booth, Peter" <Peter.Booth@...>

I'm wondering if there is a more idiomatic way to do the following?

20 messages 2002/11/08
[#55261] Re: Beginner Question (Idiomatic way to subset an array — ahoward <ahoward@...> 2002/11/08

On Fri, 8 Nov 2002, Booth, Peter wrote:

[#55268] return MyClass.new vs self.type.send :new — ahoward <ahoward@...> 2002/11/08

[#55361] Lighting Rod — Eric Armstrong <eric.armstrong@...>

I love Ruby's smalltalk features. I really do.

16 messages 2002/11/09

[#55369] Why use 'include' — Eric Schwartz <emschwar@...>

As requested, here's a FAQ question & answer on the usage of modules

13 messages 2002/11/09

[#55372] Random idea: Procedural CGI?? — "Hal E. Fulton" <hal9000@...>

I've been musing about something today,

17 messages 2002/11/09

[#55442] Recording of the Ruby segement on LL2 — Yohanes Santoso <ysantoso@...>

Hi all,

22 messages 2002/11/09

[#55461] www.ruby-doc.org — " JamesBritt" <james@...>

Jim Freeze's presentation at RubyConf 2002 mentioned, among other things, the

18 messages 2002/11/10

[#55563] EuRuKo: European Ruby conference — Armin Roehrl <armin@...>

Hi all,

15 messages 2002/11/11

[#55571] ruby-dev summary 18613-18710 — TAKAHASHI Masayoshi <maki@...>

Hi all,

26 messages 2002/11/11
[#55926] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <20021112020739J.maki@rubycolor.org>, TAKAHASHI Masayoshi wrote:

[#55929] Re: ruby-dev summary 18613-18710 — dblack@... 2002/11/15

Hi --

[#55955] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <Pine.LNX.4.44.0211142157370.25867-100000@candle.superlink.net>,

[#55750] Another Newbie question regarding instance variables? — montana <montana@...99.bsd.st>

The value of an instance variable is only available to the instance of the class, whereas the value of the class variable is available to all instances of the class? Is this correct?

10 messages 2002/11/13

[#55815] RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...>

I finally got the slides online from Rich Kilmer's FreeRIDE presentation at

40 messages 2002/11/14
[#55828] Re: RubyConf 2002 Slides for FreeRIDE Presentation — " JamesBritt" <james@...> 2002/11/14

>

[#55829] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...> 2002/11/14

JamesBritt wrote:

[#56087] Re: RubyConf 2002 Slides for FreeRIDE Presentation — Robert McGovern <tarasis@...> 2002/11/17

Curt Hibbs wrote:

[#56088] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Rich Kilmer" <rich@...> 2002/11/17

Extensibility IN RUBY was the key thing for us. We wanted the IDE to be

[#55818] regex help — "Shashank Date" <sdate@...>

Using ruby 1.7.3 (2002-10-12) [i386-mswin32] on Win XP (Home)

14 messages 2002/11/14

[#55842] Ruby equivalent to Python's map()? — wolfoxbr@... (Roberto Amorim)

Hi...

18 messages 2002/11/14

[#56045] Not really a ruby question, but this is a smart group. Win32 file.write timing. — jcb@... (MetalOne)

I am trying to write non-compressed video to a file at 40 fps.

16 messages 2002/11/16

[#56119] ruby-dev summary 18711-18810 — Minero Aoki <aamine@...>

Hi all,

34 messages 2002/11/18

[#56131] identing ruby in vim — Maur兤io <briqueabraque@...>

Hi,

14 messages 2002/11/18

[#56158] install.rb/setup.rb question — ptkwt@...1.aracnet.com (Phil Tomson)

I want to install a script that will be run as an executable which isn't a

26 messages 2002/11/18

[#56250] Need help dynamically creating classes. — pgregory@... (Paul Gregory)

I have a system at the moment where I create 'things' based on a base

11 messages 2002/11/19

[#56300] untainted, unfrozen, honest-to-god session data! — "Chris" <nemo@...>

Hello,

12 messages 2002/11/20

[#56376] Interpreted vs compiled [FAQ] defining methods anywhere — Daniel Carrera <dcarrera@...>

Hello,

13 messages 2002/11/21
[#56378] Re: [FAQ] Interpreted vs compiled [FAQ] defining methods anywhere — "Iain 'Spoon' Truskett" <spoon-dated-1039065493.b360fd@...> 2002/11/21

* Daniel Carrera (dcarrera@math.umd.edu) [21 Nov 2002 16:07]:

[#56388] Ruby is too slow — jcb@... (MetalOne)

I have been writing some image processing algorithms that run on incoming

37 messages 2002/11/21

[#56440] Multiple constructors? — christopher.j.meisenzahl@...

18 messages 2002/11/21

[#56469] The ultimate Application — "Dat Nguyen" <thucdat@...>

13 messages 2002/11/21

[#56593] Ruby idom needed — Robert Cowham <rc@...>

What's the best ruby idiom for the following Perl:

23 messages 2002/11/24

[#56633] Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...>

Hi,

56 messages 2002/11/25
[#56679] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/25

Hi,

[#56694] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

From: "Simon Cozens" <simon@simon-cozens.org>

[#56695] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[#56722] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Austin Ziegler <austin@...> 2002/11/26

On Tue, 26 Nov 2002 09:21:48 +0900, Daniel Carrera wrote:

[#56725] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

> It's applicable to a small subset of the total set of classes.

[#56726] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

[#56729] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[snip]

[#56738] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56744] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

> You're not changing the letter 'a' itself; you're

[#56764] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Hal E. Fulton" <hal9000@...> 2002/11/26

----- Original Message -----

[#56807] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

OK... I get it... I understood your argument (although

[#56812] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/26

Jason Persampieri <helgaorg@yahoo.com> wrote:

[#56814] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56665] FXRuby on Mandrake 8.2 — Ludo <coquelle@...>

Hi, could someone help a beginner rubyer please ?

15 messages 2002/11/25

[#56708] Default value of property — Tim Bates <tim@...>

I have an object, with a method that returns another object, or nil under

20 messages 2002/11/26

[#56719] each_with_index & collect_with_index? — Tim Bates <tim@...>

Array.each (and others) have an alternative .each_index which passes the index

34 messages 2002/11/26
[#56734] Re: each_with_index & collect_with_index? — dblack@... 2002/11/26

Hi --

[#56800] Re: each_with_index & collect_with_index? — Gordon Miller <gmiller@...> 2002/11/26

> As for the second.... I recently appointed myself President of

[#56845] Re: each_with_index & collect_with_index? — why the lucky stiff <ruby-talk@...> 2002/11/27

Gordon Miller (gmiller@promisemark.com) wrote:

[#56849] Re: each_with_index & collect_with_index? — Jason Persampieri <helgaorg@...> 2002/11/27

> It would be really cool if, instead of having a

[#56851] Re: each_with_index & collect_with_index? — dblack@... 2002/11/27

Hi --

[#56772] RCR: Stack, Queue alias methods in Array — Martin DeMello <martindemello@...>

Rationale: Ruby arrays can be easily used as stacks and queues, but it's

46 messages 2002/11/26
[#56793] Re: RCR: Stack, Queue alias methods in Array — matz@... (Yukihiro Matsumoto) 2002/11/26

Hi,

[#56797] Re: RCR: Stack, Queue alias methods in Array — Nikodemus Siivola <tsiivola@...> 2002/11/26

[#56967] call-by-reference problem again — Shannon Fang <xrfang@...>

Hi there,

23 messages 2002/11/27
[#56970] Re: call-by-reference problem again — William Djaja Tjokroaminata <billtj@...> 2002/11/27

Shannon Fang <xrfang@hotmail.com> wrote:

[#56972] Re: call-by-reference problem again — Dave Thomas <Dave@...> 2002/11/27

William Djaja Tjokroaminata <billtj@y.glue.umd.edu> writes:

[#57146] Ruby ++, the one element and generators — "MikkelFJ" <mikkelfj-anti-spam@...>

21 messages 2002/11/30

[#57172] Numerical Ruby — Olivier Saut <Olivier.Saut@...>

Hi all,

14 messages 2002/11/30

Sydney Ruby users' group meeting tonight!

From: Harry Ohlsen <harryo@...>
Date: 2002-11-20 23:25:26 UTC
List: ruby-talk #56360
Hi People,

Well, I've been very slack ... as usual, some are saying :-).  I've been 
studying for exams, so my mind's been elsewhere recently.

I went to the trouble of organising a separate mailing list earlier this week, 
waited a while to give people a chance to subscribe and then forgot to send a 
reminder to it !!

Anyway, tonight is the monthly meeting.  As usual, it's upstairs at the 
Woolloomooloo Bay Hotel at 6pm.

Martin Stannard made the suggestion that we could set up a simple programming 
problem and discuss how different people went about attacking it.  Since I've 
left this so late, it's probably not going to be much use for tonight, but 
I've attached some code and a URL at the end, if people feel like having a 
go.

My thought was that we could use the things that were discussed at the 
conference earlier this month as a starting point.  Things like FreeRIDE, 
TaskMaster, Perl idioms in Ruby, NARF, Parrot, web scripting using 
continuations, YAML.

Also, Martin said that if we can't find anything else to discuss, he'll go 
into some of the details of his horse genealogy system.

I'm not sure whether I'll make it this month due to study.  If not, I'll see 
you all at the next meeting.

At least I won't get drunk and ask again what weak references are used for :-)

As promised, here's the URL for the problem Martin suggested ...

       http://www.cs.ualberta.ca/~darse/rsbpc.html

It's a roshambo (ie, "paper, rock, scissors") game where you write your own 
player and compete against others.  The attached code is a Ruby 
implementation that Martin wrote.

Cheers,

Harry O.

Attachments (1)

roshambo.rb (3.84 KB, text/x-c++src)
$PossibleMoves = %w{rock paper scissors}
$Rock = 0
$Paper = 1
$Scissors = 2
$Round = 0

def biased_roshambo(prob_rock, prob_paper)
	throw = rand()
	return $Rock if throw < prob_rock
	return $Paper if throw < prob_rock + prob_paper
	$Scissors
end

class Player

	attr_reader :history, :currentMove, :name
	attr_accessor :totalWins, :rounds

	def initialize
		clear
		@totalWins = 0
		@rounds = 0
		@name = self.class.to_s
	end

	def clear
		@history = []
		@currentMove = nil
	end

	def move(opponent)
		@rounds += 1.0
		@currentMove = make_move(opponent)
	end

	def record_move
		@history.push(@currentMove)
	end

end

class RockPlayer < Player

	def make_move(opponent)
		$Rock
	end

end

class RandPlayer < Player

	def make_move(opponent)
		rand($PossibleMoves.size)
	end

end

class R226Player < Player

	def make_move(opponent)
		biased_roshambo(0.2, 0.2)
	end

end

class RotatePlayer < Player

	def make_move(opponent) 
		return rand(3) if @history.last.nil? 
		(@history.last + 1).modulo(3)
	end

end

class CopyPlayer < Player

	def make_move(opponent) 
		return rand(3) if !opponent.history.last 
		(opponent.history.last + 1).modulo(3)
	end

end


class SwitchPlayer < Player

	def make_move(opponent)
		return rand(3) if @history.last.nil?
		return biased_roshambo(0.0, 0.5) if history.last == $Rock
		return biased_roshambo(0.5, 0.0) if history.last == $Paper
		return biased_roshambo(0.5, 0.5)
	end

end

class FreqPlayer < Player

	def make_move(opponent)
		i, r, p, s = 0, 0, 0, 0
		$Round.times do |t|
			case opponent.history[t]
			when $Rock then r += 1
			when $Paper then p += 1
			when $Scissors then s += 1
			end
		end
		return $Paper if r > p && r > s
		return $Scissors if p > s
		return $Rock
	end

end

class Freq2Player < Player

	def initialize
	    super
	    @i, @r, @p, @s = 0, 0, 0, 0
	end

	def make_move(opponent)
	    if !opponent.history.last.nil?
		    opp_last = opponent.history.last
		    case opponent.history.last
		    when $Rock then @r += 1
		    when $Paper then @p += 1
		    when $Scissors then @s += 1
		    end
	    end
	    return $Paper if @r > @p && @r > @s
	    return $Scissors if @p > @s
	    return $Rock
	end

end

class SwitchALotPlayer < Player

	def make_move(opponent)
		return rand(3) if @history.last.nil?
		return biased_roshambo(0.12, 0.44) if @history.last == $Rock
		return biased_roshambo(0.44, 0.12) if @history.last == $Paper
		return biased_roshambo(0.44, 0.44) if @history.last == $Scissors
	end

end

$Players = [RockPlayer.new, RandPlayer.new, R226Player.new, CopyPlayer.new, RotatePlayer.new, SwitchPlayer.new, FreqPlayer.new, Freq2Player.new, SwitchALotPlayer.new, HarryO.new]

class Tournament

	def run
		$Players.each do |p1|
			$Players.reverse.each do |p2|
				if p1 != p2
					battle(p1, p2, 1000)
				end
			end
		end
		$Players.sort! { |p1, p2| p2.totalWins <=> p1.totalWins }
		puts "-----------------------------------------"
		$Players.each do |p| 
			print "#{p.name.ljust(20)} #{p.totalWins.to_s.rjust(6)}"
			puts "  #{p.totalWins/p.rounds*100}"
		end
	end

	def winner(p1, p2)
		return "tie" if p1 == p2
		return "p1" if p1 == $Rock && p2 == $Scissors
		return "p2" if p2 == $Rock && p1 == $Scissors
		return "p1" if p1 == $Paper && p2 == $Rock
		return "p2" if p2 == $Paper && p1 == $Rock
		return "p1" if p1 == $Scissors && p2 == $Paper
		return "p2" if p2 == $Scissors && p1 == $Paper
	end

	def do_round(p1, p2)
		victor = winner(p1.move(p2), p2.move(p1))
		p1.record_move
		p2.record_move
		victor
	end

	def battle(p1, p2, rounds)
		puts "Battle between #{p1.name} and #{p2.name}"
		p1wins = 0
		p2wins = 0
		p1.clear
		p2.clear
		rounds.times do |t|
			victor = do_round(p1, p2)
			case victor
			when 'p1' 
				p1wins += 1
				p1.totalWins += 1
			when 'p2' then 
				p2wins += 1
				p2.totalWins += 1
			end
			$Round = t 
		end
		puts "#{p1.name} won: [#{p1wins}] #{p2.name} won: [#{p2wins}]"
	end

end

t = Tournament.new
t.run


In This Thread

Prev Next