Introduction to Computer Science II
Homework and Lab 5
Due by 3:10pm on Tuesday, February 10
Reading
Read chapter 8, Case Study 8, and the week 5 lecture notes.
Lab
Monday 1:30pm-3:00 in room 512 in 14 E Jackson or via Zoom.
Problems
Solve the following by implementing the corresponding functions in homework5.py. When
done, submit that file through D2L.
1. Develop subclass oddList of list
that behaves just like a list except for the peculiar behavior of
the for loop:
Usage:
>>> lst = oddList([6,2,7,3,8,4,9,5])
>>> for item in lst:
print(item)
6
3
9
The iteration loop pattern visits only every third item in the list.
2. Implement an iterator for class Deck.
Usage:
>>> deck = Deck()
>>> deck.shuffle()
>>> for card in deck:
print(card)
Card('8', '♡')
Card('J', '♠')
Card('K', '♣')
Card('J', '♢')
Card('8', '♠')
Card('Q', '♣')
Card('5', '♠')
Card('5', '♣')
Card('4', '♣')
Card('J', '♡')
Card('3', '♠')
Card('9', '♢')
Card('4', '♢')
Card('5', '♢')
Card('2', '♡')
Card('6', '♣')
Card('10', '♠')
Card('10', '♢')
Card('J', '♣')
Card('K', '♠')
Card('5', '♡')
Card('3', '♡')
Card('6', '♡')
Card('8', '♢')
Card('7', '♢')
Card('9', '♠')
Card('7', '♠')
Card('7', '♡')
Card('A', '♠')
Card('4', '♡')
Card('A', '♢')
Card('A', '♣')
Card('10', '♣')
Card('7', '♣')
Card('4', '♠')
Card('9', '♣')
Card('Q', '♡')
Card('3', '♢')
Card('A', '♡')
Card('Q', '♠')
Card('3', '♣')
Card('10', '♡')
Card('2', '♠')
Card('2', '♢')
Card('2', '♣')
Card('6', '♠')
Card('9', '♡')
Card('Q', '♢')
Card('6', '♢')
Card('K', '♡')
Card('K', '♢')
Card('8', '♣')
3. Implement an iterator for class Hand.
Your iterator should visit
the cards in the hand in order, where the order is determined by
suit (clubs first, then diamonds, then hearts, and finally spades)
and then by rank (2 through 10, and then J, Q, K,
and A).
Usage:
>>> deck = Deck()
>>> deck.shuffle()
>>> hand = Hand('Player A')
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> hand.addCard(deck.dealCard())
>>> for card in hand:
print(card)
Card('3', '♣')
Card('5', '♣')
Card('5', '♢')
Card('7', '♢')
Card('8', '♢')
Card('10', '♢')
Card('J', '♢')
Card('2', '♡')
Card('6', '♡')
Card('K', '♡')
Card('10', '♠')
Card('A', '♠')
4. [Lab exercise] TBA during lab
5. [Lab exercise] TBA during lab
6. [Lab exercise] TBA during lab
7. [Lab exercise] TBA during
lab