Мое творчество. Игра Шахматный сапёр

Видео, книги, журналы, научные статьи, (по тематике форума), наше творчество
Михаил Киселев
Сообщения: 716
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 159 раз
Поблагодарили: 69 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

Ответ где ферзь.
► Показать
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9195
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей Карпишин »

Блин, я думал, будет сегодня уже новая версия.
Я много времени тратил на саму игру. Напишешь немного кода, начинаешь тестить и не можешь оторваться, чтобы не открыть или угадать очередную пару фигур, а там и доиграть партию. Увлекает.

Ладно, сегодня поздним вечером я начну добавлять ещё функций, которых описал.
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9195
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей Карпишин »

Насчёт Андроид. Исходники этой программы в Lazarus, а написано:
Lazarus — открытая среда разработки программного обеспечения на языке Object Pascal для компилятора Free Pascal (часто используется сокращение FPC — Free Pascal Compiler, бесплатно распространяемый компилятор языка программирования Pascal). Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении.

Позволяет достаточно несложно переносить Delphi-программы с графическим интерфейсом в различные операционные системы: Linux, FreeBSD, Mac OS X, Microsoft Windows, Android[2]. Начиная с Delphi XE2 в самом Delphi имеется возможность компиляции программ для Mac OS X, с версии XE4 — для iOS, с версии XE5 — для Android.
Меня Андроид сейчас не интересует. Это вообще для меня другая галактика. Сам я пользуюсь им мало. В игры на телефоне не играю.
Меня интересует сетевая игра через комп, порты, сокеты. Подключение к другу по IP. Это пригодится мне далее в работе, в познании архитектур сетевого взаимодействия.
Аватара пользователя
BDK
Сообщения: 6835
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 196 раз
Поблагодарили: 1019 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение BDK »

Ну вообще Андроид это дело десятое, я больше о стиле программирования если это интересно. Программировать так чтобы потом не сталкиваться с проблемами. Ведь наверняка позже захочется изменить графику на более красивую и продвинутую и так чтобы не переписывать или исправлять весь код.
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9195
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей Карпишин »

Ещё пару замечаний по написанию кода.

Использовать метки и операторы "go to" является плохим стилем при объектном программировании, это пережитки процедурного программирования. Существует очень мало ситуаций, реально требующих необходимости этих операторов.

Я видел, как писал код (исходники) профи, работающий в фирме по производству ПО. Я многое у него взял.
1. Каждый новый begin смещается на 2 позиции вправо, позволяя легко видеть/читать уровни вложенностей.
2. Код относящийся к этому begin идёт строго под ним вертикально.
3. Каждый end размещается строго под открывающим его begin
4. else размещается строго под then, к которому оно относится, особенно если в then много кода

возможно, ещё что-то забыл... Но для меня исходник - это что-то наподобие текста песни, важна каждая запятая, дефис или двоеточие.
Видно, что Михаил новичок в этом.
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9195
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей Карпишин »

Первый результат с использованием модуля очков, считаемых компьютером:
beta4_score.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9195
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей Карпишин »

На сегодня не удалось зарелизить эту бетку 4.
Трудно правильно считать очки при вскрытии ряда, особенно когда там 2 фигуры или уже есть открытые битые поля. Чуть привирает в бОльшую сторону и у компа и у человека.

Вопрос к Михаилу: можно из массива узнать цвет данной клетки, не обращаясь к свойству кнопки? Где хранится инфа о цветах клеток поля?

Кстати, ты не сделал что я просил - не дать возможность стрелять Человеку в уже зелёную клетку. Это было сложно или не пробовал?

исправлено уже:
  • поправил глюк с сообщением про установку КОНЯ, а писало про СЛОНА
  • выровнял подписи к фигурам идеально
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9195
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей Карпишин »

Что нужно реализовать:
  • Единый интерфейс задержки перехода хода от Человека к Компьютеру - пока 1)мышь и 2)ShowMessage - click OK.
  • Не дать возможность стрелять Человеку в уже зелёную клетку
  • Иногда при вскрытии ряда Компьютером на некоторых кнопках проступает # (не всегда)
  • Когда компьютер не угадывает фигуру - не видно какую клетку он атакует, просто появляется сообщение "не угадал". Возможно, нужен 3-й цвет.
  • Поправить "глюк ФСФ"* двойное засчитывание фигуры при открытии и далее открытии её ряда.
  • Добавить подсчёт очков по системе: клетка X - 10 очков, фигура - 100 очков. Отображать очки над досками. ПОЧТИ СДЕЛАНО.
  • Вести статистику побед/поражений. Сделать таблицу рекордов.
  • Сделать сетевую игру людей
Михаил Киселев
Сообщения: 716
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 159 раз
Поблагодарили: 69 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

Андрей писал(а):Ещё пару замечаний по написанию кода.

Использовать метки и операторы "go to" является плохим стилем при объектном программировании, это пережитки процедурного программирования. Существует очень мало ситуаций, реально требующих необходимости этих операторов.

Я видел, как писал код (исходники) профи, работающий в фирме по производству ПО. Я многое у него взял.
1. Каждый новый begin смещается на 2 позиции вправо, позволяя легко видеть/читать уровни вложенностей.
2. Код относящийся к этому begin идёт строго под ним вертикально.
3. Каждый end размещается строго под открывающим его begin
4. else размещается строго под then, к которому оно относится, особенно если в then много кода
Эх, всё это я знал ещё в 90- е прошлого века. У меня друг программист был ещё тогда. Но когда писал эту первую большую программу думал, что важнее написать хоть как-то чем не написать вообще.
К тому же в программе ( из-за 64-ех похожих процедур) использовал весьма часто копирование и вставку блоками ( alt + выделение мышью) или поиск замену с добавлением операторов. А это требует наоборот предоставление больших строк в которых операторы идут один за другим. Ну прошу в "программиста" не стрелять он писал код как умел.
Михаил Киселев
Сообщения: 716
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 159 раз
Поблагодарили: 69 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

Андрей писал(а):Вопрос к Михаилу: можно из массива узнать цвет данной клетки, не обращаясь к свойству кнопки? Где хранится инфа о цветах клеток поля?
Михаил писал(а):На своем поле в массиве mb[x,y],
если первые два знака #!
Клетка будет окрашена в оранжевый цвет, если (# ) решетка, пробел.
Клетка будет окрашена в зеленый цвет (+ 10 очков если комбинация первых трех знаков массива (# X) решетка, пробел, икс.

На поле противника в массиве eb[x,y],
если первый знак К,Ф,Л,С,k - Клетка будет окрашена в оранжевый цвет,
если первый знак 0 - Клетка будет окрашена в зеленый цвет,
также если первый знак X (икс латиницей) клетка будет окрашена в зеленый (+10 очков, потому как битое поле). Вроде так.