Содержание:
Введение ……………………………………………………………………..............................3
- Основные принципы автоматного программирования (АП)…….5
- Игра «Морской бой» ……………………………………………….....................7
2.1. Общие правила и исходная диспозиция ………………………..............…7
2.2. Автоматное управление игрой …………………………………..................….9
2.3. Программная реализация проекта………………………................……….13
- Обсуждение результатов анализа АП…………..…..........………………15
Заключение ……………………………………………………………...........................…. 16
Список литературы …………………………………………….........................…………17
Приложение…………………………………………………………............................……..18
Подход к программированию, называемый автоматным программированием (АП), активно развивается начиная с 1990-91г.г. главным образом в работах Шалыто А.А. (1,2,3,4) и Кузнецова Б.П. (5). К этому же направлению можно отнести работы Любченко В.С. (6), в которых развивается, так называемое, конечно-автоматное программирование (КА- программирование).
Насколько можно судить по указанным работам толчком к развитию АП явились два фактора:
- успешное применение конечных автоматов при разработке и реализации трансляторов, точнее говоря, лексической фазы трансляторов (10), и
- не менее успешное применение конечных автоматов для построения программ логического управления (11).
В самом общем виде, автоматное программирование, иначе называемое так же«программированием от состояний» или «программированием с явным выделением состояний» трактуется как метод разработки программного обеспечения, основанный на расширенной модели конечных автоматов и ориентированный на создание широкого класса приложений (4).
Пример кода:
//===================================================================================== //функция проверяет свободна ли клетка поля и смежные с ней клетки function Freedom (x, y: Integer; Field: Tfield): Boolean; const d: array[1..8,1..2] of Integer = ((0,1),(1,0),(0,-1),(-1,0),(1,1),(-1,1),(1,-1),(-1,-1)); var i: Integer; dx, dy: Integer; begin if (x > 0) and (x < 11) and (y > 0) and (y < 11) and (Field[x,y] =-1) then begin for i := 1 to 8 do begin dx := x + d[i,1]; dy := y + d[i,2]; if (dx > 0) and (dx < 11) and (dy > 0) and (dy < 11) and (Field[dx,dy] >-1) then begin Freedom := False; Exit; end; {if} end; {for} Freedom := True; end else Freedom := False; end; {func Freedom} //=====================================================================================
Содержание архива:
- исходный код на Delphi 7
- пояснительная записка к курсовой работе (29 страниц)
n1kkondrat