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

Видео, книги, журналы, научные статьи, (по тематике форума), наше творчество
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

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

Сообщение Андрей »

Выслал Михаилу исходник, улучшенный сокращением всех однотипных процедур.

Что нужно реализовать:
  • Единый интерфейс задержки перехода хода от Человека к Компьютеру - пока 1)мышь и 2)ShowMessage - click OK.
  • Не дать возможность стрелять Человеку в уже зелёную клетку (позже реализуем)
  • Иногда при вскрытии ряда Компьютером на некоторых кнопках проступает # (не всегда)
  • Когда компьютер не угадывает фигуру - не видно какую клетку он атакует, просто появляется сообщение "не угадал". Возможно, нужен 3-й цвет.
  • Поправить "глюк ФСФ" - двойное засчитывание фигуры при открытии и далее открытии её ряда.
  • Найти маленькие ошибки в подсчёте очков
  • Вести статистику побед/поражений. Сделать таблицу рекордов.
  • Сделать сетевую игру людей
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

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

Сообщение Андрей »

То, что предлагаю сделать Михаилу, выделил жёлтым.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

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

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

Замечательно, количество строк в исходнике уменьшилось почти в два раза. Однако под ХР по прежнему глючит, при расстановке фигур заново. Думаю, дело в строках

Код: Выделить всё

Button7.Glyph.Assign (nil);
Button8.Glyph.Assign (nil);
Button9.Glyph.Assign (nil);
Button10.Glyph.Assign (nil); и т.д.
Как исправить, чтоб под ХР работало, не знаю. Доработку кода тогда буду делать с понедельника.
2018-02-04_18-13-28.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

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

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

А при компиляции исходного кода в Лазарус на ХР, при новой расстановке фигур выдает следующие ошибки.
2018-02-04_18-33-23.png
2018-02-04_18-33-55.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

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

Сообщение Андрей »

Итак, я исполнил 2 намеченных пункта, но нашёл ещё один глюк:
при ходе Человека, если он нажимает клетку на своём поле, происходит выстрел (щелчок) и происходит какая-то отрисовка.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

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

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

Михаил Киселев писал(а): Андрей писал(а):
Михаил Киселев, я тоже чуть попутал. Перепутал элемент массива с обрезкой символа строки [1,1]. Значит, я имел в виду это:
КОД: ВЫДЕЛИТЬ ВСЁ
if mb[1,1][1]='#'
--- В старой версии Лазаруса 0.9 при наличии кирилицы в строке с командой mb[1,1][1] могло творится черти что, поэтому я подстраховывался.
Ага, а в новой версии Лазаруса, при такой строке он просто вылетает с ошибкой.
Пришлось опять извращаться таким образом

Код: Выделить всё

 if (copymb>'!') and (copymb<'$') then copymb:= copy(copymb,2,4); 
Зато ситуация
Андрей писал(а): Иногда при вскрытии ряда Компьютером на некоторых кнопках проступает # (не всегда)
теперь исправлена: # больше не проступает.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

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

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

Впрочем кажись мы только что исправили один и тот же глюк. :)
Ладно, тогда точно до 19 часов понедельника пока ничего не буду делать.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

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

Сообщение Андрей »

Михаил Киселев, зачем ты сделал то, что компьютер при открытии ряда открывает несколько рядов подряд, пока не встретит фигуру? У меня оставался последний ряд с 1 фигурой. Он 2 ряда открыл пустых, фигуры не обнаружил и открыл третий. Из-за этого у меня очки неправильно и начислялись.

Но ты понимал(-ешь), что компьютеру поставил нечестную игру?
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

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

Сообщение Андрей »

Вот это свинство пора прекращать:

Код: Выделить всё

repeat 
ОТКРЫВАЕМ РЯДЫ ОДИН ЗА ДРУГИМ
until (tes=1) or (sc<random(20)) or (count=o);
в чём смысл этих переменных tes, sc?

count=o - это убиты все фигуры, я понял.
tes - понял. Когда = 1, то на ряду убита фигура.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

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

Сообщение Андрей »

В общем, я полностью исправил начисление очков (=правильно), зато отключил мухлёж с открытием рядов, пока не встречена фигура.
Также, я нашёл ещё один глюк. Человек может, быстро щёлкая мышью, открыть 6-7 клеток, не дожидаясь хода Компьютера, в то время, как Компьютер успеет сделать всего один ход.