Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Програма для гри у шахи

Реферат Програма для гри у шахи





1.Технічне Завдання


На шаховій дошці розмірамі M * N клітінок стоит слон (фігура, что ходити по діагоналі). З ясувати, чи может слон дійті до поля (х, у) Если може, то за якові найменша Кількість ходів; если Кількість ходів більша за 1, то вказаті, через Які проміжні клітінкі винен пройти слон (если таких маршрутів кілька, вказаті будь-який одна з них). Поля шахової дошки кодуються парою натуральних чисел 1..M, 1..N, де перше число - номер горізонталі, а друга - номер вертікалі (1? M, N? 1000). Технічні умови: Ві вводите з Клавіатури через пропуск числа M, N, а далі координати початкових та кінцевого полів Бажанов маршрутом слона. Ві виводу на екран число К (Мінімальна Кількість ходів), а далі в К - 1 рядках по 2 числа через пропуск - координати відвіданіх полів. Если розв язків немає, вивести 0.

Приклад:

Введення 10 10 1 1 1 7

Виведення 2 4 4


Рис.


2.Аналіз Завдання


Розіб ємо задачу на введення информации, перевірку информации за питань комерційної торгівлі умів та Виведення результату.

Для введення информации вікорістаємо діалог з користувачем. Поля шахової дошки кодуються парою натуральних чисел 1..M, 1..N, де перше число - номер горізонталі, а друга - номер вертікалі (1? M, N? 1000). Просимо користувача ввести з Клавіатури через пропуск числа M, N, а далі координати початкових та кінцевого полів Бажанов маршрутом слона.

Перевірка информации Полягає в двох аспектах. Перший, це відповідність умові. Другий, це поиск мінімального ходу помощью двох функцій: solve та show_result.

После перевіркі, программа віконується и виводами Мінімальна Кількість ходів, або координата відвіданіх полів.

комп ютерний программа шахи

3.Алгорітм роботи програми


Таблиця 3.1 - описание констант та змінніх.

Ім яТіп даніхПрізначення змінноїm, n Цілі чіслаРозмірі шахової дошкіxb, ybЦілі чіслаКоордінаті початкуxe, yeЦілі чіслаКоордінаті кінцяstepsЦілі чіслаКількість кроківbegin, endЦілі чіслаКоордінаті качана руху та кінцевого пунктуn1, n2Цілі чіслаНомері Першої та Другої на вивід координат, уЦілі чіслаКоордінаті відвіданіх полівbg , enЦілі чіслаКоордінаті качана та кінця

Схема



Схема

Схема


Основна програма:

- ввід даних, 3 - перевірка ввідних даних на валідність, 4 - если початкова и кінцева клітінкі різніх кольорів, 6 - если початкова та кінцева Клітини збігаються, 8 - если ширина або висота дошки дорівнює одиниці, то слона не может рухатіся.solve ()

- 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 gt; 1), проміжніх клітін n - 1, а номер последнего Кроку n - 2 (через нумерації з нуля), 14 - если з двох ходів НЕ дійті, просто піднімемося віще.show_result ()

- номер Першого на вивід проміжної Клітини, последнего и крок для циклу, 3 - номер Першої та Другої на вивід координати, 3-5 - если початкова та кінцева клітина були змінені місцямі, проміжні виводимо з последнего по першійeck_input_data () - перевірка ввідних даних.


4.Текст програми


# include lt; stdio.h gt;

# include lt; math.h gt;

# include lt; iostream gt; namespace std; m, n, xb, yb, xe, ye;

//будемо додаваті по Кроку шкірного разу, коли слона не может з поточної

//позіції перейти на кінцеву клітінкуsteps=1;// Кількість кроківintermedi...


сторінка 1 з 3 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Ввід-вивід информации, спеціфікації, оператори та ресурси вводу-виводу
  • Реферат на тему: Номер люкс
  • Реферат на тему: Пошук найкоротшого шляху пересування слона з шахового полю
  • Реферат на тему: Дослідження процесів &виток& информации через побічні електромагнітні випро ...
  • Реферат на тему: Декартові координати