С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vaskiss
101 / 19 / 5
Регистрация: 16.08.2011
Сообщений: 203
#1

Необходимо указать на ошибки. Код по заданию из книги. - C++

16.08.2011, 17:22. Просмотров 396. Ответов 6
Метки нет (Все метки)

Начал учить c++ по книге.
Компилирую под debian в g++.
Поскольку я почти ничего не смыслю в программировании, то мне необходима помощь тех, кто бы смог тыкнуть носом в ошибки.
Задание в книге было такое: написать программу, где бы использовался цикл while.
Замечания интересны все, от комментариев и имен переменных до синтаксиса и ошибок в коде.
P.S. все это компилируется и работает =)

C++
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
#include <iostream>
#include <cstdlib> 
#include <ctime>
using namespace std;
int main()
{
// генерим все время разные числа
srand((unsigned)time(NULL)); 
// действия моба
int dmdMob, healMob, dmdOrHeal;
//Действия игрока
int dmdPlayerAxe, dmdPlayer;
float useAttackShild, useDefendShild;
//число вводимое пользователем
int dmg;
//Статы игрока
int helthMob = 100, energyPlayer = 0;
//Статы моба
int helthPlayer = 100;
 
while ((helthMob > 0)&&(helthPlayer > 0))
{
cout << "Меч [1], Топор [2], Берсерк [3], Щит [4]" << "\n";
cin >> dmg;
//Включаем щит
if (dmg == 4)
{
cout << "Вы использовали щит. [-40%] к аттаке [+60%] защите \n";
useAttackShild = 0.4;
useDefendShild = 0.6;
cin >> dmg;
}
else
{
useAttackShild = 1.0;
useDefendShild = 1.0; 
}
//Удар мечем
if (dmg == 1)
{
  dmdPlayer = 3+6;
  dmdPlayer = dmdPlayer * useAttackShild;
  energyPlayer = energyPlayer + 1;
  helthMob = helthMob - dmdPlayer;
  cout << "Вы нанесли удар МЕЧЕМ с уроном \t" << dmdPlayer << "\n";
  cout << "Враг еще жив на \t+" << helthMob << "+HP \n";
  cout << "Ваша энергия \t (" << energyPlayer << ")\n";
}
 
else 
{
//Удар топором
 if (dmg == 2)
 {
  dmdPlayerAxe=rand()% 90;
  helthMob = helthMob - dmdPlayerAxe;
  cout << "Вы нанесли удар ТОПОРОМ с уроном \t" << dmdPlayerAxe << "\n";
  cout << "Враг еще жив на \t+" << helthMob << "+HP \n";
 }
 else
 {
//Берсеркер
  if (dmg == 3)
  {
   if ((energyPlayer == 10) || (energyPlayer > 10))
   {
    energyPlayer = energyPlayer - 10;
    helthMob = helthMob - 30;
    cout << "Вы нанесли удар БЕРСЕРК \t \n";
    cout << "Враг еще жив на \t+" << helthMob << "+HP \n";
   }
   else
   {
   cout << "не достаточно энергии \n";
   }
  }
  else
  {
  cout << "не верная клавиша \n";
  }
 } 
}
//Ход моба
//Вычесляем действие
dmdOrHeal = rand()% 2+0;
 
if (dmdOrHeal == 0)
//Атака
{
 dmdMob=rand()% 7+2;
 dmdMob = dmdMob * useDefendShild;
 helthPlayer = helthPlayer - dmdMob;
 cout << "Вам нанесен урон \t" << dmdMob << "\n";
 cout << "У вас осталось \t+" << helthPlayer << "+HP \n";
}
//Хилл
else
{
 healMob = rand()% 21+1;
 helthMob = helthMob + healMob;
  if (helthMob > 100)
  {
  helthMob = 100;
  }
  else
  {
  cout << "Моб хильнул себя на \t+" << healMob << "+HP \n";
  cout << "Враг еще жив на \t+" << helthMob << "+HP \n";
  cout << "У вас осталось \t+" << helthPlayer << "+HP \n";
  }
}
 
}
}
P.P.S Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2011, 17:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Необходимо указать на ошибки. Код по заданию из книги. (C++):

Напишите пожалуйста код программы по фото заданию! - C++
П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Редактор формул внизу страницы

Как написать код на C++ по этому заданию? заранее спасибо - C++
Как написать код на C++ по этому заданию? заранее спасибо

Необходимо найти ошибки в коде, из-за которых код невалиден - HTML, CSS
Необходимо найти ошибки в коде, из-за которых код невалиден, а именно указать строки кода с ошибками: 2 3 4 5 1 Код: ...

Нужен код по заданию - Delphi
Нужно написать программу, по заданию ниже, пожалуйста помогите. Очень срочно нужно сдать. Задание: Найти номер максимального...

Написать программный код к заданию - Prolog
Найти все пары, где один из супругов родился весной. Пожалуйста напишите программный код

Нужно написать код программы по не сложному заданию - Delphi
Я уже находил подобные задания, но конкретно эту не нашёл. Прошу вашей помощи. Вот задача: Даны действительные числа x, y. Вычислить...

6
PointsEqual
ниначмуроФ
837 / 521 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
16.08.2011, 17:28 #2
Цитата Сообщение от vaskiss Посмотреть сообщение
от комментариев
C++
1
2
// генерим все время разные числа
srand((unsigned)time(NULL));
зачем тут например комментарий?

что такое dmdMob?

Добавлено через 3 минуты
Цитата Сообщение от vaskiss Посмотреть сообщение
//число вводимое пользователем int dmg;
что за число?
0
vaskiss
101 / 19 / 5
Регистрация: 16.08.2011
Сообщений: 203
16.08.2011, 17:29  [ТС] #3
Цитата Сообщение от PointsEqual Посмотреть сообщение

зачем тут например комментарий?

что такое dmdMob?
комментарий и правда лишний. Спасибо.

damagedropMob - имел ввиду урон от моба
0
PointsEqual
ниначмуроФ
837 / 521 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
16.08.2011, 17:30 #4
Цитата Сообщение от vaskiss Посмотреть сообщение
damagedropMob
лучше так и написать длинно
0
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
16.08.2011, 17:30 #5
Форматирование так себе. Вместо кучи if else попробуйте switch.
1
PointsEqual
ниначмуроФ
837 / 521 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
16.08.2011, 17:31 #6
еще все перемнные ообъявлены в одной куче
1
vaskiss
101 / 19 / 5
Регистрация: 16.08.2011
Сообщений: 203
16.08.2011, 17:34  [ТС] #7
Цитата Сообщение от fasked Посмотреть сообщение
Форматирование так себе. Вместо кучи if else попробуйте switch.
Еще не читал об этом, но уже лезу в гугл. =)

Цитата Сообщение от PointsEqual Посмотреть сообщение
еще все перемнные ообъявлены в одной куче
Наверное действительно логичнее объявлять переменную перед ее использованием. Не подумал.
0
16.08.2011, 17:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2011, 17:34
Привет! Вот еще темы с ответами:

Здесь необходимо указать имя - MathCAD
Что бы это могло значить?

Написал код на VBA вроде работает но не знаю правильно или нет показывает)по заданию - VBA
Найти сумму ряда с точностью e=10^(-4) S=1-2+4/2!-...+((-2)^k)/k!, k=0,1,2,.... Cells.Clear z1 = 1 Z = 0 k = 1 fakt = 1 ...

Какой необходимо указать атрибут для проперти класса? - Visual Basic .NET
Вопрос: какой необходимо указать атрибут для проперти класса, чтоб когда к ней подводишь мышку, возникала подсказка не только о типе...

Указать на ошибки в верстке - HTML, CSS
С HTML и CSS знаком от силы неделю, практикой решил заняться самостоятельно. Многого еще не знаю, поэтому прошу вас указать на ошибки и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.