Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2015, 12:20   #1
Saratow
 
Регистрация: 01.03.2015
Сообщений: 5
По умолчанию Паскаль. Задача с использованием Графики

Дана шахматная доска размером NxN. Написать программу, которая позволяет игроку расположить на доске M коней и проверяет, что ни один конь не бьет другого. Если это не так, то "неправильные" кони помечаются другим цветом.
Управление фигурами осуществляется с помощью клавиатуры.
Значения N(4<=N<=10) M(4<=M<=9).

p.s самое главное из этой задачи я не пойму, как при перетаскивании фигуры на шахматное поле он просчитывал ходы. Как свзяать графику и сам код.
Зарание спасибо за помощь.
Saratow вне форума Ответить с цитированием
Старый 01.03.2015, 14:54   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Например, в программе есть массив, хранящий координаты коней. Есть процедура, отрисовывающая его на экран в правильном виде. Пользователь может перемещать по полю некий указатель. Если указатель находится на клетке с конем, то можно начать операцию перемещения коня, например, нажав пробел. Программа узнает, какого именно коня хотят двигать, и будет менять координаты именно у него в массиве. Функцию проверки можно вызывать после каждого сдвига или после отпускания.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.03.2015, 17:30   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а Паскаль какой?
я бы вобще организовал такой интерфейс - поле и список доступных коней.
клавишами перемещаем прямоугольник-выделение текущего поля (это очень просто сделать). Для выделенной клетки можно организовать действие "Поставить/убрать коня" в текущую выделенную клетку (например, по нажатию пробела).

А в остальном полностью согласен в BDA - " свзяать графику и сам код" нужно так - в памяти должна быть структура (например, массив в данном случае), который и хранит реальные данные игрового поля - где и какие фигуры стоят.
А интерфейс должен обеспечивать взаимосвязь между данными в памяти и отображением поля на экране.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.03.2015, 17:51   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Serge_Bliznykov, идея "поставить/убрать коня" мне больше нравится (а то при передвигании коня пришлось бы еще решать проблему со "столкновениями" с другими конями).

Хранить самих коней можно или в двухмерном массиве, обозначающим всё поле (больше памяти - легче для работы), или в одномерном массиве с записями-координатами (меньше памяти - чуть труднее работать).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.03.2015, 17:51   #5
Saratow
 
Регистрация: 01.03.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а Паскаль какой?
я бы вобще организовал такой интерфейс - поле и список доступных коней.
клавишами перемещаем прямоугольник-выделение текущего поля (это очень просто сделать). Для выделенной клетки можно организовать действие "Поставить/убрать коня" в текущую выделенную клетку (например, по нажатию пробела).

А в остальном полностью согласен в BDA - " свзяать графику и сам код" нужно так - в памяти должна быть структура (например, массив в данном случае), который и хранит реальные данные игрового поля - где и какие фигуры стоят.
А интерфейс должен обеспечивать взаимосвязь между данными в памяти и отображением поля на экране.
Ох(( как-то все печальненько. Ну буду стараться. Пока смог сделать чтобы при вводе координат поля туда ставилась фигура и проверка делалась. Буду пробовать переделывать это в гарфику
p.s free pascal
Saratow вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на паскаль с использованием подпрограмм Julichka1k Помощь студентам 2 06.02.2012 19:47
задача на паскаль с использованием подпрограмм Julichka1k Помощь студентам 1 05.02.2012 20:17
задача на двумерный массив с использованием процедуры(Паскаль) Вероника_94 Помощь студентам 2 31.01.2012 00:59
Графики с использованием С++ builder iKarma C++ Builder 1 21.11.2011 12:07
Задача на решение графики в Паскаль! Ka1n777 Паскаль, Turbo Pascal, PascalABC.NET 7 17.09.2009 14:45