Програма для гри у шахи - Программирование, компьютеры и кибернетика контрольная работа

Програма для гри у шахи - Программирование, компьютеры и кибернетика контрольная работа



































Знайомство з комп’ютерною програмою, розробленою для використання у грі в шахи, розгляд особливостей застосування на практиці. Загальна характеристика результатів роботи програми. Аналіз основних способів кодування шахової дошки парою натуральних чисел.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
На шаховій дошці розмірами M*N клітинок стоїть слон (фігура, що ходить по діагоналі). З'ясувати, чи може слон дійти до поля (х,у) Якщо може, то за яку найменшу кількість ходів; якщо кількість ходів більша за 1, то вказати, через які проміжні клітинки повинен пройти слон (якщо таких маршрутів кілька, вказати будь-який один з них). Поля шахової дошки кодуються парою натуральних чисел 1..M, 1..N, де перше число - номер горизонталі, а друге - номер вертикалі (1?M,N?1000). Технічні умови: Ви вводите з клавіатури через пропуск числа M, N, а далі координати початкового та кінцевого полів бажаного маршруту слона. Ви виводите на екран число К (мінімальна кількість ходів), а далі в К-1 рядках по 2 числа через пропуск - координати відвіданих полів. Якщо розв'язків немає, вивести 0.
Розіб'ємо задачу на введення інформації, перевірку інформації за певних умов та виведення результату.
Для введення інформації використаємо діалог с користувачем. Поля шахової дошки кодуються парою натуральних чисел 1..M, 1..N, де перше число - номер горизонталі, а друге - номер вертикалі (1?M,N?1000). Просимо користувача ввести з клавіатури через пропуск числа M, N, а далі координати початкового та кінцевого полів бажаного маршруту слона.
Перевірка інформації полягає в двох аспектах. Перший, це відповідність умові. Другий, це пошук мінімального ходу за допомогою двох функцій : solve та show_result.
Після перевірки, програма виконується і виводиться мінімальна кількість ходів, або координата відвіданих полів.
Таблиця 3.1 - опис констант та змінних.
Координати початку руху та кінцевого пункту
Номери першої та другої на вивід координати
2 - ввід даних, 3 - перевірка ввідних даних на валідність, 4 - якщо початкова і кінцева клітинки різних кольорів, 6 - якщо початкова та кінцева клітини збігаються, 8 - якщо ширина або висота дошки дорівнює одиниці, то слон не може рухатися.
2-3 - якщо ширина дошки довше її висоти, замінимо ці значення і координати кожної точки, а у відповіді знову замінимо х і у координати кожної точки, 4-5 - якщо на отриманій дошці, в якій вже висота (за задумом) точно довше висоти, пункт призначення нижче початкової позиції слона, замінимо ці точки ((х1; у1) і (х2; у2)) місцями, а у відповіді виведемо точки в зворотному порядку, 6 - поки слон не може потрапити з 1 ходу з поточною його позиції на кінцеву, шукаємо наступну позицію, 7-9 - перевіримо, чи можна за 2 ходи потрапити в кінцеву позицію для цього перевіримо чи можна з будь клітини, на яку можна перейти 1 ходом, потрапити одним ходом в кінцеву клітку в цьому випадку клітинка, що перевіряється буде збігатися з кліткою, на якій знаходиться слон, пропустимо її, 10-11 - значить можна з клітини (xb; у1) потрапити на клітку (х2; у2) за два ходи, перенесемо слона (xb; у1) на клітину (х; у), а в наступній перевірці циклу abs (xb - xe)! = abs (yb - ye) поверне false, і пошук закінчиться, 13 - якщо кроків n (і n> 1), проміжних клітин n - 1, а номер останнього кроку n - 2 (через нумерації з нуля), 14 - якщо з двох ходів не дійти, просто піднімемося вище.
2 - номер першого на вивід проміжної клітини, останньою і крок для циклу, 3 - номери першої та другої на вивід координати, 3-5 - якщо початкова та кінцева клітина були змінені місцями, проміжні виводимо з останнього по перший.
bool check_input_data() - перевірка ввідних даних.
// будемо додавати по кроку кожного разу, коли слон не може з поточної
//позиції перейти на кінцеву клітинку
int intermediate_steps[999][2]; // координати середніх ходів
// begin і end - координати початку руху та кінцевого пункту
bool begin_and_end_was_swapped = false;
// номер першої на вивід середньої клітинки, останньої та крок для
int bg = 0, en = steps - 2, step = 1;
// номера першої та другої координати на вивід
// якщо початкова та кінцева клітинка помінялися місцями
// середні виводимо з останнього по перший
if (m_and_n_was_swapped) swap (n1, n2);
for (int i = bg; i != en + step; i += step)
cout << ' ' << intermediate_steps[i][n2] << endl;
// якщо ширина дошки довше її висоти, поміняємо ці значення
// координати кожної точки, а у відповіді знову поміняємо х і у
// координати кожної точки (або просто виведемо у вигляді (у; х)
// якщо на отриманій дошці, в якій вже висота (за задумом)
// точно довше висоти, пункт призначення нижче початкової позиції
// слона, поміняемо ці точки((х1; у1) і (х2; у2)) місцями,
// а в відповіді виведемо точки в оберненому порядку
// поки слон не може потрапити з 1 ходу з посаткової позиції
// на кінцеву, шукаємо наступну позицію
while (abs(xb - xe) != abs(yb - ye))
// перевіримо, чи можна за 2 ходи потрапити в кінцеву позицію
// для цього перевіримо чи можна з будь клітини, на яку можна
// перейти 1 ходом слона, потрапити одним ходом в кінцеву клітинку
for (int x = 1; x <= m && !can_reach_in_2_steps; x++)
// цьому випадку клітинка, що перевіряється буде збігатися з
// кліткою, на якый знаходився слон, пропустимо її
// значить можна з клітини (xb; у1) потрапити на клітку (х2; у2)
// за два ходи, перенесемо слона (xb; у1) на клітинку (х; у),
// а в наступній перевірці цикла abs(xb - xe) != abs(yb - ye)
// поверне false, і пошук завершиться
// додамо клітинку (х; у) в масив проміжних клітин
// якщо кроків n (і n> 1), проміжних клітин n - 1,
// а номер останнього кроку n - 2 (через нумерації з нуля)
intermediate_steps[steps - 2][0] = x;
intermediate_steps[steps - 2][1] = y;
// якщо з двох ходів не дійти, просто піднімемося вище
// якщо перший ряд далі, підемо вгору-вліво
// вгору підніметься на стільки клітин, на скільки і наліво
// останній ряд далі, тому підемо вгору-вправо
// вгору підніметься на стільки клітин, на скільки і вправо
// додамо клітку (xb; у1) в масив проміжних клітин
// якщо кроків n (і n> 1), проміжних клітин n - 1,
// а номер останнього кроку n - 2 (через нумерації з нуля)
intermediate_steps[steps - 2][0] = xb;
intermediate_steps[steps - 2][1] = yb;
if (m < 1 || m > 1000) return false;
if (n < 1 || n > 1000) return false;
if (xb < 1 || xb > m) return false;
if (xe < 1 || xe > m) return false;
if (yb < 1 || yb > n) return false;
if (ye < 1 || ye > n) return false;
cin >> m >> n >> xb >> yb >> xe >> ye;
// перевірка ввідних даних на валідність
// якщо початкова і кінцева клітинки різних кольорів
if ((xb + yb + xe + ye) % 2) cout << 0;
// якщо початкова та кінцева клітини збігаються
else if (xb == xe && yb == ye) cout << 0;
// якщо ширина або висота дошки дорівнює одиниці,
else if (m == 1 || n == 1) cout << 0;
// інакше шукаємо кількість ходів і проміжні клітини
Рисунок 5.1 - Результат роботи програми, після введення 500 500 50 8 124 54
1. Виведення мінімальної кількості ходів:0 (ходів немає).
2. Виведення координат відвіданих полів, оскільки розв'язків немає то координати не виводяться.
Рисунок 5.2 - Результат роботи програми, після введення 678 567 43 56 223 446
1. Виведення мінімальної кількості ходів:2 (2 ходи).
2. Виведення координат відвіданих полів: (328;341) ( з координати (43;56) до (328;341) - перший хід, з (328;341) до (223;446) - другий).
Рисунок 5.3 - Результат роботи програми, після введення 10 10 1 1 7 7
3. Виведення мінімальної кількості ходів:1 (1 хід).
4. Виведення координат відвіданих полів: не виводяться, оскільки хід лише 1.
Програма розроблена для використання у грі в шахи. Вона зручна якщо гра не наживо з людиною, а через гру в інтернеті, або з комп'ютером (через додатак). Недолік цієї програми у тому, що вона має деякі умови для розрахунку, такі як початкові та кінцеві точки разташування, також не завжди кількість ходів буде задовольняти умовам гри, тому навряд чи дану програму можна застосовувати на практиці. У подальшому можна вдосконалити програму зробивши її універсальною, тобто зробити розрахунок для інших фігур (не тільки для слона) та їх комбінацій і використовувати її як порадник у грі.
1. Основи програмування та алгоритмічні мови /[Парфьонов Ю.Е., Федорченко В.М., Лосєв М.Ю., Щербаков О.В.] - [частина 1-а] - Харків: ХНЕУ, 2008. - 127с.
2. Основи програмування та алгоритмічні мови /[Парфьонов Ю.Е., Федорченко В.М., Лосєв М.Ю., Щербаков О.В.] - [частина 2-а] - Харків: ХНЕУ, 2009. - 179с.
Cinema 4D як пакет для створення тривимірної графіки та анімації. Аналіз особливостей роботи з комп’ютерною графікою. Загальна характеристика основних етапів розробки дивану та інтер’єру кімнати. Знайомство з перевагами та недоліками растрової графіки. курсовая работа [2,7 M], добавлен 05.01.2014
Об’єктно-орієнтований аналіз, визначення класів та методів. Загальна схема функціонування системи. Представлення учбового матеріалу, питань та відповідей. Графічний інтерфейс користувача для роботи з програмою. Використання програми викладачами. курсовая работа [1,3 M], добавлен 09.01.2014
Дослідження особливостей роботи графічної бібліотеки OpenGL з метою використання її в комп'ютерному моделюванні. Розгляд синтаксису команд та програмного коду команд. Методи максимально реалістичного моделювання горіння вогню. Лістинг програми на мові С. курсовая работа [182,0 K], добавлен 22.12.2010
Позначення і назва програми, забезпечення, необхідне для її функціонування. Опис логічної структури, алгоритм, структура. Типи комп'ютерів і пристроїв, що використовуються при роботі програми. Формат, описання та спосіб кодування вхідних і вихідних даних. курсовая работа [163,6 K], добавлен 01.04.2016
Розробка алгоритму роботи програми, її загальна характеристика та функціональні особливості, умови ефективного використання. Способи виклику та адреса завантаження, відомості про використання оперативної пам'яті. Посібник системного програміста. курсовая работа [182,6 K], добавлен 07.06.2016
Розробка програмного продукту в програмному середовищі C++ Builder на прикладі гри "Шахи". Опис предметної області: правила пересування фігур по шаховій дошці. Концептуальна модель програмного продукту. Керівництва для програміста та користувача. отчет по практике [2,8 M], добавлен 27.02.2015
Види списків, особливості їх створення, застосування та можливості удосконалення роботи користувача персонального комп’ютера. Керування та аналіз груп споріднених даних у середовищі програми MS Excel 2010. Опрацювання спискiв за допомогою форми даних. дипломная работа [2,7 M], добавлен 18.06.2014
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Програма для гри у шахи контрольная работа. Программирование, компьютеры и кибернетика.
Размеры Полей Для Курсовой Работы
Как Написать Сочинение Описание
Курсовая работа по теме Налогово-бюджетная политика государства как инструмент регулирования социально-экономических процессов в рыночном хозяйстве
Реферат: Дезадаптация ребенка как следствие дезадаптации школы. Скачать бесплатно и без регистрации
Реферат по теме Політизація національного руху студентської молоді україни в роки першої російської революції
Курсовая Работа На Тему Влияние Стиля Педагогического Общения На Взаимоотношения Дошкольников
Реферат: Назначение наказания по уголовному законодательству России
Реферат по теме Болезни мышц, сухожилий и сухожильных влагалищ
Правовая Экспертиза Реферат
Реферат: Bulimia Essay Research Paper BULIMIAEating disorders are
Отчет по практике: Методология документационного обеспечения управления
Сочинение По Картине Летом 5
Реферат: Школа социальных систем в менеджменте
Курсовая работа по теме Особенности страхов дошкольников, воспитывающихся в полных и неполных семьях
Сочинение Описание Репродукции
Физика 9 Перышкин Лабораторная Работа 3
Реферат по теме Лобачевський М.І. – великий математик
Реферат по теме Состав коровьего, грудного и козьего молока
Презентация Диссертации
Эссе Мудрецы Востока
Судова реформа 1864 р. та її проведення в Україні - Государство и право курсовая работа
Задачи фильтрации - Геология, гидрология и геодезия презентация
Жизнь и творчество О.Э. Мандельштама - Литература презентация


Report Page