imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 01.06.2006, 16:00     # 1
leahov
Newbie
 
Регистрация: 27.05.2005
Сообщения: 47

leahov Нуль без палочки
Задача в паскале "Ход конем"

помогите решить задачу
Даны две литеры - латинская буква (от a до h) и цифра (от 1 до 8). Рассматривая их как координаты по-ля шахматной доски, на котором находится конь, нари-совать шахматную доску, пометив крестиками все поля, которые «бьет» этот конь, и ноликами все остальные.
leahov вне форума  
Старый 01.06.2006, 19:03     # 2
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

Kvarx Известность не заставит себя ждатьKvarx Известность не заставит себя ждать
А в чем проблема-то? Конь знаешь, как ходит?

Ну если в лоб, то заводишь двумерный массив изначально заполненный нулями. Ну а потом ручками ставишь единички в битых конем полях. Всего максимум 8 вариантов ну и проверяешь, чтоб за границы поля не вылезало. В общем случае получится меньше единичек.
Kvarx вне форума  
Старый 02.06.2006, 07:53     # 3
leahov
Newbie
 
Регистрация: 27.05.2005
Сообщения: 47

leahov Нуль без палочки
Проблема в том что я не знаю как сделать шахматную доску и привязать к ней координаты
leahov вне форума  
Старый 02.06.2006, 09:30     # 4
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
leahov
Что значит сделать шахматную доску? Тебе требуется её нарисовать что-ли? Если да, то тут вопрос встает о среде программирования которую ты используешь (TurboPascal/Delphi), графический или текстовый режим. А в памяти программы, как тебе уже сказали, шахматная доска должна быть представлена для твоего случая двумерным массивом чисел, отражающих некие состояния.
ЕЖ вне форума  
Старый 02.06.2006, 11:46     # 5
v_mirgorodsky
Junior Member
 
Регистрация: 08.12.2004
Сообщения: 132

v_mirgorodsky Реально крут(а)v_mirgorodsky Реально крут(а)v_mirgorodsky Реально крут(а)v_mirgorodsky Реально крут(а)
Цитата:
Сообщение от leahov
Проблема в том что я не знаю как сделать шахматную доску и привязать к ней координаты
Похоже понял, что вызывает трудность. Проще всего транслировать маленькие буквы латинского алфавита в цифры путем вычитания из кода буквы кода буквы 'a'. Таким образом буквы легко трансформируются в коды от 0 до 7. Из цифры таким же образом следует вычесть 1. Таким образом получаем два индекса, которые можно легко использовать для индексации по двумерному массиву.

С ходом коня еще проще. Переводим текущую позицию коня в индексы и рассчитываем возможные положения его после хода. Как верно было замечено - их восемь. Далее проверяем полученные координаты на выход за пределы доски и в нужные места на доске проставляем единицы.
v_mirgorodsky вне форума  
Старый 02.06.2006, 12:39     # 6
Gunslinger
Advanced Member
 
Аватар для Gunslinger
 
Регистрация: 15.09.2004
Адрес: Украина, Хмельницкий
Сообщения: 403

Gunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собой
Цитата:
v_mirgorodsky:
Проще всего транслировать маленькие буквы латинского алфавита в цифры путем вычитания из кода буквы кода буквы 'a'
Ну если делать так, то надо еще не забыть перед преобразованием в код буквы, сделать ее в нижнем регистре (lowercase), а то мало как юзер введет
__________________
The man in black fled across the desert, and the Gunslinger followed. (c) S.King
Gunslinger вне форума  
Старый 02.06.2006, 13:49     # 7
Andrewpg
Junior Member
 
Регистрация: 09.09.2004
Сообщения: 179

Andrewpg Известность не заставит себя ждать
Ну и в добавку: в паскале индексы массива не обязательно должны быть числовыми:
array [1..8,a..h] должно работать.
__________________
"О, как тоскливо ехать без мигалки!"
Andrewpg вне форума  
Старый 02.06.2006, 13:51     # 8
leahov
Newbie
 
Регистрация: 27.05.2005
Сообщения: 47

leahov Нуль без палочки
Задача в аскале. шахматку нарисовал - вот код


что делать дальше
leahov вне форума  
Старый 02.06.2006, 15:52     # 9
leahov
Newbie
 
Регистрация: 27.05.2005
Сообщения: 47

leahov Нуль без палочки
а почему 8 ходов? я их штук 40 насчитал
leahov вне форума  
Старый 02.06.2006, 16:00     # 10
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

Kvarx Известность не заставит себя ждатьKvarx Известность не заставит себя ждать
Ну а теперь "интеллектуальную часть". Прочти второй пост еще разок Двуммерный массив и будет доской. Каждому его элементу будет соответствовать поле шахматной доски. (1, 1) - A1, (2,2) -B2, (1,8) - A8

Индекс, который буквенный переводишь в число, как написано в 5-ом посте.

Почему 40 то? Максимум 8. Конь ходит буквой Г, или может ты его со слоном путаешь или ферзем?

Последний раз редактировалось Kvarx; 02.06.2006 в 16:02.
Kvarx вне форума  
Старый 02.06.2006, 16:19     # 11
leahov
Newbie
 
Регистрация: 27.05.2005
Сообщения: 47

leahov Нуль без палочки
ничего не понял, можешь в коде показать, я посмотрю уже в самом паскале
leahov вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:35.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.