Question

In: Computer Science

class Board: def __init__(self): self.pieces = [[None for i in range(8)] for j in range(8)] def...

class Board:
    def __init__(self):
        self.pieces = [[None for i in range(8)] for j in range(8)]

    def __str__(self):
        s = ""
        for j in range(7, -1, -1): #for each row
            for i in range(8): # for each column
                if self.pieces[j][i] is None: # if self.pieces[j][i] is None
                    s += "." # populate the row with '.' val for each column
                else:
                    s += self.pieces [j][i].get_symbol()
            s += "\n" #after each row add a new line
        return s # return after iterating through all rows and columns

class Piece:

        def __init__(self, board, row, col, is_white):
            self.row = row
            self.col = col
            self.is_white = is_white
            board.pieces[row][col] = self


        def get_symbol(self):
            pass


class Rook(Piece):
    def __init__(self, board, row, col, is_white):
        Piece.__init__(board, row, col, is_white)

    def get_symbol(self):
        if self.is_white:
            return '\u2656'
        else:
            return '\u265C'
board = Board()
Rook(board, 0, 0, True)
Rook(board, 0, 7, True)
Rook(board, 7, 0, False)
Rook(board, 7, 7, False)
print(str(board))

It comes up as a problem with is_white can you tell me whats wrong. it's supose to print out an 8x8 matrix with the rooks on the board.

Solutions

Expert Solution

You forgot to pass self when you are calling the super class constructor in line 31 in class Rook.

Your code

class Rook(Piece):
    def __init__(self, board, row, col, is_white):
        Piece.__init__(board, row, col, is_white)

    def get_symbol(self):
        if self.is_white:
            return '\u2656'
        else:
            return '\u265C'

Correct Code

class Rook(Piece):
    def __init__(self, board, row, col, is_white):
        Piece.__init__(self,board, row, col, is_white)

    def get_symbol(self):
        if self.is_white:
            return '\u2656'
        else:
            return '\u265C'

Explanation

In your code, Rook is a subclass of Piece, so when we call the Piece's constructor from Rook's constructor we have to supply the self object as well because this is not an object creation instead this object is created and we are just passing the reference.

When we create a new object, in that case we dont need to pass the self object.

Sample Output


Related Solutions

python class Node(): def __init__(self, value): pass class PostScript(): def __init__(self): pass    def push(self, value):...
python class Node(): def __init__(self, value): pass class PostScript(): def __init__(self): pass    def push(self, value): pass    def pop(self): return None    def peek(self): pass    def is_empty(self): pass def stack(self): pass    def exch(self): pass    def index(self): pass    def clear(self): pass    def dup(self): pass    def equal(self): pass    def depth(self): pass    stack = PostScript() def decode(command_list): for object in command_list: if object == '=': stack.equal() elif object == 'count': stack.depth() elif object ==...
''' File: pyPatientLL.py Author: JD ''' class Node: #ADT        def __init__(self, p = None):             ...
''' File: pyPatientLL.py Author: JD ''' class Node: #ADT        def __init__(self, p = None):              self.name = ""              self.ss = self.age = int(0)              self.smoker = self.HBP = self.HFD = self.points = int(0)              self.link = None              #if list not empty              if p != None:                     p.link = self        ptrFront = ptrEnd = None choice = int(0) def menu():        print( "\n\tLL Health Clinic\n\n")        print( "1. New patient\n")        print( "2. View patient by...
For python... class car:    def __init__(self)          self.tire          self.gas    def truck(self,color)        &nb
For python... class car:    def __init__(self)          self.tire          self.gas    def truck(self,color)               style = color                return    def plane(self,oil)              liquid = self.oil + self.truck(color) For the plane method, I am getting an error that the class does not define __add__ inside init so I cannot use the + operator. How do I go about this.             
1) What is the argument in “class AddressBook(object):” 2) What is the roll of “def __init__(self):”?...
1) What is the argument in “class AddressBook(object):” 2) What is the roll of “def __init__(self):”? 3) What is the roll of “def __repr__ (self):”? 4) Please copy and run “Addressbook” Python program. Submit the code and the output 5) Discuss the two outputs’ differences (data type). 6) Please add 2 more people and report the output. Code: class AddressBook(object): def init_(self): self.people=[] def add_entry(self, new_entry): self.people.append(new_entry) class AddressEntry(object): def __init__(self, first_name=None, family_name= None, email_address= None, DOB= None): self.first_name =...
write pseudocode for this program . thank you import random class cal():    def __init__(self, a,...
write pseudocode for this program . thank you import random class cal():    def __init__(self, a, b):        self.a = a        self.b = b    def add(self):        return self.a + self.b    def mul(self):        return self.a * self.b    def div(self):        return self.a / self.b    def sub(self):        return self.a - self.b def playQuiz():    print("0. Exit")    print("1. Add")    print("2. Subtraction")    print("3. Multiplication")    print("4. Division")...
How would I setup this dictionary for Python 3? class Student(object): def __init__(self, id, firstName, lastName,...
How would I setup this dictionary for Python 3? class Student(object): def __init__(self, id, firstName, lastName, courses = None): The “id”, “firstName” and “lastName” parameters are to be directly assigned to member variables (ie: self.id = id) The “courses” parameter is handled differently. If it is None, assign dict() to self.courses, otherwise assign courses directly to the member variable. Note: The “courses” dictionary contains key/value pairs where the key is a string that is the course number (like “course1”) and...
using repl or python class House():    valuationRate = 10       def __init__(self,city,sqft,price):        ...
using repl or python class House():    valuationRate = 10       def __init__(self,city,sqft,price):         self.city = city         self.sqft = sqft         self.price = price           def getPrice(self):         return self.price    def applyValuation(self):         self.price += self.price * self.valuationRate/100 # create class Townhouse that inherits from class House # class Townhouse should have valuationRate = 5    # implement method setPrice(self,price) in class Townhouse    # create an object House: city=Atlanta, sqft=10000, price=200000   ...
class Car: condition = "new" def __init__(self, model, color, mpg): self.model = model self.color = color...
class Car: condition = "new" def __init__(self, model, color, mpg): self.model = model self.color = color self.mpg = mpg my_car = Car("Corvette", "Black", “30”) print my_car.model print my_car.color print my_car.MPG print my_car.condition Add class “getter” methods to return the values for model, color, and MPG Add class “setter” methods to change the existing values for model, color, and MPG. The value to be used in the methods will be passed as an input argument. Add class method that will calculate...
"""stack.py implements stack with a list""" class Stack(object): def __init__(self): #creates an empty stack. O(1) self.top...
"""stack.py implements stack with a list""" class Stack(object): def __init__(self): #creates an empty stack. O(1) self.top = -1 #the index of the top element of the stack. -1: empty stack self.data = [] def push(self, item): # add item to the top of the stack. O(1) self.top += 1 self.data.append(item) def pop(self): # removes and returns the item at the top O(1) self.top -=1 return self.data.pop() def peek(self): # returns the item at the top O(1) return self.data[len(self.data)-1] def isEmpty(self):...
Inheritance - Method Calls Consider the following class definitions. class C1(): def f(self): return 2*self.g() def...
Inheritance - Method Calls Consider the following class definitions. class C1(): def f(self): return 2*self.g() def g(self): return 2 class C2(C1): def f(self): return 3*self.g() class C3(C1): def g(self): return 5 class C4(C3): def f(self): return 7*self.g() obj1 = C1() obj2 = C2() obj3 = C3() obj4 = C4() For this problem you are to consider which methods are called when the f method is called. Because the classes form part of an inheritance hierarchy, working out what happens will...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT