Skip to content

Instantly share code, notes, and snippets.

@sue445
Created August 14, 2016 16:02
Show Gist options
  • Save sue445/a0af4922adfdba8bc7f2d61ae831a4cc to your computer and use it in GitHub Desktop.
Save sue445/a0af4922adfdba8bc7f2d61ae831a4cc to your computer and use it in GitHub Desktop.
# == Schema Information
#
# Table name: jankens
#
# id :integer not null, primary key
# title :string not null
# enemy_name :string not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Janken < ApplicationRecord
has_many :janken_histories
end
# == Schema Information
#
# Table name: janken_histories
#
# id :integer not null, primary key
# janken_id :integer not null
# title :string
# sazae :integer
# enemy :integer
# sazae_date :string
# enemy_date :string
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_janken_histories_on_janken_id (janken_id)
#
class JankenHistory < ApplicationRecord
belongs_to :janken
scope :sazae_win, -> { where("(sazae = 1 AND enemy = 2) OR (sazae = 2 AND enemy = 3) OR (sazae = 3 AND enemy = 1)") }
scope :enemy_win, -> { where("(sazae = 1 AND enemy = 3) OR (sazae = 2 AND enemy = 1) OR (sazae = 3 AND enemy = 2)") }
scope :aiko, -> { where.not(sazae: nil).where.not(enemy: nil).where("sazae = enemy") }
HANDS = { 0 => "なし", 1 => "グー", 2 => "チョキ", 3 => "パー", 4 => "グッチョッパー" }
def sazae_hand
HANDS[sazae] if sazae
end
def enemy_hand
HANDS[enemy] if enemy
end
def winner
if (sazae == 1 && enemy == 2) || (sazae == 2 && enemy == 3) || (sazae == 3 && enemy == 1)
return "サザエ"
end
if (sazae == 1 && enemy == 3) || (sazae == 2 && enemy == 1) || (sazae == 3 && enemy == 2)
return janken.enemy_name
end
if sazae && enemy && sazae == enemy
return "あいこ"
end
nil
end
def self.hand_items
HANDS.map { |value, text| ["#{value}: #{text}", value] }
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment