Найти - Пользователи
Полная версия: ООП
Начало » Python для новичков » ООП
1 2 3
sp3
Здравствуйте.
Передо мной стоит задача написать игру шахматы (пока без расчета куда можно ходить куда нет) используя ООП.
Теорию читал, но на практике пользовался лишь функциональным программированием.
Хотелось бы услышать Ваше мнение по этому коду
http://pastebin.com/4Jtsqp33
AlexAled
не вчитывался в код посмотрел на общую структуру,
по сути соответствует вашим требованиям, единственную ремарку, которую я бы внес в этот код то разбил бы еще на пакеты по паттерну MVC
Андрей Светлов
Да-да. Именно по MVC!!! :D
Александр Кошелев
sp3
функциональным программированием
Уверены? Может быть “процедурным”?
Kogrom
Мне вот такой код не нравится:
        for x in xrange(8):
self.board[x][1] = BlackFigure(name = u'пешка',image= self.manager.get_image('bp.png'))
self.board[x][6] = WhiteFigure(name = u'пешка' ,image= self.manager.get_image('wp.png'))
self.board[0][7] = WhiteFigure(name = u'ладья',image= self.manager.get_image('wl.png'))
self.board[7][7] = WhiteFigure(name = u'ладья',image= self.manager.get_image('wl.png'))
self.board[1][7] = WhiteFigure(name = u'конь' ,image= self.manager.get_image('wkon.png'))
self.board[6][7] = WhiteFigure(name = u'конь' ,image= self.manager.get_image('wkon.png'))
self.board[2][7] = WhiteFigure(name = u'слон' ,image= self.manager.get_image('ws.png'))
self.board[5][7] = WhiteFigure(name = u'слон' ,image= self.manager.get_image('ws.png'))
self.board[3][7] = WhiteFigure(name = u'ферзь' ,image= self.manager.get_image('wf.png'))
self.board[4][7] = WhiteFigure(name = u'король',image= self.manager.get_image('wk.png'))

self.board[0][0] = BlackFigure(name = u'ладья',image= self.manager.get_image('bl.png'))
self.board[7][0] = BlackFigure(name = u'ладья',image= self.manager.get_image('bl.png'))
self.board[1][0] = BlackFigure(name = u'конь' ,image= self.manager.get_image('bkon.png'))
self.board[6][0] = BlackFigure(name = u'конь' ,image= self.manager.get_image('bkon.png'))
self.board[2][0] = BlackFigure(name = u'слон' ,image= self.manager.get_image('bs.png'))
self.board[5][0] = BlackFigure(name = u'слон' ,image= self.manager.get_image('bs.png'))
self.board[3][0] = BlackFigure(name = u'ферзь' ,image= self.manager.get_image('bf.png'))
self.board[4][0] = BlackFigure(name = u'король',image= self.manager.get_image('bk.png'))
Ctrl-c, Ctrl-v какое-то. Не могу дать готового решения, но ожидалось что-то типа:
Доска.расставить_фигуры(…)

Ну и далее, ставим каждую фигуру в соответствии с классом, в соответствии с состоянием объекта. Наследование для черных и белых фигур - сомнительная фишка. Можно цвет в конструкторе задавать. Я бы наследовал пешек, слонов, ферзей и т.д. ибо у них и поведение разное и вид, и ценность.

Ну а в целом - нормально.
dimabest
Я мастер спорта по шахматам. Если будут вопросы по игре - спрашивайте :)
Андрей Светлов
Именно мастер? КМС в глаза видел, а мастера - не довелось.
dimabest
Андрей Светлов

Да :)
Еще выполнил один балл международного мастера. А потом закончил играть.
Андрей Светлов
Сильно. Мое почтение.
sp3
AlexAled
разбил бы еще на пакеты по паттерну MVC
страшное слово MVC. Не успею осилить
Александр Кошелев
Может быть “процедурным”?
возможно что то я и путаю
Kogrom
Я бы наследовал пешек, слонов, ферзей и т.д.
переписал немного
http://pastebin.com/CYEgBkZH
теперь каждый класс переопределяет метод getPossibleMove, который генерирует список с кортежами возможных ходов фигуры
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB