├── prob1.py ├── prob2.py └── prob3.py /prob1.py: -------------------------------------------------------------------------------- 1 | """ 2 | File: prob1.py 3 | Author: Xin Li 4 | Purpose: In this program, it will have one class each 5 | (Color, and Room, respectively). 6 | """ 7 | 8 | class Simplest: 9 | def __init__(self,val1,val2,val3): 10 | self.a = val1 11 | self.b = val2 12 | self.c = val3 13 | 14 | 15 | 16 | class Rotate: 17 | def __init__(self,first,second,third): 18 | self._first = first 19 | self._second = second 20 | self._third = third 21 | def get_first(self): 22 | return self._first 23 | def get_second(self): 24 | return self._second 25 | def get_third(self): 26 | return self._third 27 | def rotate(self): 28 | temp = self._first 29 | self._first = self._second 30 | self._second = self._third 31 | self._third = temp 32 | 33 | 34 | 35 | 36 | class Band: 37 | def __init__(self,singer): 38 | ''' 39 | Constructor. It should store the singer it is passed, 40 | set the drummer to None, and record that the band 41 | dose not (yet) have any guitar players. 42 | ''' 43 | self._singer = singer 44 | self._drummer = None 45 | self._guitar_player = [] 46 | def get_singer(self): 47 | return self._singer 48 | def set_singer(self,new_singer): 49 | self._singer = new_singer 50 | def get_drummer(self): 51 | return self._drummer 52 | def set_drummer(self, new_drummer): 53 | self._drummer = new_drummer 54 | def add_guitar_player(self, new_guitar_player): 55 | self._guitar_player.append(new_guitar_player) 56 | def fire_all_guitar_players(self): 57 | self._guitar_player = [] 58 | def get_guitar_players(self): 59 | return self._guitar_player[:] 60 | def play_music(self): 61 | if self._singer =="Frank Sinatra": 62 | print('Do be do be do') 63 | elif self._singer =="Kurt Cobain": 64 | print('bargle nawdle zouss') 65 | else: 66 | print("La la la") 67 | if self._drummer != None: 68 | print("Bang bang bang!") 69 | for i in self._guitar_player: 70 | -------------------------------------------------------------------------------- /prob2.py: -------------------------------------------------------------------------------- 1 | """ 2 | File: prob2.py 3 | Author: Xin Li 4 | Purpose: In this program 5 | """ 6 | class Color: 7 | def __init__(self, r,g,b): 8 | if r> 255: 9 | r = 255 10 | if r< 0: 11 | r =0 12 | if g> 255: 13 | g = 255 14 | if g< 0: 15 | g =0 16 | if b> 255: 17 | b = 255 18 | if b< 0: 19 | b =0 20 | self._r = r 21 | self._g = g 22 | self._b = b 23 | 24 | def __str__(self): 25 | return 'rgb('+str(self._r)+','+str(self._g)+','+str(self._b)+')' 26 | def html_hex_color(self): 27 | return f"#{self._r:02X}{self._g:02X}{self._b:02X}" 28 | def get_rgb(self): 29 | return (self._r, self._g, self._b) 30 | def set_standard_color(self, name): 31 | assert name.lower() =='red' \ 32 | or name.lower() == 'yellow' \ 33 | or name.lower() == 'white' \ 34 | or name.lower() == 'black' 35 | if name.lower() =="red": 36 | self._r = 255 37 | self._g = 0 38 | self._b = 0 39 | if name.lower() =="yellow": 40 | self._r = 255 41 | self._g = 255 42 | self._b = 0 43 | if name.lower() =="black": 44 | self._r = 0 45 | self._g = 0 46 | self._b = 0 47 | if name.lower() =="white": 48 | self._r = 255 49 | self._g = 255 50 | self._b = 255 51 | def remove_red(self): 52 | self._r = 0 53 | -------------------------------------------------------------------------------- /prob3.py: -------------------------------------------------------------------------------- 1 | """ 2 | File: prob3.py 3 | Author: Xin Li 4 | Purpose: In this program 5 | """ 6 | class Room: 7 | def __init__(self,name): 8 | self._name = name 9 | self.n = None 10 | self.e = None 11 | self.s = None 12 | self.w = None 13 | def get_name(self): 14 | return self._name 15 | def set_name(self,name): 16 | self._name = name 17 | def collapse_room(self): 18 | if self.s is not None: 19 | self.s.n = None 20 | if self.n is not None: 21 | self.n.s = None 22 | if self.e is not None: 23 | self.e.w = None 24 | if self.w is not None: 25 | self.w.e = None 26 | 27 | self.n = None 28 | self.e = None 29 | self.s = None 30 | self.w = None 31 | 32 | 33 | def build_grid(wid,hei): 34 | lst = [] 35 | for b in range(hei): 36 | lst1 = [] 37 | for a in range(wid): 38 | lst1.append(Room('('+str(a)+','+str(b)+')')) 39 | lst.append(lst1) 40 | for i in range(hei): 41 | for j in range(wid): 42 | if i != 0: 43 | lst[i][j].n = lst[i-1][j] 44 | if i != hei-1: 45 | lst[i][j].s = lst[i+1][j] 46 | if j != 0: 47 | lst[i][j].w = lst[i][j-1] 48 | if j != wid-1: 49 | lst[i][j].e = lst[i][j+1] 50 | return lst[hei-1][0] 51 | --------------------------------------------------------------------------------