В 1991 году тульский автор Александр Михолап написал для МК-61/52 оригинальную игру "Итальянский комиссар полиции": http://lordbss.narod.ru/pmk230.html
Программа была опубликована в "Экспрессе" N10-12 (строенный) за 1991-й год.
Описание оригинальной игры
|
Вы являетесь итальянским комиссаром полиции. Ваша задача - контроль телефонных номеров. Гангстеры с помощью компьютера, подключённого к сети, пытаются изменить номер своего телефона. Вы должны определить номер, который изменился, и сообщить оперативной группе - гангстеры будут пойманы, а Вы получите приличную награду.
Если же Вы неправильно указали изменившийся телефон - Вас арестовывают за якобы связь с мафией.
|
Игра для ЭКВМ
Программа I.C.P с сайта lordbbs некорректно работает на ЭКВМ, поскольку использует команды логических операций. В 2011 году paul-161 переписал программу.
Инструкция
С версии 1.1 игра может работать в одном из двух режимов:
- Запуск 0 В/О С/П. Всё работает как и раньше, при ошибке игра заканчивается с обнулением счёта.
- Запуск 1 В/О С/П. Игра хранит счет игрока в файле (десятичных данных ICP в головном каталоге внутреннего диска). Счет запоминается при выходе из игры, при удачном или неудачном ответе. В последнем случае счет не обнуляется, а теряет столько же очков, сколько мог получить при победе (т.е. ставку). Игра при этом не заканчивается, а может быть продолжена ответом "1". Возможен отрицательный счет (долг).
1. На дисплее - запрос числа номеров (от 1 до 9). Если ввести 0 - число выбирается случайно от 4 до 6.
2. Цифровыми клавишами выбирается номер для просмотра. В отличие от ПМК-версии, первая цифра может быть любой, не только 8. |
|
Запомнив номера, нажмите "Ввод". Потом снова просмотрите номера и, выбрав изменившийся (по Вашему мнению), снова нажмите "Ввод". |
|
3. При правильном ответе к счету прибавляется 10 в степени числа номеров (например, 100000 для 5) и ЭКВМ спрашивает, продолжить ли игру. Ответ "1"- да (переход к п.1), "0" - нет (выводится сообщение о конце игры и набранная сумма в RX. При неправильном ответе игра заканчивается и счет обнуляется. |
|
Игра развивает память и внимание, не лишена и азарта (большое число номеров - риск ошибки, но и высокая награда).
Удачной борьбы с итальянской мафией!
Опубликовано: http://community.livejournal.com/mk_152/44654.html
Программа "Итальянский коммисар полиции" версия 1.1 от 10.01.12
Файл ICP11.mkp (657 байт, КС 66383/143)
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
000 |
П 4 |
П E |
P x≠0 |
01 |
21 |
0 |
PP П |
11 |
00 |
PP П |
010 |
90 |
30 |
1 |
PP П |
91 |
20 |
6 |
3 |
П 0 |
3 |
020 |
PP П |
90 |
31 |
ИП 0 |
PP П |
91 |
22 |
PP ИП |
90 |
34 |
030 |
7 |
3 |
- |
P x=0 |
00 |
66 |
PP ИП |
90 |
34 |
6 |
040 |
7 |
- |
P x=0 |
00 |
66 |
PP ИП |
90 |
34 |
8 |
0 |
050 |
- |
P x=0 |
00 |
66 |
0 |
PP П |
90 |
31 |
PP ИП |
90 |
060 |
33 |
4 |
- |
P x≠0 |
01 |
11 |
PF L0 |
00 |
19 |
0 |
070 |
П E |
3 |
PP П |
90 |
31 |
7 |
3 |
PP П |
90 |
34 |
080 |
6 |
7 |
PP П |
90 |
34 |
8 |
0 |
PP П |
90 |
34 |
090 |
1 |
7 |
П 0 |
3 |
2 |
PP П |
90 |
34 |
PF L0 |
00 |
100 |
93 |
4 |
PP П |
91 |
28 |
PP П |
91 |
25 |
P БП |
00 |
110 |
05 |
ИП 0 |
PP П |
11 |
00 |
PP П |
91 |
28 |
PP П |
91 |
120 |
23 |
9 |
П 2 |
2 |
PP П |
90 |
10 |
P ПП |
05 |
35 |
130 |
0 |
B↑ |
0 |
PP П |
90 |
00 |
0 |
6 |
3 |
5 |
140 |
PP П |
90 |
21 |
P ПП |
04 |
54 |
1 |
0 |
- |
P x<0 |
150 |
01 |
43 |
ИП 0 |
П 2 |
P x=0 |
01 |
65 |
K СЧ |
3 |
× |
160 |
4 |
+ |
K [x] |
П 2 |
П 0 |
3 |
2 |
PP П |
90 |
20 |
170 |
ИП 0 |
4 |
8 |
+ |
PP П |
90 |
20 |
9 |
9 |
9 |
180 |
П 6 |
P ПП |
04 |
45 |
P ПП |
04 |
45 |
4 |
5 |
K П 6 |
190 |
P ПП |
04 |
45 |
P ПП |
04 |
45 |
4 |
5 |
K П 6 |
P ПП |
200 |
04 |
45 |
P ПП |
04 |
45 |
0 |
K П 6 |
PF L0 |
01 |
81 |
210 |
1 |
6 |
B↑ |
0 |
PP П |
90 |
00 |
0 |
5 |
5 |
220 |
5 |
PP П |
90 |
21 |
P ПП |
04 |
54 |
P x≠0 |
02 |
24 |
230 |
3 |
3 |
- |
P x≠0 |
02 |
42 |
P ПП |
04 |
81 |
P БП |
240 |
02 |
24 |
3 |
2 |
B↑ |
0 |
PP П |
90 |
00 |
1 |
250 |
0 |
П 0 |
3 |
1 |
PP П |
90 |
20 |
PF L0 |
02 |
52 |
260 |
3 |
2 |
B↑ |
0 |
PP П |
90 |
00 |
0 |
6 |
0 |
270 |
7 |
PP П |
90 |
21 |
K СЧ |
ИП 2 |
9 |
× |
× |
K [x] |
280 |
П 0 |
1 |
+ |
3 |
÷ |
K {x} |
P x≠0 |
02 |
74 |
ИП 0 |
290 |
9 |
÷ |
K [x] |
1 |
+ |
П 1 |
ИП 0 |
9 |
9 |
9 |
300 |
+ |
П 6 |
K СЧ |
1 |
0 |
× |
K [x] |
4 |
8 |
+ |
310 |
K П 6 |
P ПП |
04 |
54 |
P x≠0 |
03 |
11 |
3 |
3 |
- |
320 |
P x≠0 |
03 |
31 |
ИП 0 |
П 3 |
P ПП |
04 |
81 |
P БП |
03 |
330 |
11 |
ИП 3 |
ИП 1 |
- |
P x≠0 |
03 |
83 |
ИП 4 |
P x=0 |
03 |
340 |
54 |
0 |
6 |
2 |
3 |
PP П |
90 |
26 |
0 |
П E |
350 |
B↑ |
B↑ |
B↑ |
С/П |
1 |
PP П |
90 |
47 |
ИП E |
ИП 2 |
360 |
F 10x |
- |
П E |
P ПП |
05 |
35 |
4 |
8 |
B↑ |
0 |
370 |
PP П |
90 |
00 |
0 |
5 |
9 |
0 |
PP П |
90 |
21 |
380 |
P БП |
04 |
09 |
1 |
PP П |
90 |
47 |
ИП 2 |
F 10x |
ИП E |
390 |
+ |
П E |
P ПП |
05 |
35 |
4 |
8 |
B↑ |
0 |
PP П |
400 |
90 |
00 |
0 |
5 |
7 |
1 |
PP П |
90 |
21 |
P ПП |
410 |
04 |
54 |
P x=0 |
01 |
21 |
0 |
6 |
2 |
3 |
PP П |
420 |
90 |
26 |
ИП 4 |
P x≠0 |
04 |
38 |
PP ИП |
11 |
00 |
P x≠0 |
430 |
04 |
38 |
PP П |
91 |
28 |
PP П |
91 |
26 |
K ЭКР |
0 |
440 |
B↑ |
B↑ |
B↑ |
ИП E |
С/П |
K СЧ |
1 |
0 |
× |
4 |
450 |
8 |
+ |
K П 6 |
В/О |
K ГРФ |
PP ИП |
90 |
29 |
B↑ |
K NOT |
460 |
P x≠0 |
04 |
55 |
F O |
П 0 |
3 |
3 |
- |
P x≠0 |
04 |
470 |
79 |
ИП 0 |
ИП 2 |
1 |
+ |
- |
P x<0 |
04 |
55 |
ИП 0 |
480 |
В/О |
3 |
2 |
B↑ |
0 |
PP П |
90 |
00 |
ИП 0 |
4 |
490 |
8 |
+ |
PP П |
90 |
20 |
5 |
8 |
PP П |
90 |
20 |
500 |
3 |
2 |
PP П |
90 |
20 |
ИП 0 |
1 |
- |
9 |
× |
510 |
1 |
0 |
0 |
0 |
+ |
PP П |
90 |
22 |
3 |
1 |
520 |
PP П |
90 |
20 |
3 |
1 |
PP П |
90 |
20 |
3 |
1 |
530 |
PP П |
90 |
20 |
K ГРФ |
В/О |
5 |
6 |
B↑ |
0 |
PP П |
540 |
90 |
00 |
0 |
6 |
5 |
0 |
PP П |
90 |
21 |
ИП E |
550 |
PP П |
90 |
23 |
K ГРФ |
В/О |
82h 'В' |
9Bh 'Ы' |
81h 'Б' |
85h 'Е' |
90h 'Р' |
560 |
88h 'И' |
92h 'Т' |
85h 'Е' |
20h ' ' |
8Dh 'Н' |
8Eh 'О' |
8Ch 'М' |
85h 'Е' |
90h 'Р' |
3Ah ':' |
570 |
00h |
82h 'В' |
85h 'Е' |
90h 'Р' |
8Dh 'Н' |
8Eh 'О' |
21h '!' |
20h ' ' |
8Fh 'П' |
90h 'Р' |
580 |
8Eh 'О' |
84h 'Д' |
8Eh 'О' |
8Bh 'Л' |
86h 'Ж' |
88h 'И' |
92h 'Т' |
9Ch 'Ь' |
3Fh '?' |
00h |
590 |
8Eh 'О' |
98h 'Ш' |
88h 'И' |
81h 'Б' |
8Ah 'К' |
80h 'А' |
21h '!' |
20h ' ' |
85h 'Е' |
99h 'Щ' |
600 |
85h 'Е' |
20h ' ' |
90h 'Р' |
80h 'А' |
87h 'З' |
3Fh '?' |
00h |
96h 'Ц' |
A8h 'и' |
E4h 'ф' |
610 |
E0h 'р' |
A0h 'а' |
20h ' ' |
A8h 'и' |
A7h 'з' |
ACh 'м' |
A5h 'е' |
ADh 'н' |
A5h 'е' |
ADh 'н' |
620 |
A0h 'а' |
2Eh '.' |
00h |
8Ah 'К' |
8Eh 'О' |
8Dh 'Н' |
85h 'Е' |
96h 'Ц' |
20h ' ' |
88h 'И' |
630 |
83h 'Г' |
90h 'Р' |
9Bh 'Ы' |
2Eh '.' |
00h |
97h 'Ч' |
88h 'И' |
91h 'С' |
8Bh 'Л' |
8Eh 'О' |
640 |
20h ' ' |
8Dh 'Н' |
8Eh 'О' |
8Ch 'М' |
85h 'Е' |
90h 'Р' |
8Eh 'О' |
82h 'В' |
3Fh '?' |
00h |
650 |
91h 'С' |
97h 'Ч' |
85h 'Е' |
92h 'Т' |
3Ah ':' |
20h ' ' |
00h |
|
|
|
Исходный текст для кросс-компилятора
Файл ICP11.mkl
; Итальянский комиссар полиции
; Версия 1.1, 10.01.12
; Регистры:
; 0 - счетчик
; 1 - загаданный номер регистра
; 2 - сложность (число номеров)
; 3 - выбранный номер регистра
; 4 - режим игры
; E - счет
; 1000-1080 - знаки телефонов (по 9 на номер)
; 1100 - номер строки каталога с файлом данных
; Чтение регистров из файла
M 4
M E
P X!=0 BEGIN
FIND_FILE:
0
PP M 1100
PP M 9030
1 PP M 9120
63 M 0
READ_DIR:
3 PP M 9031
RM 0
PP M 9122
PP RM 9034
73 -
P X=0 NEXT_ROW
PP RM 9034
67 -
P X=0 NEXT_ROW
PP RM 9034
80 -
P X=0 NEXT_ROW
0 PP M 9031
PP RM 9033
4 -
P X!=0 FILE_FOUND
NEXT_ROW:
PF L0 READ_DIR
0 M E
3 PP M 9031
73
PP M 9034
67
PP M 9034
80
PP M 9034
17 M 0
FILL_NAME:
32
PP M 9034
PF L0 FILL_NAME
4
PP M 9128
PP M 9125
P GOTO FIND_FILE
FILE_FOUND:
RM 0
PP M 1100
PP M 9128
PP M 9123
BEGIN:
9 M 2
2 PP M 9010
P GSB SHOW_RES
0 ENT 0
PP M 9000
.NUM MESS5
PP M 9021
WAIT0:
P GSB GET_KEY
; Создание номеров
10 -
P X<0 WAIT0
RM 0
M 2
P X=0 SET_NUM
; Случайное число номеров
K RAN
3 *
4 +
K INT
M 2
M 0
SET_NUM:
32
PP M 9020
RM 0
48 +
PP M 9020
999 M 6
GEN1:
P GSB DIGIT
P GSB DIGIT
45
K M 6
P GSB DIGIT
P GSB DIGIT
45
K M 6
P GSB DIGIT
P GSB DIGIT
0
K M 6
PF L0 GEN1
16 ENT 0
PP M 9000
.NUM MESS0
PP M 9021
WAIT1:
P GSB GET_KEY
P X!=0 WAIT1
33 -
P X!=0 ENTER1
P GSB SHOW_NUM
P GOTO WAIT1
ENTER1:
32 ENT 0
PP M 9000
10 M 0
CLEAR:
31
PP M 9020
PF L0 CLEAR
32 ENT 0
PP M 9000
.NUM MESS3
PP M 9021
SEL_DIG:
K RAN
RM 2
9 *
*
K INT
M 0
1 +
3 /
K FRAC
P X!=0 SEL_DIG
RM 0
9 /
K INT
1 +
M 1
RM 0
999 +
M 6
K RAN
10 *
K INT
48 +
K M 6
WAIT2:
P GSB GET_KEY
P X!=0 WAIT2
33 -
P X!=0 ENTER2
RM 0
M 3
P GSB SHOW_NUM
P GOTO WAIT2
ENTER2:
RM 3
RM 1
-
P X!=0 NOT_LOSE
RM 4
P X=0 VER1
.NUM MESS4
PP M 9026
0
M E
ENT
ENT
ENT
R/S
VER1:
1
PP M 9047
RM E
RM 2
F 10^X
-
M E
P GSB SHOW_RES
48 ENT 0
PP M 9000
.NUM MESS2
PP M 9021
P GOTO TEST_END
NOT_LOSE:
1
PP M 9047
RM 2
F 10^X
RM E
+
M E
P GSB SHOW_RES
48 ENT 0
PP M 9000
.NUM MESS1
PP M 9021
TEST_END:
P GSB GET_KEY
P X=0 BEGIN
.NUM MESS4
PP M 9026
; Конец игры
END:
; Сохранение регистров (счета) в файл
RM 4
P X!=0 NO_SAVE
PP RM 1100
P X!=0 NO_SAVE
PP M 9128
PP M 9126
NO_SAVE:
K SCR
0
ENT
ENT
ENT
RM E
R/S
; Генерация разряда номера
DIGIT:
K RAN
10 *
48 +
K M 6
RTN
; Ввод номера
GET_KEY:
K GRPH
TEST_KEY:
PP RM 9029
ENT
K NOT
P X!=0 TEST_KEY
F R
M 0
33 -
P X!=0 ENT_KEY
RM 0
RM 2
1 +
-
P X<0 TEST_KEY
ENT_KEY:
RM 0
RTN
; Показ выбранного номера
SHOW_NUM:
32 ENT 0
PP M 9000
RM 0
48 +
PP M 9020
58
PP M 9020
32
PP M 9020
RM 0
1 -
9 *
1000 +
PP M 9022
31
PP M 9020
31
PP M 9020
31
PP M 9020
K GRPH
RTN
; Показ счета
SHOW_RES:
56 ENT 0
PP M 9000
.NUM MESS6
PP M 9021
RM E
PP M 9023
K GRPH
RTN
MESS0:
.TEXT "ВЫБЕРИТЕ НОМЕР:\0"
MESS1:
.TEXT "ВЕРНО! ПРОДОЛЖИТЬ?\0"
MESS2:
.TEXT "ОШИБКА! ЕЩЕ РАЗ?\0"
MESS3:
.TEXT "Цифра изменена.\0"
MESS4:
.TEXT "КОНЕЦ ИГРЫ.\0"
MESS5:
.TEXT "ЧИСЛО НОМЕРОВ?\0"
MESS6:
.TEXT "СЧЕТ: \0"
.END
|