% FILE: demos.pl % LINE: Defines all components related to a player: name, melds, hand, score, % DATE: February 20, 2021 demo1 :- deck(D), draw(D, Card), write("CARD REPRESENTATION: "), write(Card), nl, nl, write("DECK REPRESENTATION: "), write(D), nl, nl, write("SHUFFLING DECK!"), nl, shuffle(D, NewDeck), write("UPDATED DECK: "), write(NewDeck), nl, nl, discard_pile(Discard), write("DISCARD REPRESENTATION: "),write(Discard), nl, nl, write("DEALING ONTO DISCARD!"), nl, deal_discard(D, NDeck, NewDiscard), write("DISCARD PILE: "), write(NewDiscard), nl, nl, write("REMAINING DECK: "), write(NDeck). demo2 :- deck(D), player((player1, Hand1, Meld1, Score1)), player((player2, Hand2, Meld2, Score2)), init_rummy(D, (player1, Hand1, Meld1, Score1), (player2, Hand2, Meld2, Score2), _). demo3 :- deck(D), player((player1, Hand1, _, _)), draw_from_deck(D, NewDeck, Hand1, NewHand1), write("Player1 Hand = "), write(NewHand1), nl, nl, write("Updated Deck = "), write(NewDeck). demo4 :- write("Trying: "),write("[card(ace, spades, 1), card(ace, clubs, 1), card(ace, hearts, 1)]"), nl, find_three_of_a_kind([card(ace, spades, 1), card(ace, clubs, 1), card(ace, hearts, 1)], [card(ace, spades, 1), card(ace, clubs, 1), card(ace, hearts, 1)], [], Meld, NewHand), write("Meld = "), write(Meld), nl, write("Updated hand = "), write(NewHand), nl, nl, write("Trying: "),write("[card(ace, spades, 1), card(four, clubs, 4), card(ace, clubs, 1), card(jack, diamonds, 11), card(ace, hearts, 1)]"), nl, find_three_of_a_kind([card(ace, spades, 1), card(four, clubs, 4), card(ace, clubs, 1), card(jack, diamonds, 11), card(ace, hearts, 1)], [card(ace, spades, 1), card(four, clubs, 4), card(ace, clubs, 1), card(jack, diamonds, 11), card(ace, hearts, 1)], [], Meld2, NewHand2), write("Meld = "), write(Meld2), nl, write("Updated hand = "), write(NewHand2), nl, nl, write("Trying: "),write("[card(ace, spades, 1), card(two, clubs, 2), card(three, clubs, 3), card(four, diamonds, 4), card(five, hearts, 5)]"), nl, find_three_of_a_kind([card(ace, spades, 1), card(two, clubs, 2), card(three, clubs, 3), card(four, diamonds, 4), card(five, hearts, 5)], [card(ace, spades, 1), card(two, clubs, 2), card(three, clubs, 3), card(four, diamonds, 4), card(five, hearts, 5)], [], Meld3, NewHand3), write("Meld = "), write(Meld3), nl, write("Updated hand = "), write(NewHand3), nl, nl. demo5 :- deck(D), player((player1, Hand1, _, _)), player((player2, Hand2, _, _)), init_rummy(D, (player1, Hand1, _, _), (player2, Hand2, _, _), DiscardPile, _, (_, NH1, _, _), (_, _, _, _)), write("Hand before discard = "), write(NH1), nl, write("Discard pile before discard = "), write(DiscardPile), nl, nl, discard(NH1, DiscardPile, UpdateHand, UpdateDiscard), write("Hand after discard = "), write(UpdateHand), nl, write("Discard pile after discard = "), write(UpdateDiscard), nl. demo6 :- deck(D), player((player1, Hand1, _, _)), player((player2, Hand2, _, _)), init_rummy(D, (player1, Hand1, _, _), (player2, Hand2, _, _), DiscardPile, _, (_, NH1, _, _), (_, _, _, _)), write("Hand before discard = "), write(NH1), nl, write("Discard pile before discard = "), write(DiscardPile), nl, nl, random_discard(NH1, DiscardPile, UpdateHand, UpdateDiscard), write("Hand after discard = "), write(UpdateHand), nl, write("Discard pile after discard = "), write(UpdateDiscard), nl. human_readable_demo :- deck(D), human_readable(D, NewDeck), write("Before Human Readable: "), write(D), nl, nl, write("Human Readable Version: "), write(NewDeck).