Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
procedure TForm1.N2Click(Sender: TObject); //начинает новыю игруСодержание книги
Поиск на нашем сайте Begin image1.Canvas.Brush.Color:=clwhite; rot:=false; k11:=3; k33:=2; k32:=5; k31:=9; label12.Height:=62; image2.Height:=0; For i:=1 to 10 do //обнуляет массивы for j:=1 to 10 do begin b1[i,j]:=0; b2[i,j]:=0; image1.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j); end; FormCreate (self); //использует процедуру создания формы end; procedure TForm1.vistrel(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); //процедура обмена выстрелов Begin PlaySound('BUM_WAV', HInstance, SND_RESOURCE or SND_ASYNC or SND_NOWAIT); x1:=(X div 20)+1; y1:=(Y div 20)+1; if kon = false then begin //проверка закончилась игра или нет case b 2[ x 1, y 1] of 0: b 2[ x 1, y 1]:=3; //если попал в пустую клетка становится - просреленной пустой 2: b 2[ x 1, y 1]:=4; //если попал в клетку с кораблем то она становится- подбитой 3,4: exit; //если попал в клетку в которую уже стрелял то ничего не происходит end; for i:=1 to 10 do //рисуется графическое поле компютера for j:=1 to 10 do begin case b2[i,j] of 4: begin //клетка в котрой стоит подбитый или не доконца подбитый корабль if ((b 2[ i +1, j ]=2) //не доконца подбитый корабль or(b2[i,j+1]=2) or(b2[i-1,j]=2) or(b2[i,j-1]=2)) or (((b2[i+1,j]=4)and(b2[i+2,j]=2)) or((b2[i,j+1]=4)and(b2[i,j+2]=2)) or((b2[i-1,j]=4)and(b2[i-2,j]=2)) or((b2[i,j-1]=4)and(b2[i,j-2]=2))) or(((b2[i+1,j]=4)and(b2[i+2,j]=4) and (b2[i+3,j]=2)) or((b2[i,j+1]=4)and(b2[i,j+2]=4)and(b2[i,j+3]=2)) or((b2[i-1,j]=4)and(b2[i-2,j]=4)and(b2[i-3,j]=2)) or((b2[i,j-1]=4)and(b2[i,j-2]=4)and(b2[i,j-3]=2))) then begin image2.Canvas.Brush.Color:=clgray; image2.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j); image2.Canvas.pen.Color:=clred; image2.Canvas.MoveTo(20*i-19,20*j-19); image2.Canvas.LineTo(20*i-1,20*j-1); image2.Canvas.MoveTo(20*i-1,20*j-19); image2.Canvas.LineTo(20*i-19,20*j-1); image2.Canvas.pen.Color:=clblack; end else //подбитый корабль begin image2.Canvas.Brush.Color:=clred; image2.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j) end; end; 3: begin //простреленная пустая клетка image2.Canvas.Brush.Color:=clwhite; image2.Canvas.Rectangle(20*i-15,20*j-15,20*i-5,20*j-5) end; end; end; win:= true; For i:=1 to 10 do //если находится хотябы один неподбитый корабль то победы нет for j:=1 to 10 do if b2[i,j]=2 then win:=false; if win=true then //вывод сообщения при победе begin PlaySound('POBEDA_WAV', HInstance, SND_RESOURCE or SND_ASYNC or SND_NOWAIT); showmessage ('Поздравляю!'+#13+'Вы победили.'); kon:=true; exit end; if b 2[ x 1, y 1]=4 then //если игрок попал то компьютер не ходит exit; bum:=false; cokil:=true; while (bum = false) or (cokil = true) do //стрел-ть до тех пор пока не попал в клетку в которую не стрылял и если она пустая Begin m:=random(10)+1; n:=random(10)+1; case b1[m,n] of 0: begin b1[m,n]:=3; bum:=true; cokil:=false end; 2: begin b1[m,n]:=4; bum:=true; cokil:=true end end; For i:=1 to 10 do //рисуется графическое поле игрока for j:=1 to 10 do begin case b1[i,j] of 3: begin //простреленая пустая клетка image1.Canvas.Brush.Color:=clwhite; image1.Canvas.Rectangle(20*i-15,20*j-15,20*i-5,20*j-5) end; 4: begin //клетка в котрой стоит подбитый или не доконца подбитый корабль if ((b1[i+1,j]=2) or(b1[i,j+1]=2) or(b1[i-1,j]=2) or(b1[i,j-1]=2)) or(((b1[i+1,j]=4)and(b1[i+2,j]=2)) or((b1[i,j+1]=4)and(b1[i,j+2]=2)) or((b1[i-1,j]=4)and(b1[i-2,j]=2)) or((b1[i,j-1]=4)and(b1[i,j-2]=2))) or(((b1[i+1,j]=4)and(b1[i+2,j]=4)and(b1[i+3,j]=2)) or((b1[i,j+1]=4)and(b1[i,j+2]=4)and(b1[i,j+3]=2)) or((b1[i-1,j]=4)and(b1[i-2,j]=4)and(b1[i-3,j]=2)) or((b1[i,j-1]=4)and(b1[i,j-2]=4)and(b1[i,j-3]=2))) then begin //не доконца подбитый корабль image1.Canvas.pen.Color:=clred; image1.Canvas.MoveTo(20*i-19,20*j-19); image1.Canvas.LineTo(20*i-1,20*j-1); image1.Canvas.MoveTo(20*i-1,20*j-19); image1.Canvas.LineTo(20*i-19,20*j-1); image1.Canvas.pen.Color:=clblack; end else //подбитый корабль begin image1.Canvas.Brush.Color:=clred; image1.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j) end; end; end; end; end; lose:= true; For i:=1 to 10 do //если находится хотябы один неподбитый корабль то проигрыша нет for j:=1 to 10 do if b1[i,j]=2 then lose:=false; if lose=true then begin PlaySound('PORAJENIE_WAV', HInstance, SND_RESOURCE or SND_ASYNC or SND_NOWAIT); kon:=true; showmessage ('Вы проиграли.'+#13+'Попробуйте ещё раз!'); exit end; end; end; procedure TForm1.N3Click(Sender: TObject); //процедура нажатия на кнопку "выход" Begin Close end; procedure TForm1.N5Click(Sender: TObject); //процедура нажатия на кнопку "О программе..." Begin Form2.ShowModal end; procedure TForm1.N6Click(Sender: TObject); Begin winhelp(Form1.Handle,'morb.hlp',HELP_CONTEXT,1); end; End.
Приложение 4. Исходный код модуля второй формы «Unit2.pas»
unit Unit2; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls; Type TForm2 = class(TForm) Image1: TImage; Label1: TLabel; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Var Form2: TForm2; Implementation {$R *.dfm} procedure TForm2.FormCreate(Sender: TObject); Begin label 1. Caption:='Курсовая работа студента 4-ого курса'+ #13+#13+'факультета информатики'+ #13+#13+'Круглова В.Н.' end; procedure TForm2.Button1Click(Sender: TObject); Begin Close end; End.
|
||
|
Последнее изменение этой страницы: 2021-05-12; просмотров: 147; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |