Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 25, 2011 11:22:22

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

ООП

Здравствуйте.
Передо мной стоит задача написать игру шахматы (пока без расчета куда можно ходить куда нет) используя ООП.
Теорию читал, но на практике пользовался лишь функциональным программированием.
Хотелось бы услышать Ваше мнение по этому коду
http://pastebin.com/4Jtsqp33



Офлайн

#2 Фев. 25, 2011 14:37:23

AlexAled
От:
Зарегистрирован: 2010-10-19
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

не вчитывался в код посмотрел на общую структуру,
по сути соответствует вашим требованиям, единственную ремарку, которую я бы внес в этот код то разбил бы еще на пакеты по паттерну MVC



Офлайн

#3 Фев. 25, 2011 15:11:54

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

ООП

Да-да. Именно по MVC!!! :D



Офлайн

#4 Фев. 25, 2011 15:12:09

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

ООП

sp3
функциональным программированием
Уверены? Может быть “процедурным”?



Офлайн

#5 Фев. 25, 2011 15:40:43

Kogrom
От:
Зарегистрирован: 2009-12-03
Сообщения: 160
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

Мне вот такой код не нравится:

        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 какое-то. Не могу дать готового решения, но ожидалось что-то типа:
Доска.расставить_фигуры(…)

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

Ну а в целом - нормально.



Офлайн

#6 Фев. 25, 2011 17:14:29

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

Я мастер спорта по шахматам. Если будут вопросы по игре - спрашивайте :)



Офлайн

#7 Фев. 25, 2011 17:26:45

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

ООП

Именно мастер? КМС в глаза видел, а мастера - не довелось.



Офлайн

#8 Фев. 25, 2011 17:43:15

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

Андрей Светлов

Да :)
Еще выполнил один балл международного мастера. А потом закончил играть.



Отредактировано (Фев. 25, 2011 17:43:50)

Офлайн

#9 Фев. 25, 2011 17:59:07

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

ООП

Сильно. Мое почтение.



Офлайн

#10 Фев. 25, 2011 18:29:40

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

ООП

AlexAled
разбил бы еще на пакеты по паттерну MVC
страшное слово MVC. Не успею осилить
Александр Кошелев
Может быть “процедурным”?
возможно что то я и путаю
Kogrom
Я бы наследовал пешек, слонов, ферзей и т.д.
переписал немного
http://pastebin.com/CYEgBkZH
теперь каждый класс переопределяет метод getPossibleMove, который генерирует список с кортежами возможных ходов фигуры



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version