Crazy Eights

Run Settings
LanguageRuby
Language Version
Run Command
def genDeck return (["Hearts", "Spades", "Diamonds", "Clubs"].map do |suit| (1..13).map do |rank| { "suit" => suit, "rank" => rank } end end).flatten.shuffle end def dealCards cards, players players.map do |player| { "name" => player, "hand" => (0...5).map do |j| cards.pop end } end end def cards_match? player_card, pile_card player_card["rank"] == pile_card["rank"] or player_card["suit"] == pile_card["suit"] or player_card["rank"] == 8 end def print_card card if card["rank"] == 1 print "Ace" elsif card["rank"] == 11 print "Jack" elsif card["rank"] == 12 print "Queen" elsif card["rank"] == 13 print "King" else print card["rank"] end puts " of " + card["suit"] end deck = genDeck players = dealCards deck, ["Spencer", "Sam", "Nick", "Charls"] pile = deck.pop running = true while running match = false (0...players[0]["hand"].length).each do |i| if cards_match? players[0]["hand"][i], pile match = i end end if not match while not cards_match? players[0]["hand"].last, pile if deck.empty? puts "Deck Empty!" running else players[0]["hand"] << deck.pop match = players[0]["hand"].length - 1 end end end if match pile = players[0]["hand"].delete_at(match) if players[0]["hand"].empty? puts players[0]["name"] + " wins!" running = false else players.push players.shift end else running = false end end
Editor Settings
Theme
Key bindings
Full width
Lines