Python Forum
Multiple classes in another class
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Multiple classes in another class
#1
I am new to the Python world and am having a bit of trouble trying to figure out a solution. Hopefully someone here can help this newbie out.

I am trying to make a simple game for practice in learning how to use classes. I have created a Tile class and a Board class. The board class is creating multiple Tiles but I seem to be having trouble changing an attribute of the Tile from the Board class.

tile.py
class Tile:
    """ Class for the tiles in the game. """

    def __init__(self):
        """ Initialize the tiles with colors set to 0. """
        self.red = 0
        self.green = 0
        self.blue = 0

    def get_color(self):
        """ Returns the tile color in RGB. """
        return self.red, self.green, self.blue

    def change_color(self, color):
        """ Change the tile color depending on current state. """
        # Color is 0, 1, or 2 for RGB.
        if color == 0:
            if self.red == 0:
                self.red = 255
            elif self.red == 255:
                self.red = 0
        elif color == 1:
            if self.green == 0:
                self.green = 255
            elif self.green == 255:
                self.green = 0
        elif color == 2:
            if self.blue == 0:
                self.blue = 255
            elif self.blue == 255:
                self.blue = 0
board.py
from tile import Tile

class Board:
    """ Class for the game board. """
    def __init__(self, size):
        self.size = size
        self.board = [[Tile] * self.size for i in range(self.size)]
        self.board_won = False

    def change_tile_color(self, row, col, color):
        temp_row, temp_col = [row - 1, row, row + 1], [col - 1, col, col + 1]
        row_set, col_set = [], []
        for i in range(3):
            if 0 <= temp_row[i] <= self.size - 1:
                row_set.append(temp_row[i])
            if 0 <= temp_col[i] <= self.size - 1:
                col_set.append(temp_col[i])
        for r in row_set:
            for c in col_set:
                self.board[r][c].change_color(color)


b = Board(5)
b.change_tile_color(2, 4, 0)
when I run board.py I get
Error:
TypeError: change_color() missing 1 required positional argument: 'color'
I am using Python 3.6.2. I have tried using super() also, but don't think I am doing it correctly.
Reply


Messages In This Thread
Multiple classes in another class - by Dargonoth - Sep-08-2017, 11:32 AM
RE: Multiple classes in another class - by Larz60+ - Sep-08-2017, 12:06 PM
RE: Multiple classes in another class - by Larz60+ - Sep-08-2017, 12:26 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Can I use logging in a class (without multiple messages) mevan 2 603 Oct-16-2023, 11:08 PM
Last Post: mevan
Question [solved] Classes, assign an attributes to a class not to instances.. SpongeB0B 4 951 May-20-2023, 04:08 PM
Last Post: SpongeB0B
  super multiple parallel classes catlessness 2 1,337 Jun-07-2022, 02:35 PM
Last Post: deanhystad
  How to append multiple <class 'str'> into a single List ahmedwaqas92 2 2,341 Jan-07-2021, 08:17 AM
Last Post: ahmedwaqas92
  Pythonic way to handle/spread alerts class in multiple modules psolar 11 4,629 Feb-12-2020, 04:11 PM
Last Post: psolar
  Save all values to pandas of multiple classes jenniferruurs 0 1,904 Sep-13-2019, 12:10 PM
Last Post: jenniferruurs
  Return Object Created from Multiple Classes emerger 3 3,066 Oct-18-2018, 02:14 AM
Last Post: emerger
  Giving class multiple arguments AndyArsalan 1 4,566 Oct-04-2018, 11:25 PM
Last Post: ODIS
  calling a class multiple times GOB 2 4,293 Feb-02-2018, 05:10 AM
Last Post: GOB
  Using classes? Can I just use classes to structure code? muteboy 5 5,065 Nov-01-2017, 04:20 PM
Last Post: metulburr

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020