Форум сайта python.su
Уважаемые коллеги!
Подсткажите, пожалуйста, новичку:
Вот код основного модуля программы “Шахматы” одного из пользователей GitHub:
import pygame
from pygame.locals import *
import time
from pieces.Queen import Queen
from ChessBoard import ChessBoard
class Game:
def __init__(self):
pygame.init()
self.game_display = pygame.display.set_mode((900, 650))
pygame.display.set_caption('Chess')
self.settings = {'board_image': 'images/orange_board.png'}
self.board_image = pygame.image.load(self.settings['board_image'])
self.clock = pygame.time.Clock()
self.chess_board = ChessBoard()
self.curr_selected_piece = None
self.curr_poss_moves = []
self.all_poss_moves = self.get_all_poss_moves()
self.white_pieces_taken_images = []
self.black_pieces_taken_images = []
self.play_game()
def play_game(self):
"""Loop that executes the game"""
while True:
# Draw whole window (and draw board)
self.draw_window()
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit()
if event.type == pygame.MOUSEBUTTONUP:
# Get user click
self.get_user_click()
# pygame.display.flip()
self.clock.tick(60)
def draw_window(self):
"""Draws everything in the window"""
self.game_display.fill(white)
# Draw side menu
self.draw_side_menu()
# Draw bottom menu
# Draw board
self.draw_board()
pygame.display.update()
if __name__ == '__main__':
white = (255,255,255)
blue = (34, 0, 255)
red = (209, 9, 9)
black = (0, 0, 0)
Game()
Офлайн
zantal
Что тогда такое Game() относительно класса class Game.
zantalНу, собственно, экземпляр и делается
на основе которого делаются экземпляры.
Офлайн
FishHookНо ведь экземпляры создаются так:
if __name__ == "__main__":
car = Vehicle("blue", 5, 4, "car")
print(car.brake())
print(car.drive())
Офлайн
zantalВовсе не обязательно. Переменная - это по сути имя присвоенное некотору объему памяти. Вы создаете объект, под него выделяется память в которой хранятся все данные состовляющие объект. Чтобы вы могли дальше с этим объектом работать, вы объявляете переменную, то есть даете этой памяти имя. Но если вы не собираетесь дальше в программе обращаться к объекту по имени, то можно и не объявлять переменную.
Нужно ведь присвоить объект экземпляра переменной.
o = O1() + O2() + O3(O4())
Офлайн
FishHookСпасибо Вам большое. Разобрался
Офлайн