Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 69

Не работают действия в игре

24.09.2013, 22:57. Показов 582. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал вот такую простенькую игрушку:
Кликните здесь для просмотра всего текста
Pascal
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
// Мана всегда 50
// Начальное здоровье - 100
// Начальные параметры - 10, потом сделаю опыт
// Здоровье врага пока что 150, сила 8, защита 9, враг пока один
// При лечении вычитается 10 маны
 
program one;
 
uses
   crt;
 
var
   hp, mp: integer; //Здоровье, Мана
   dmg, heal: integer; //Урон = (pwr*str/hp)*10 и лечение
   hlt, pwr, spc, str: integer; // Характеристики: здоровье, атака, особое действие, защита
   hp1, att1, str1: integer;//Текущее Здоровье, и атака врага, постоянная защита
   answer: string;// Для ответа пользователя
   turn: boolean;// Чей ход. 0 - твой, 1 - врага
 
procedure beginning;
begin
   pwr := 10;
   str := 10;
   spc := 10;
   hp := 100;
   mp := 50;
   hp1 := 150;
   att1 := 8;
   str1 := 9;
   turn := false;
   
end;
 
procedure healself;
begin
   if (mp > 10) then
   begin
      heal := spc div (hp div (100));
      mp := mp - 10;
      hp := hp + heal;
      heal := 0;
   end
   else writeln('Недостаточно маны!');
end;
 
procedure tutorial;
 
begin
   writeln('Привет. Это ты:');
   writeln('(*o*)');
   writeln(' (█) ');
   writeln(' / \ ');
   writeln('Победи своего тренировочного врага!');
   writeln('Для выбора опции спиши её прямо - то есть, "Удар", "Лечение". Без кавычек, соблюдая большую букву');
   writeln('Всё понятно?(Напиши "Да/Нет")');
   readln(answer);
   while answer <> 'Да' do
   begin
      writeln('Хм? Прочитай ещё раз и попробуй снова. Всё понятно? Напиши "Да/Нет"');
      readln(answer);
   end;
   clrscr;
end;
 
procedure DrawInterface;//Соблюдать расположение серединных строк!
begin
   clrscr;
   writeln('////////////////////////////////////////////////////////////////////////////////');
   writeln('         (О_О)                               Враг: Первый враг', '                 ');
   writeln('          <0>                                Здоровье:', hp1, '                     ');
   writeln('          / \                                                                     ');
   writeln('                                                                                  ');
   writeln('    Твоё здоровье:', hp, '                                                          ');
   writeln('    Твоя мана:', mp, '                                                              ');
   writeln('    Что ты будешь делать? Удар/Лечение                                            ');
   writeln('////////////////////////////////////////////////////////////////////////////////');
end;
 
procedure CalcDamage;
begin
   dmg := (pwr * str div (hp)) * 10;
end;
 
procedure Eattack;
begin
   dmg := (att1 * str1 div (hp1)) * 8;
   hp := hp - dmg;
   write('Враг наносит ', dmg, ' урона! Твой ход!');
   turn := false;
   
end;
 
procedure YourTurn;
begin
   readln(answer);
   if answer = 'Удар' then 
   begin
      CalcDamage;
      hp1 := hp1 - dmg;      
   end
   else if answer = 'Лечение' then 
   begin
      healself;
      writeln('Ты успешно вылечился!');
   end
   
   else writeln('Ты неправильно написал выбор! А говорил, что прочитал правила! Пропусти ход! Да ладно, мне просто лень делать цикл');
   turn := true;
end;
 
begin
   beginning;
   tutorial;
   DrawInterface;
   while (hp <> 0) or (hp > 0) or (hp1 <> 0) or (hp1 > 0) do
      if ord(turn) = 0 then YourTurn else Eattack;
end.


Комментарии самому себе, не обращайте внимания.

Так вот. При запуске всё работает - обучение показывается, интерфейс выносится. Но вот проблема - не работают действия. Ни удар, ни удар врага, ни лечение, если быть точнее, наносится 0 урона и лечение на 0 едениц. Помогите, пожалуйста. Работает всё, все циклы.

Добавлено через 4 часа 5 минут
Проблема решена - интерфейс банально не обновлялся. Всем "спасибо".
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2013, 22:57
Ответы с готовыми решениями:

[WPF] Не работают Timer, KeyDown в игре
Здравствуйте, пишу игрушку Old school Race. Подскажите пожалуйста что тут не так? почему KeyDown, Timer не работают? И как исправить? ...

Все действия JS не работают на сайте
jQuery('document').ready(function() { jQuery('body').append('&lt;a href=&quot;http://google.com&quot;&gt;Перейти в гугл!&lt;/a&gt;'); ...

Не работают арифметические действия в калькуляторе
Помоги не работают арифметические действия в калькулятор. namespace Калькулятор { public partial class Form1 : Form { ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2013, 22:57
Помогаю со студенческими работами здесь

арифметические действия с указателями не работают
На одном сайте (http://www.c-cpp.ru/books/arifmeticheskie-deystviya-s-ukazatelyami) написано, что с при увеличении указателя на единицу,...

В игре при переносе на андроид не работают методы start, update
Здравствуйте, написал простенький кликкер на unity , в редакторе все работает, ошибок нет. Скачал sdk и jdk. Когда командировал, в консоле...

В игре через какое-то время (5-20мин), фпс падает до 1-18, Процессор и ОЗУ работают уже под 100%
Короче проблема такая. При запуске Пк у меня работают обе планки по 4ГБ (в сумме 8гб). Так-же при запуске компьютера у меня занято 16%...

Неправильно работают счётчики в игре "Угадай число"
Здравствуйте. Написал игру &quot;Угадай число&quot;. Счетчики работают неправильно. Подскажите пожалуйста почему и как исправить. Dim x, y, z As...

Ошибка 0x000000101 , при игре 10 минутной игре в Dota 2, CS:GO
Имя события проблемы: BlueScreen Версия ОС: 6.1.7600.2.0.0.256.48 Код языка: 1049 Дополнительные сведения об этой проблеме: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru