class Card(): ranks=["","ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king"] suits=["","hearts","spades","clubs","diamonds"] def __init__(self, rank, suit): self.rank=rank self.suit=suit def getSuit(self): return self.suit def getRank(self): return self.rank def viewCard(self): return Card.ranks[self.rank]+" of "+Card.suits[self.suit] def getCard(self): return "("+ str(self.suit)+","+str(self.rank)+")" def __str__(self): return Card.ranks[self.rank]+" of "+Card.suits[self.suit] class Deck(): def __init__(self): self.cards=[] for suit in range(1,5): for rank in range(1,14): self.cards.append(Card(rank,suit)) def viewDeck(self): for card in self.cards: print(card) class Vector: def __init__(self,x,y): self.x=x self.y=y def getX(self): return self.x def getY(self): return self.y def getVector(self): return "("+str(self.x)+","+str(self.y)+")" def __str__(self): #must return a string data type when re-defining str return str(self.x)+"i+"+str(self.y)+"j" def __add__(self,otherVector): newX=self.x+otherVector.x newY=self.y+otherVector.y return Vector(newX,newY) class Student(): ID=0 years=["","freshman","sophomore","junior","senior"] def __init__(self,firstName,lastName,standing=1): self.fName=firstName self.lName=lastName self.year=standing Student.ID=Student.ID+1 self.ID=Student.ID def advance(self): if self.year<4: self.year=self.year+1 def getStanding(self): return Student.years[self.year] def getName(self): return self.fName+" "+self.lName def getID(self): return self.ID def saySomething(self,something,otherStudent): return "Hi {}. My Name is {}. {}.".format(otherStudent.fName,self.fName,something) def __str__(self): return self.fName+" "+self.lName class Person(): def __init__(self,fName,lName): self.firstName=fName self.lastName=lName def getFirst(self): return self.firstName def getLast(self): return self.lastName def saySomething(self): return "Hi. My Name is {}.".format(self.firstName) def __str__(self): return self.firstName+" "+self.lastName class HGSperson(Person): ID=0 def __init__(self,fName,lName): Person.__init__(self,fName,lName) HGSperson.ID=HGSperson.ID+1 self.ID=HGSperson.ID def getID(self): return self.ID def __str__(self): return "HGS Person: {},{}".format(self.lastName,self.firstName)