Требуется разработать программное приложение «Игра 100 спичек». Суть игры: из кучки, первоначально содержащей 100 спичек, двое играющих поочередно берут по несколько спичек: не менее одной и не более десяти. Выигрывает игрок, взявший последнюю спичку. Имеется возможность выбора: игра с компьютером или с другим пользователем.
Язык программирования: Delphi7, требуемая ОС: Windows 95 и выше.
Для правильного отображения кириллицы может потребоваться произвести настройку шрифта следующим образом: нажать Правую Кнопку Мыши на адресной строке, во вкладке “Шрифт” изменить шрифт на Lucida Console и сохранить изменения для всех последующих запусков. Данная программа представляет собой алгоритм, который можно разделить на две составляющих: часть, где описан алгоритм, для игры пользователя и компьютера и часть где описан алгоритм для игры пользователя с другим пользователем.
При запуске файла progacurs_ov.exe пользователь увидит меню:
Рисунок 1 меню программы
После того как он выполнит предложенные действия откроется меню:
Рисунок 2 выбор игрока
После чего начнется сама игра. Если пользователь нажал (1), тогда он будет играть с компьютером. Сначала право хода будет предоставлено самому игроку.
Рисунок 3 ход пользователя
Если игрок ввел число неудовлетворяющее правилам игры, тогда выходит сообщение
Рисунок 4 ошибка ввода
Затем право хода предоставляется компьютеру.
Рисунок 5 ход копьютера
Игра продолжается пока пользователь или компьютер не заберут последнюю спичку после чего выводится сообщение о результате игры.
Рисунок 6 вывод результата
Если пользователь выбрал (2), тогда он будет играть с другим пользователем.
Сначала ход предоставляется игроку №1.
Рисунок 7 ход игрока №1
Затем ходит игрок №2. Если один из игроков ввел число, не удовлетворяющее условиям игры, тогда выводится
сообщение. Игра продолжается пока один из игроков не заберет последнюю спичку. Если спичку забрал игрок №1, тогда выводится сообщение
В начале программы пользователю предоставляется возможность путем ввода значения переменной k выбрать, с кем он будет играть (при k=1, при k=2 , иначе повторяется ввод запроса на выбор значения k). После этого переменной S (общее кол-во спичек требуемых для игры) присваивается значение «100». Затем пользователь путем ввода значений переменной N выбирает, какое кол-во спичек он хочет взять. Происходит проверка значения переменной N на соответствие условию (при N>=1, при N<=10 иначе повторяется ввод запроса на выбор значения N). Если значение переменной N соответствует заданным условиям, тогда значение переменной S уменьшается на значение переменной N. Если пользователь в начале игры выбрал значение k=1, тогда после его хода осуществляется ход компьютера, значение переменной задается следующим образом N:=Random(10)+1. В случае, когда после хода пользователя значение переменной S<=10, тогда переменной S присваивается значение «0». Пользователь и компьютер будут ходить поочередно, пока значения переменной S не достигнет нуля. После этого происходит вывод результата на экран.
Если пользователь изначально выбрал значение k=2, в этом случае игра осуществляется между двумя пользователями, которые ходят поочередно, все действия производятся аналогично.
В процессе изучения материала, относящегося к теме данной курсовой работы, я узнала, что такое интеллектуальные системы, как они применяются, способы построения интеллектуальных систем, какие у них функциональное возможности, какие существуют методы приобретения знаний в интеллектуальных системах.
В заключении стоит отметить, что интеллектуальные системы все больше проникают в жизнь человека и играют очень важную в ней роль. Со временем я считаю, что интеллектуальные системы будут охватывать все сферы человеческой жизни.
Что касается практической части, то мною был разработан программный продукт «Игра «100 спичек».
Таким образом я считаю, что поставленные цели, заявленные во введении мной были выполнены.
Рисунок 8 блок-схема
program progacurs_ov;
{$APPTYPE CONSOLE}
uses
windows,
CRT;
const InitialCount=100;
var S,N,Player,k: integer; Correct: boolean;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
writeln(' ИГРА 100 СПИЧЕК!');
writeln(' ПРАВИЛА ИГРЫ:');
writeln(' Из кучки, первоначально содержащей 100 спичек,');
writeln(' двое играющих поочередно берут по несколько спичек:');
writeln(' не менее одной и не более десяти.');
writeln(' Выигрывает игрок, взявший последнюю спичку.');
writeln('Данная игра позволяет играть с компьютером или с другим пользователем');
writeln(' Для того, чтобы выбрать нажмите соответствующую цифру');
writeln(' Кол-во спичек выбирается также набором цифр');
writeln;
writeln;
writeln(' Для перехода к игре нажмите Enter');
readln;
ClrScr;
repeat
writeln(' Играть с компьютером (1), играть c человеком (2): ');
readln(k);
correct:=(k>=1) and (k<=2);
if not correct then
writeln(' Неправильно выбрано число игроков');
until correct;
if k=1 then
begin
player:=1;
S:=InitialCount;
ClrScr;
repeat
if Player=1 then
begin
repeat
writeln(' Ваш ход. На столе ',S,' спичек.');
writeln(' Сколько спичек вы берете?');
readln(N);
ClrScr;
Correct:=(N>=1) and (N<=10) and (N<=S);
if not Correct then
writeln(' Неверно! Повторите ввод! ');
until Correct;
ClrScr;
end
else
begin
N:=Random(10)+1;
if N>S then N:=S;
writeln(' Мой ход. Я взял ',N,' спичек');
end;
if S<=10 then S:=0 else S:=S-N;
if Player=1 then
Player:=2
else
Player:=1;
until S=0; ClrScr;
if Player=1 then
writeln(' ВЫ ПРОИГРАЛИ!!!')
else
writeln(' ВЫ ПОБЕДИЛИ!!!');
readln;
end
else
begin
player:=2;
S:=InitialCount;
ClrScr;
repeat
if Player=2 then
begin
repeat
write(' Ход игрока № 1. На столе ', S,' спичек.');
write (' Сколько спичек вы берете?');
readln(N);
ClrScr;
Correct:=(N>=1) and (N<=10) and (N<=S);
if not Correct then
writeln(' Неверно! Повторите ввод!');
until Correct;
end
else
begin
repeat
write(' Ход игрока № 2. На столе ', S,' спичек.');
write (' Сколько спичек вы берете?');
readln(N);
ClrScr;
Correct:=(N>=1) and (N<=10) and (N<=S);
if not Correct then
writeln(' Неверно! Повторите ввод!');
until Correct;
end;
S:=S-N;
if Player=1 then
Player:=2
else
Player:=1;
until S=0;
ClrScr;
if Player=1 then
writeln(' ПОБЕДА ИГРОКА № 1 !!!')
else
writeln(' ПОБЕДА ИГРОКА № 2 !!!');
readln;
end;
readln;
exit;
end.
1). В. Б. Кудрявцев. Введение в теорию интеллектуальных систем: Учеб. пособие/МаксПресс – М., 2006. – 210 с.
2). Л. С. Болотова. Системы искусственного интеллекта. Теоретические основы и формальные модели представления знаний: Учеб. пособие/ МИРЭА.– М., 2001. – 78 с.
3). Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. – СПб: Питер, 2001.– 384 с.
4). П. Джексон. Введение в экспертные системы.- М.: Изд-во Вильямс, 2001.- 624 с.
5). Искусственный интеллект. Справочник. Книги 1,2,3. –М., 1990
6). Мичи Д., Джонстон Р. Компьютер – творец.- М.: Мир, 1987.- 255 с.
7). Пупков К.А., Коньков В.Г. Интеллектуальные системы. - M.: Изд-во МГТУ им. Н.Э. Баумана, 2003. - 348 с.:ил.