1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
| PROGRAM Угадай число;
USES Crt;
CONST ESC=#27; { задаем константы}
NMax=1000; {задаем максимальное значение загадываемого числа}
VAR n, n_i,x: byte; {определяем тип переменных}
ch, c:char;
PROCEDURE DrawWindow (c1,r1,c2,r2,bordcolor,bkcolor:integer);
Var i:integer;
begin
Draw (c1,r1,c2,r2,bordcolor,bkcolor);
WriteC (c1,r1,' ');
WriteC (c2,r1,' ');
WriteC (c1,r2,' ');
WriteC (c2,r2,' ');
for i:=r1+1 to r2-1 do
begin
WriteC (c1,i,'');
WriteC (c2,i,'');
end;
for i:=c1+1 to c2-1 do
begin
WriteC (i,r1,'');
WriteC (i,r2,'');
end;
end;
PROCEDURE Draw (c1,r1,c2,r2,text,back:integer);
var
c:byte;
i,j:integer;
begin
TextColor (text);
TextBackGround (red);
for i:=c1 to c2 do
for j:=r1 to r2 do
begin
gotoxy (i,j);
write (' ');
end;
end;
PROCEDURE WriteC (c,r:integer; s:string);
begin
GotoXy (c,r);
Write (s);
end;
PROCEDURE DefaultScreen;
begin
TextColor (lightgray);
TextBackGround (green);
ClrScr;
end;
BEGIN {начинаем программу}
DefaultScreen; {вызов процедуры DefaultScreen}
Window (1, 1, 80, 30);
DrawWindow (5,6,60,20,yellow,red); {Задаем параметры окна}
Window (5, 6, 60, 20);
Writeln(' УГАДАЙ ЧИСЛО!'); {Записываем правила игры}
Writeln('-----------------------------------------------------------------------------------');
Writeln(' Компьютер, задумывает число от 0 до 1000');
Writeln(' Вам надо отгадать его за 10 попыток.');
Writeln(' После каждой попытки выводится подсказка');
Writeln(' Больше или меньше названного задуманное число.');
Writeln('-----------------------------------------------------------------------------------');
Writeln(‘ Если за 10 попыток число не отгадано, то ’);
Writeln(‘ игра заканчивается, вы проиграли.’);
Writeln('-----------------------------------------------------------------------------------');
WriteLn;
Randomize; {датчик случайных чисел}
Repeat; {Процедура повтора}
Writeln(‘Для начала игры нажмите клавишу INTER’);
Writeln(‘или ESC для выхода’);
Ch:=UpCase(ReadKey); {Для начала игры нужно нажать клавишу}
If ch=ESC then halt; {Если нажать ESC, то игра закончится}
x:=x+1; {присваиваем переменной x шаг плюс 1}
n_i:=Random (NMax-1)+1; {Программа задумала число}
FOR x:=1 to 10 do {Задаем цикл }
Begin
Begin
Repeat {Создаем процедуру повтора}
Write(‘Введите число: ‘);
Read(n); {Считываем введённое число}
If (n<0) or (n>1000) {Если введённое число не входит в диапазон от 0 до 1000}
Then Writeln(‘ Вы что не читали правила игры?! Введите число от 0 до 1000!’); {Выводим предупреждение}
Until (n>=0) and (n<=1000) {Повторяем до того как не будет введено число от 0 до 1000 }
End;
If n<n_i {Если введенное число меньше задуманного}
Then Writeln(‘Число больше’);
Else If n>n_i {Если введенное число больше задуманного}
Then writeln(‘Число меньше’);
Else {иначе}
begin
ClrScr; {очищаем экран}
Writeln(‘ ‘);
Writeln(‘ ‘);
Writeln(‘ ‘); {Выводим поздравление}
Writeln(‘ ‘);
Writeln(‘ ОГООО!!! ВЫ УГАДАЛИ!!! ЭТО:’,n_i);
Writeln(‘ ПОЗДРАВЛЯЮ!!!’);
Writeln(‘ ВЫ УГАДАЛИ С: ’,x,’ ПОПЫТКИ.’);
Writeln(‘ ‘);
X:=10; {Присваиваем переменной х значение 10}
End;
End;
If n<>n_i {Если числа не равны после 10 попыток}
Then begin
ClrScr; {Очищаем экран}
Writeln(‘ ‘);
Writeln(‘ ‘);
Writeln(‘ ‘); {Выводим предложение}
Writeln(‘ ‘);
Writeln(‘ ВЫ НЕ УГАДАЛИ!’);
Writeln(‘ ЭТО СЛИШКОМ СЛОЖНО ДЛЯ ВАС…’);
Writeln(‘ ‘);
End;
Until false; {Заканчиваем процедуру повтора}
Readln;
Readln;
DefaltScreen; {Вызов процедуры DefaultScreen}
End. {Конец программы} |