Створення ігрової програми "лого" для гри між людиною і комп'ютером

Визначення звичайного та штучного інтелекту, характеристика значення, функцій та основних напрямків в його моделюванні. Особливості загального алгоритму та принципів роботи програми, а також опис структури файла керування нею. Лістинг розробленої гри.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 28.03.2009
Размер файла 103,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

23

Міністерство освіти і науки України

ФАКУЛЬТЕТ ІНФОРМАТИКИ

Реєстраційний №________

Дата ___________________

КУРСОВА РОБОТА

Тема:

Створення ігрової програми “лого” для гри між людиною і комп'ютером

Рекомендована до захисту

“____” __________ 2008р.

Робота захищена

“____” __________ 2008р.

з оцінкою

_____________________

Підписи членів комісії

Зміст

Вступ

Теорія

Практична частина

Висновки

Література

Вступ

Основою даної роботи є створення ігрової програми “лого” для гри між людиною і комп'ютером. Для створення “думаючих” ігор потрібне написання головного компонента гри - функції штучного інтелекту.

Тому, і теоретичну частину винесені основні відомості про розробку алгоритмів ШІ, показана історична лінія розвитку задач ШІ.

Для створення гри “лого” потрібно відносно нескладна функція ШІ, алгоритм та принципи роботи, якої будуть описані далі.

Теорія

Термін інтелект (intelligence) походить від латинського intellectus -- що означає розум, розумові здібності людини. Відповідно штучний інтелект (artificial intelligence) -- ШІ (AI) звичайно тлумачиться як властивість автоматичних систем брати на себе окремі функції інтелекту людини, наприклад, вибирати і приймати оптимальні рішення на основі раніше отриманого досвіду і раціонального аналізу зовнішніх впливів.

Ми, у нашій роботі, інтелектом будемо називати здатність мозку вирішувати (інтелектуальні) задачі шляхом придбання, запам'ятовування і цілеспрямованого перетворення знань у процесі навчання на досвіді й адаптації до різноманітних обставин.

У цьому визначенні під терміном "знання" мається на увазі не тільки ту інформацію, що надходить у мозок через органи почуттів. Такого типу знання надзвичайно важливі, але недостатні для інтелектуальної діяльності. Справа в тім, що об'єкти навколишньої нас середовища мають властивість не тільки впливати на органи почуттів, але і знаходитися один з одним у визначених відносинах. Ясно, що для того, щоб здійснювати в навколишнім середовищі інтелектуальну діяльність (або хоча б просто існувати), необхідно мати в системі знань модель цього світу. У цій інформаційній моделі навколишнього середовища реальні об'єкти, їхньої властивості і відносини між ними не тільки відображаються і запам'ятовуються, але і, як це відзначено в даному визначенні інтелекту, можуть думкою "цілеспрямовано перетворюватися". При цьому істотно те, що формування моделі зовнішнього середовища відбувається "у процесі навчання на досвіді й адаптації до різноманітних обставин".

Ми вжили термін інтелектуальна задача. Для того, щоб пояснити, чим відрізняється інтелектуальна задача від просто задачі, необхідно ввести термін "алгоритм" -- один з наріжних термінів кібернетики.

Під алгоритмом розуміють точне розпорядження про виконання у визначеному порядку системи операцій для рішення будь-якої задачі з деякого даного класу (безлічі) задач. Термін "алгоритм" походить від імені узбецького математика Аль-Хорезми, що ще в IX столітті запропонував найпростіші арифметичні алгоритми. У математику і кібернетику клас задач визначеного типу вважається вирішеним, коли для її рішення встановлений алгоритм. Перебування алгоритмів є природною метою людини при рішенні їм різноманітних класів задач. Відшукання алгоритму для задач деякого даного типу зв'язано з тонкими і складними міркуваннями, що вимагають великій винахідливості і високій кваліфікації. Прийнято вважати, що подібного роду діяльність вимагає участі інтелекту людини. Задачі, зв'язані з відшуканням алгоритму рішення класу задач визначеного типу, будемо називати інтелектуальними.

Що ж стосується задач, алгоритми рішення яких уже встановлені, то, як відзначає відомий фахівець в області ШІ М. Мінський, "зайво приписувати їм таке містичне властивості, як інтелектуальність". Справді, після того, як такий алгоритм уже знайдений, процес рішення відповідних задач стає таким, що його можуть у точності виконати людина, обчислювальна машина (належним образом запрограмована) або робот, що не мають ні найменшого представлення об сутність самої задачі. Потрібно тільки, щоб особу, що вирішує задачу, була здатна виконувати ті елементарні операції, їхній яким складається процес, і, крім того, щоб воно педантично й акуратно керувалося запропонованим алгоритмом. Така особа, діючи, як говорять у таких випадках, чисто машинально, може успішно вирішувати будь-яку задачу розглянутого типу.

Тому представляється зовсім природним виключити їхнього класу інтелектуальних такі задачі, для яких існують стандартні методи рішення. Прикладами таких задач можуть служити чисто обчислювальні задачі: рішення системи лінійних алгебраїчних рівнянь, чисельне інтегрування диференціальних рівнянь і т.д. Для рішення подібного роду задач маються стандартні алгоритми, що представляють собою визначену послідовність елементарних операцій, що може бути легко реалізована у виді програми для обчислювальної машини. На противагу цьому для широкого класу інтелектуальних задач, таких, як розпізнавання образів, гра в шахи, доказ теорем і т.п., навпроти ця формальна розбивка процесу пошуку рішення на окремі елементарні кроки часто виявляється досить скрутним, навіть якщо саме їхнє рішення нескладне.

Таким чином, ми можемо перефразувати визначення інтелекту як універсальний генератор алгоритмів, що здатний створювати алгоритми рішення конкретних задач.

Ще цікавим зауваженням тут є те, що професія програміста, виходячи з наших визначень, є однієї із самих інтелектуальних, оскільки продуктом діяльності програміста є програми -- алгоритми в чистому виді. Саме тому, створення навіть елементів ШІ повинне дуже сильно підвищити продуктивність його праці.

Діяльність мозку, спрямовану на рішення інтелектуальних задач, ми будемо називати мисленням, або інтелектуальною діяльністю. Інтелект і мислення органічно зв'язані з рішенням таких задач, як доказ теорем, логічний аналіз, розпізнавання ситуацій, планування поводження, ігри і керування в умовах невизначеності. Характерними рисами інтелекту, що виявляються в процесі рішення задач, є здатність до навчання, узагальненню, нагромадженню досвіду (знань і навичок) і адаптації до умов, що змінюються, у процесі рішення задач. Завдяки цим якостям інтелекту мозок може вирішувати різноманітні задачі, а також легко перебудовуватися з рішення однієї задачі на іншу. Таким чином, мозок, наділений інтелектом, є універсальним засобом рішення широкого кола задач (у тому числі неформалізованих) для яких немає стандартних, заздалегідь відомих методів рішення.

Варто мати на увазі, що існують і інші, чисто поведінкові (функціональні) визначення. Так, по А.Н. Колмогорову, будь-яка матеріальна система, з яким можна досить довго обговорювати проблеми науки, літератури і мистецтва, має інтелект. Іншим прикладом поведінкового трактування інтелекту може служити відоме визначення А. Тьюринга. Його зміст полягає в наступному. У різних кімнатах знаходяться люди і машина. Вони не можуть бачити один одного, але мають можливість обмінюватися інформацією (наприклад, за допомогою електронної пошти). Якщо в процесі діалогу між учасниками гри людям не вдається установити, що один з учасників -- машина, то таку машину можна вважати обладающей інтелектом.

До речі цікавий план імітації мислення, запропонований А. Тьюрингом. "Намагаючись імітувати інтелект дорослої людини, -- пише Тьюринг, -- ми змушені багато міркувати про той процес, у результаті якого людський мозок досяг свого дійсного стану... Чому б нам замість того, щоб намагатися створити програму, що імітує інтелект дорослої людини, не спробувати створити програму, що імітувала б інтелект дитини? Адже якщо інтелект дитини одержує відповідне виховання, він стає інтелектом дорослої людини... Наш розрахунок полягає у тому, що пристрій, йому подібне, може бути легко запрограмовано... Таким чином, ми розчленуємо нашу проблему на двох частин: на задачу побудови "програми-дитини" і задачу "виховання" цієї програми".

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

Історія розвитку систем ШІ.

Історично склалися три основних напрямки в моделюванні ШІ. У рамках першого підходу об'єктом досліджень є структура і механізми роботи мозку людини, а кінцева мета полягає в розкритті таємниць мислення. Необхідними етапами досліджень у цьому напрямку є побудова моделей на основі психофізіологічних даних, проведення експериментів з ними, висування нових гіпотез щодо механізмів інтелектуальної діяльності, удосконалювання моделей і т.д.

Другий підхід як об'єкт дослідження розглядає ШІ. Тут мова йде про моделювання інтелектуальної діяльності за допомогою обчислювальних машин. Метою робіт у цьому напрямку є створення алгоритмічного і програмного забезпечення обчислювальних машин, що дозволяє вирішувати інтелектуальні задачі не гірше людини.

Нарешті, третій підхід орієнтований на створення змішаних людино-машинних, або, як ще говорять, інтерактивних інтелектуальних систем, на симбіоз можливостей природного і штучного інтелекту. Найважливішими проблемами в цих дослідженнях є оптимальний розподіл функцій між природним і штучним інтелектом і організація діалогу між людиною і машиною.

Найпершими інтелектуальними задачами, що стали вирішуватися за допомогою ЕОМ були логічні ігри (шашки, шахи), доказ теорем. Хоча, правда тут треба відзначити ще кібернетичні іграшки типу "електронної миші" Клода Шеннона, що керувалася складною релейною схемою. Ця мишка могла "досліджувати" лабіринт, і знаходити вихід з нього. А крім того, поміщена у вже відомий їй лабіринт, вона не шукала вихід, а відразу ж, не заглядаючи в тупикові ходи, виходила з лабіринту.

Американський кібернетик А. Самуэль склав для обчислювальної машини програму, що дозволяє їй грати в шашки, причому в ході гри машина навчається або, принаймні, створює враження, що навчається, поліпшуючи свою гру на основі накопиченого досвіду. У 1962 р. ця програма убилася з Р. Нили, найсильнішим шашкістом у США і перемогла.

Яким образом машині удалося досягти настільки високого класу гри?

Природно, що в машину були програмно закладені правила гри так, що вибір чергового ходу був підлеглий цим правилам. На кожній стадії гри машина вибирала черговий хід з безлічі можливих ходів відповідно до деякого критерію якості гри. У шашках (як і в шахах) звичайно невигідно утрачати свої фігури, і, навпроти, вигідно брати фігури супротивника. Гравець (будь він людина або машина), що зберігає рухливість своїх фігур і право вибору ходів і в той же час тримає під боєм велике число полів на дошці, звичайно грає краще свого супротивника, що не додає значення цим елементам гри. Описані критерії гарної гри зберігають свою силу протягом усієї гри, але є й інші критерії, що відносяться до окремих її стадій -- дебютові, миттэндшпилю, ендшпілеві.

Розумно сполучаючи такі критерії (наприклад у виді лінійної комбінації з коефіцієнтами, що експериментально підбираються, або більш складним образом), можна для оцінки чергового ходу машини одержати деякий числовий показник ефективності -- оцінну функцію. Тоді машина, порівнявши між собою показники ефективності чергових ходів, вибере хід, що відповідає найбільшому показникові. Подібна автоматизація вибору чергового ходу не обов'язково забезпечує оптимальний вибір, але все-таки це якийсь вибір, і на його основі машина може продовжувати гру, удосконалюючи свою стратегію (спосіб дії) у процесі навчання на минулому досвіді. Формальне навчання складається в підстроюванні параметрів (коефіцієнтів) оцінної функції на основі аналізу проведених ходів і ігор з урахуванням їх результату.

На думку А. Самуэля, машина, що використовує цей вид навчання, може навчитися грати краще, ніж середній гравець, за відносно короткий період часу.

Можна сказати, що всі ці елементи інтелекту, продемонстровані машиною в процесі гри в шашки, повідомлені їй автором програми. Почасти це так. Але не слід забувати, що програма ця не є "твердої", заздалегідь продуманої у всіх деталях. Вона удосконалює свою стратегію гри в процесі самонавчання. І хоча процес "мислення" у машини істотно відмінний оттого, що відбувається в мозку граючих у шашки людини, вона здатна в нього виграти.

Яскравим прикладом складної інтелектуальної гри донедавна були шахи. У 1974 р. відбувся міжнародний шаховий турнір машин, постачених відповідними програмами. Як відомо, перемогу на цьому турнірі одержала радянська машина із шаховою програмою "Каисса".

Такий інтерес до задачі стимулювався фантастичними перспективами широкого практичного використання результатів теоретичних досліджень: читаючі автомати, системи ШІ, що ставлять медичні діагнози, що проводять криміналістичну експертизу і т.п., а також роботи, здатні розпізнавати й аналізувати складні сенсорні ситуації.

У 1957 р. американський фізіолог Ф. Розенблатт запропонував модель зорового сприйняття і розпізнавання -- перцептрон. Поява машини, здатної навчатися поняттям і розпізнавати пропоновані об'єкти, виявилося надзвичайно цікавим не тільки фізіологам, але і представникам інших областей знання і породило великий потік теоретичних і експериментальних досліджень.

Перцептрон або будь-яка програма, що імітує процес розпізнавання, працюють у двох режимах: у режимі навчання й у режимі розпізнавання. У режимі навчання хтось (людина, машина, робот або природа), що грає роль учителя, пред'являє машині об'єкти й об кожнім них них повідомляє, до якого поняття (класові) він належить. По цим даним будується вирішальне правило, що є, власне кажучи, формальним описом понять. У режимі розпізнавання машині пред'являються нові об'єкти (узагалі говорячи, відмінні від раніше пред'явлених), і вона повинна їх класифікувати, по можливості, правильно.

Проблема навчання розпізнаванню тісно зв'язана з іншою інтелектуальною задачею -- проблемою перекладу з однієї мови на інший, а також навчання машини мові. При досить формальній обробці і класифікації основних граматичних правил і прийомів користування словником можна створити цілком задовільний алгоритм для перекладу, скажемо наукового або ділового тексту. Для деяких мов такі системи були створені ще наприкінці 60-г. Однак для того, щоб складно перевести досить великий розмовний текст, необхідно розуміти його зміст. Роботи над такими програмами ведуться вже давно, але до повного успіху ще далеко. Маються також програми, що забезпечують діалог між людиною і машиною на урізаній природній мові.

Що ж стосується моделювання логічного мислення, те гарною модельною задачею тут може служити задача автоматизації доказу теорем. Починаючи з 1960 р., був розроблений ряд програм, здатних знаходити доказу теорем у вирахуванні предикатів першого порядку. Ці програми володіють, за словами американського фахівця в області ШІ Дж. Маккаті, "здоровим глуздом", тобто здатністю робити дедуктивні висновки.

У програмі К. Гріна й ін., що реалізує питально-відповідну систему, знання записуються мовою логіки предикатів у виді набору аксіом, а питання, що задаються машині, формулюються як підлягаючому доказові теореми. Великий інтерес представляє "інтелектуальна" програма американського математика Хао Ванга. Ця програма за 3 хвилини роботи IBM-704 вивела 220 щодо простих лем і теорем з фундаментальної математичної монографії, а потім за 8.5 хв видала доказу ще 130 більш складних теорем, частина їхній яких ще не була виведена математиками. Правда, дотепер жодна програма не вивела і не довела ні однієї теореми, яка б, що називається "конче" була б потрібна математикам і була б принципово новою.

Дуже великим напрямком систем ШІ є роботехника. У чому основна відмінність інтелекту робота від інтелекту універсальних обчислювальних машин?

Для відповіді на це питання доречно згадати приналежному великому російському фізіологові И.М. Сєченову висловлення: "... уся нескінченна розмаїтість зовнішніх проявів мозкової діяльності зводиться остаточно лише до одного явища -- м'язовому рухові". Іншими словами, вся інтелектуальна діяльність людини спрямована в кінцевому рахунку на активну взаємодію з зовнішнім світом за допомогою рухів. Точно так само елементи інтелекту робота служать насамперед для організації його цілеспрямованих рухів. У той же час основне призначення чисте комп'ютерних систем ШІ складається в рішенні інтелектуальних задач, що носять абстрактний або допоміжний характер, що звичайно не зв'язані ні зі сприйняттям навколишнього середовища за допомогою штучних органів почуттів, ні з організацією рухів виконавчих механізмів.

Перших роботів важко назвати інтелектуальними. Тільки в 60-х роках з'явилися роботи, що керувалися універсальними комп'ютерами. До приклада в 1969 р. в Електротехнічній лабораторії (Японія) почалася розробка проекту "промисловий інтелектуальний робот". Ціль цієї розробки -- створення маніпуляційного робота з елементами штучного інтелекту для виконання складально-монтажних робіт з візуальним контролем.

Маніпулятор робота має шість ступенів волі і керується міні-еом NEAC-3100 (обсяг оперативної пам'яті 32000 слів, обсяг зовнішньої пам'яті на магнітних дисках 273000 слів), що формує необхідний програмний рух, що відпрацьовується системою. Захват маніпулятора оснащений тактильними датчиками.

Як систему зорового сприйняття використовуються дві телевізійні камери, постачені червоно-зелено-синіми фільтрами для розпізнавання кольору предметів. Поле зору телевізійної камери розбите на 64*64 осередків. У результаті обробки отриманої інформації грубо визначається область, займана цікавлячого робота предметом. Далі, з метою детального вивчення цього предмета виявлена область знову поділяється на 4096 осередків. У тому випадку, коли предмет не міститься в обране "віконце", воно автоматично переміщається, подібно тому, як людина сковзає поглядом по предметі. Робот Електротехнічної лабораторії був здатний розпізнавати прості предмети, обмежені площинами і циліндричними поверхнями при спеціальному висвітленні. Вартість даного експериментального зразка складала приблизно 400000 доларів.

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

Ще мабуть тут можна виділити роботи київського Інституту кібернетики, де під керівництвом Н.М. Амосова і В.М. Глушкова (нині покійного) ведеться комплекс досліджень, спрямованих на розробку елементів інтелекту роботів. Особлива увага в цих дослідженнях приділяється проблемам розпізнавання зображень і мови, логічного висновку (автоматичного доказу теорем) і керування за допомогою нейроподібних мереж.

До приклада можна розглянути створений ще в 70-х роках макет транспортного автономного інтегрального робота (ТАІР). Конструктивно ТАІР являє собою триколісне шасі, на якому змонтована сенсорна система і блок керування. Сенсорна система містить у собі наступні засоби чуттів: оптичний далекомір, навігаційна система з двома радіомаяками і компасом, контактні датчики, датчики кутів нахилу візка, таймер і ін. И особливість, що відрізняє ТАІР від багатьох інших систем, створених у нас і за рубежем, це те, що в його складі немає комп'ютера в тім виді, до якого ми звикли. Основу системи керування складає бортова нейроподібна мережа, на якій реалізуються різні алгоритми обробки сенсорної інформації, планування поводження і керування рухом робота.

Наприкінці даного дуже короткого огляду розглянемо приклади великомасштабних експертних систем.

MICIN -- експертна система для медичної діагностики. Розроблена групою по інфекційних захворюваннях Стенфордского університету.

Ставить відповідний діагноз, виходячи з представлених їй симптомів, і рекомендує курс медикаментозного лікування кожної з діагностування інфекцій. База даних складається з 450 правил.

PUFF -- аналіз порушення подиху. Дана система являє собою MICIN, з якої видалили дані по інфекціях і вставили дані про легеневі захворювання.

DENDRAL -- розпізнавання хімічних структур.

Дана система найстарша, з експертних. Перші версії даної системи з'явилися ще в 1965 році в усі тім же Стенфордском університеті.

Користувач дає системі DENDRAL деяку інформацію про речовину, а також дані спектрометрії (інфрачервоної, ядерного магнітного резонансу і мас-спектрометрії), і та у свою чергу видає діагноз у виді відповідної хімічної структури.

PROSPECTOR -- експертна система, створена для сприяння пошукові комерційно виправданих родовищ корисних копалин.

Практична частина

Загальний алгоритм роботи програми відносно простий і не потребує коментарів.

Зауважимо лише, що для роботи програми необхідна наявність слідуючих бібліотек:

1) stdio.h

2) string.h

3) stdlib.h

4) fstream.h

5) process.h

6) graphics.h

Ріс. 1. Заголовок програми - логічної гри ЛОГО

Структура файла керування програмою

goto 300 250;

cl 2;

fd 10;

mfd 10;

cl 6;

rt 10;

mrt 10;

cl 5;

bk 20;

mbk 10;

c1 3;

mbk 50;

cl 4;

lt 50;

fd 20;

lt 30;

bk 40;

cl 7;

fd 100;

Ім`я цього файлу необхідно ввести на початку роботи програми.

Лістинг розробленної програми

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<fstream.h>

#include<process.h>

#include<graphics.h>

class logo //main class of the program

{int x,y;//x and y to store the present cursor position

int colour; //colour stores the present drawing colour

public:

void fdraw(int a)//function to draw pixels upward

{

int i;

for(i=0;i<a;i++)

{

y--;

putpixel(x,y,colour);

}

}

void bdraw(int a)//function to draw pixels downward

{

int i;

for(i=0;i<a;i++)

{

y++;

putpixel(x,y,colour);

}

}

void ldraw(int a) //function to draw pixels to left

{

int i;

for(i=0;i<a;i++)

{

x--;

putpixel(x,y,colour);

}

}

void rdraw(int a)//function to draw pixels to the right

{

int i;

for(i=0;i<a;i++)

{

x++;

putpixel(x,y,colour);

}

}

void gotoxny(int a,int b)

{

x=a;

y=b;

}

void mfd(int a)//does not draw but moves the drawing position forward

{

y-=a;

}

void mbk(int a) //does not draw but moves the drawing position backward

{

x+=a;

}

void mlt(int a) //does not draw but moves the drawing position to left

{

x-=a;

}

void mrt(int a) //does not draw but moves the drawing position to right

{

y+=a;

}

void cl(int a)

{

colour=a;

}

};

void main()

{

logo obj; //main object of the class logo

char com[80];//com[80] stores each line in the file

char command[3][20]; //command[5][20] stores the splitted contents of com[80]

int i=0,sctr=0,mctr=0,ls,j;

char ch;

fstream fin;

char fname[11];

cout<<"Enter filename :";

cin>>fname;

//initialize graphics

int gd=DETECT,gm;

initgraph(&gd,&gm,""); //if your compiler shows an error bgi graphics not

//initialised then you may have to type the correct

//path of your bgi files something like "E:\\TC\\BGI"

fin.open(fname,ios::in); //opens file specified by fname

if(!fin) //checks whether file open is a succes

{

cout<<"Error opening file "<<fname;

exit(0);

}

do

{

//to initialize com and command to spaces befor each read

strcpy(com,"");

for(int k=0;k<5;k++)

strcpy(command[k]," ");

j=0;

//to read each lines which ends with a ;

ch=fin.get();

while(ch!=';' && fin.good())

{

com[j]=ch;

ch=fin.get();

j++;

}

com[j]='\0';

//to seperate out each line to its components

i=0;

ls=strlen(com);

do

{

sctr=0;

do

{

command[i][sctr]=com[mctr];

sctr++;

mctr++;

}

while(com[mctr]!=' ' && mctr<ls);

command[i][sctr]='\0';

i++;

mctr++;

}

while(mctr<ls);

mctr=1;

//to compare commands and execute them

//atoi is a function to convert strings to integers

int var;

if(strcmpi("fd",command[0])==0)

{

var=atoi(command[1]);

obj.fdraw(var);

}

else if(strcmpi("bk",command[0])==0)

{

var=atoi(command[1]);

obj.bdraw(var);

}

else if(strcmpi("lt",command[0])==0)

{

var=atoi(command[1]);

obj.ldraw(var);

}

else if(strcmpi("rt",command[0])==0)

{

var=atoi(command[1]);

obj.rdraw(var);

}

else if(strcmpi("cl",command[0])==0)

{

var=atoi(command[1]);

obj.cl(var);

}

else if(strcmpi("goto",command[0])==0)

{

obj.gotoxny(atoi(command[1]),atoi(command[2]));

}

//mfd,mbk,mlt and mrt does not draw anyt

// hing instead it moves drawing position

else if(strcmpi("mfd",command[0])==0)

obj.mfd(atoi(command[1]));

else if(strcmpi("mbk",command[0])==0)

obj.mbk(atoi(command[1]));

else if(strcmpi("mlt",command[0])==0)

obj.mlt(atoi(command[1]));

else if(strcmpi("mrt",command[0])==0)

obj.mlt(atoi(command[1]));

}

while(!fin.eof());

}

Висновки

В ході курсової роботи були досліджені питання задач штучного інтелекту (ШІ).

Була розроблена досить нескладна функція ШІ, головними рисами якої є простота та швидкодія. Це базується на виборі найкращих ходів по обидва боки. На фінальному етапі функція ШІ обирає найбільш вигідну для комп'ютера ланцюжок ходів.

Програма відрізняється від існуючих на сьогоднішній день простотою інтерфейсу та настроювань.

Література

1. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си. Мн., 1992. 240 С.

2. Нейбауэр А. Моя первая программа на С/С++. П., 1995. 368 С.

3. Бруно Бабэ. Просто и ясно о Borland C++. М., 1996. 400 С.

4. Шамас Н.К. Основы С++ и обьектно-ориентированного программирования. К., 1996. 448 С.

5. Справочник по классам Borland C++ 4.0. К., 1994. 256 С.

6. ObjectWindows для C++. К., 1993., 208 С.

7. Том Сван. Программирование для Windows в Borland C++. М., 480 С.

8. Н. Барканати. Программирование игр для Windows на Borland C++. М., 1994.


Подобные документы

  • Перелік та призначення режимів та структура діалогу. Опис компонентів програми і створення проекту, вимоги до її структури, функціональні особливості та оцінка можливостей. Загальна характеристика розробленої програми, її лістинг та аналіз ефективності.

    курсовая работа [380,5 K], добавлен 01.04.2016

  • Варіантний аналіз та вибір методів розв’язування, основні поняття та визначення, особливості розробки баз даних. Описовий алгоритм головної програми та її структури, опис авторської заставки. Структура модулів та опис функцій, лістинг програми.

    курсовая работа [2,6 M], добавлен 30.11.2009

  • Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.

    курсовая работа [762,8 K], добавлен 03.05.2015

  • Вивчення структури програми на Паскалі. Значення функції для будь-якого введеного значення аргументу. Введення-виведення за допомогою операторів Readln і Writeln, визначення їх відмінності від операторів Read і Write. Лістинг і результати роботи програми.

    лабораторная работа [217,4 K], добавлен 04.11.2014

  • Призначення ігрової програми "Змійка" для розвитку уваги та логічного мислення гравців. Розробка програми в середовищі C++ Builder 6, її функціонування в ОС Windows. Опис алгоритму та основних функцій програми. Основні переваги та недоліки мови С++.

    реферат [1,7 M], добавлен 17.12.2014

  • Створення програми для роботи з веб-камерою з автоматичним визначенням встановленої камери на комп'ютері. Характеристика апаратної конфігурації програми. Опис мови і середовища програмування. Розробка алгоритму, інструкції для програміста та користувача.

    курсовая работа [1,2 M], добавлен 26.07.2013

  • Характеристика програмної взаємодії людини з комп'ютером. Визначення функціональних та експлуатаційних потреб при голосовому управлінні. Реалізація програмного забезпечення. Розробка тестів та тестування системи. Аналіз ефективності даної програми.

    курсовая работа [2,8 M], добавлен 15.10.2014

  • Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.

    курсовая работа [1,0 M], добавлен 28.06.2012

  • Проектування програми керування мікропроцесорним пристроєм світлової індикації на мові С та Assembler. Розробка алгоритму роботи програми, структурної та електричної принципових схем. Здійснення комп’ютерного моделювання для перевірки розроблених програм.

    курсовая работа [710,7 K], добавлен 04.12.2014

  • Поняття штучного інтелекту, його порівняння з природним. Коротка характеристика особливостей використання штучного інтелекту в медицині, військовій справі та комп'ютерних іграх. Проблема взаємодії носіїв універсального штучного інтелекту та суспільства.

    контрольная работа [29,6 K], добавлен 07.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.