Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as Ruby by -ku ( 14 years ago )
require 'jcode'
require 'rubygems'
require 'facets'
require 'singleton'
require 'irb/completion'
require 'mathn'

# Читать лучше с конца. ;)


def справка
  puts <<HELP

Пример:

x = Фурь["Вася", Тигр, Самец]
y = Фурь["Настя", Лев, Самка]
x.предложи_пойиффаться y
x.тебе_понравилось?
y.тебе_понравилось?

А еще есть команды "справка", "игра1" и "игра2".

HELP
end


class Range
  
  def случайное_число()
    return self.begin + (self.end - self.begin) * rand
  end
  
end


class Object
  
  alias есть is_a?
  
  def не_есть(x)
    not есть(x)
  end
  
end


class Array
  
  alias случайный_выбор choice
  
end


module Male
  
  def предлагает_пойиффаться(самке)
    самка = самке
    if самка.не_есть Самка then сказать "Что!? Я что, по-твоему, похож на гея!?"; return; end
    сказать "Как тебя зовут?"
    имя_самки = самка.как_тебя_зовут?
    сказать "А меня #{имя}."
    сказать "#{имя_самки}, давай пойиффаемся?"
    согласна_пойиффаться = самка.давай_пойиффаемся? со_мной
    if согласна_пойиффаться then [самка, я].йиффаются; end
  end
  
  alias предложи_пойиффаться предлагает_пойиффаться
  
end

def Самец; Male; end


class Module
  
  alias это is
  
end


module Female
  
  def предлагает_пойиффаться(самцу)
    самец = самцу
    if самец.не_есть Самец then сказать "ЧТО!? Да пошел ты, извращенец! Я что, похожа на лесбиянку!?"; return; end
    сказать "Что!? Еще чего! Я приличная самушка!"
  end
  
  alias предложи_пойиффаться предлагает_пойиффаться
  
end

def Самка; Female; end

  
module Species
  
  abstract :женское_название_вида
  
  abstract :мужское_название_вида
  
end

def Вид; Species; end


module Tiger 
  
  это Вид
  
  def женское_название_вида
    "Тигрица"
  end
  
  def мужское_название_вида
    "Тигр"
  end
  
end

def Тигр; Tiger; end


module Lion 
  
  это Вид
  
  def женское_название_вида
    "Львица"
  end
  
  def мужское_название_вида
    "Лев"
  end
  
end

def Лев; Lion; end


module Horse 
  
  это Вид
  
  def женское_название_вида
    "Кобылица"
  end
  
  def мужское_название_вида
    "Жеребец"
  end
  
end

def Лошадь; Horse; end


module Wolf 
  
  это Вид
  
  def женское_название_вида
    "Волчица"
  end
  
  def мужское_название_вида
    "Волк"
  end
  
end

def Волк; Wolf; end


module Angel 
  
  это Вид
  
  def женское_название_вида
    "Ангелесса"
  end
  
  def мужское_название_вида
    "Ангел"
  end
  
end

def Ангел; return Angel; end


class Furry
  
  def initialize(имя, вид, пол)
    self.extend пол
    self.extend вид 
    @имя = имя
    @качество_последнего_йиффа = nil  # По 10-бальной шкале.
  end
  
  def self.[](*args)
    return Фурь.new(*args)
  end
  
  def как_тебя_зовут?
    сказать "#{имя}."
    return имя
  end
  
  def говорит(что)
    puts "#{имя}: #{что}"
  end
  
  def давай_пойиффаемся?(с_кем)
    if maybe(0.5) then
      сказать "Хм-хм, давай! :)"
      согласен
    else
      сказать "Нет!!! >:o"
      не согласен
    end
  end
  
  def пойиффался_с(фурь, качество_йиффа)
    @качество_последнего_йиффа = качество_йиффа
  end
  
  alias пойиффалась_с пойиффался_с
  
  def тебе_понравилось?
    case @качество_последнего_йиффа
    when nil then сказать "Что понравилось?"
    when 0...3 then сказать "Нет, это было ужасно... v_v"
    when 3...5 then сказать "Нет, не очень... :("
    when 5...7 then сказать "Ну, как сказать..."
    when 7...9 then сказать "Да, это было чудесно! ^_^"
    when 9..10 then сказать "Да-а-а-а! Это было просто великолепно! Я #{(я.есть Самка) ? ("влюбилась в него") : ("влюбился в неё")}!"
    end
    return @качество_последнего_йиффа
  end
  
  def to_s
    "#{(я.есть Самка) ? (женское_название_вида) : (мужское_название_вида)} #{имя}"
  end
  
  attr_reader :имя
  
  private
  
  alias сказать говорит
  
  def я
    self
  end
  
  alias есть is_a?
    
  alias меня я
  
  alias со_мной я
  
  def согласен
    true
  end
  
  alias согласна согласен
  
  def не(x)
    not x
  end
  
end

def Фурь; Furry; end


class Array
  
  def йиффаются()
    puts "*** #{самец} и #{самка} занимаются йиффом."
    качество_йиффа = (1 - (0..1).случайное_число ** 4) * 10
    самец.пойиффался_с(самка, качество_йиффа)
    самка.пойиффалась_с(самец, качество_йиффа)
  end
  
  def самец
    self.find { |x| x.is_a? Самец }
  end
  
  def самка
    self.find { |x| x.is_a? Самка }
  end
  
  def гетеро?
    самец.not_nil? and самка.not_nil?
  end
  
end


def самочьи_имена
  %W{Лиза Лина Лена Юля Кристина Ольга Настя Наталья}
end


def имя_самки
  самочьи_имена.случайный_выбор
end


def самцовые_имена
  %W{Лёша Саша Гена Гриша Юра Миша Павел Борис Лев Андрей Антон}
end


def имя_самца
  самцовые_имена.случайный_выбор
end


class RandomFurries
  
  is Enumerable
  
  def each
    loop do
      пол = (maybe 0.5) ? (Самец) : (Самка)
      вид = [Лошадь, Волк, Лев, Тигр].случайный_выбор
      имя = (пол == Самец) ? (имя_самца) : (имя_самки)
      yield Фурь[имя, вид, пол]
    end
  end
  
end

def разные_фури
  RandomFurries.new
end


class Array
  
  alias комбинации_по combination
  
end


class Integer
  
  def случайных_фурей
    фури = разные_фури.take n
  end
  
  def n
    return self
  end
  
end


def конец_игры
end


def игра1
  Арчи = Фурь["Арчи", Ангел, Самец]
  Арчи.говорит "Со сколькими фурями вы хотите играть?"
  n = gets.to_i
  фури = n.случайных_фурей
  пары = фури.комбинации_по 2
  пары.each do |пара|
    фурь1 = пара[0]; фурь2 = фурю2 = пара[1]
    Арчи.говорит "#{фурь1}, спроси, не хочет ли #{фурь2} заняться с тобой йиффом?"
    фурь1.предлагает_пойиффаться фурю2
  end
  фури.each do |фурь|
    Арчи.говорит "#{фурь}, тебе понравилось?"
    фурь.тебе_понравилось?
  end
  конец_игры
end


def игра2
  Джон = Джону = Фурь["Джон", Лев, Самец]
  Лиза = Лизе = Фурь["Лиза", Лев, Самка]
  Джон.предложи_пойиффаться Лизе
  Джон.тебе_понравилось?
  конец_игры
end


справка

 

Revise this Paste

Parent: 16930
Your Name: Code Language: