Форум программистов, компьютерный форум, киберфорум С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
1

Управление игроком: делать ходы и выводить его состояние после каждого хода

27.01.2018, 17:29. Показов 2489. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Напишите программу, которая будет управлять игроком: делать ходы и выводить его состояние после каждого хода, если сами

В это задаче нужно модифицировать класс.

Добавить классу «студент» дополнительное приватное поле int energy (сытость). Метод start_game должен устанавливать начальную энергию в 100. Если сытость становится равной 0, то игрок голодает.

Добавить приватный метод void change_field(int &field, int delta), который будет увеличивать переменную field, но проверять, что она не превышает 100, и не меньше 0, и сохранять его в диапазоне [0; 100]. Мы будем использовать этот метод, чтобы держать здоровье и сытость студента в разумных пределах.

Добавить публичный метод void eat(), который позволяет студенту поесть, и увеличивает его сытость на 7, а здоровье — на 1. Данный метод не должен ничего делать, если is_alive() == false.

Добавить публичный метод void wait(), при вызвове которого студент ничего не делает, при этом у него уменьшается сытость на 3, а здоровье увеличивается на 1. Данный метод не должен ничего делать, если is_alive() == false.

Добавьте в метод show() вывод состояния переменной «сытость» по аналогии с hp.
Напишите программу, которая будет управлять игроком: делать ходы и выводить его состояние после каждого хода, если сами ходы с клавиатуры вводит игрок.

Формат входных данных
В первой строке с клавиатуры вводится имя и фамилия игрока (состоят не более чем из 50 из латинских букв), разделенные пробелами.

Во второй строке вводится натуральное число M (M ≤ 1000) — количество ходов.

В следующих M строках выводятся ходы, которые могут быть двух видов: «Wait» (ждать) и «Eat» (есть).

Формат выходных данных
Требуется вывести состояние игрока после каждого хода.
Примеры
входные данные
Hello World
2
Wait
Wait
выходные данные
Hello World: HP = 100, Energy = 097.
Hello World: HP = 100, Energy = 094.
входные данные
Steve Jobs
7
Wait
Wait
Wait
Wait
Wait
Eat
Wait
выходные данные
Steve Jobs: HP = 100, Energy = 097.
Steve Jobs: HP = 100, Energy = 094.
Steve Jobs: HP = 100, Energy = 091.
Steve Jobs: HP = 100, Energy = 088.
Steve Jobs: HP = 100, Energy = 085.
Steve Jobs: HP = 100, Energy = 092.
Steve Jobs: HP = 100, Energy = 089.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2018, 17:29
Ответы с готовыми решениями:

Посчитать количество вариантов,когда после хода я не попадаю на единицу(есть ходы:+1 +2 +3 +4)
У меня есть массив состоящий из нолей и единиц, начиная с 0 позиции в массиве посчитать количество...

Игра 2048 - исправить выбор направления хода игроком
Чувствую, что напутал что-то при выборе направления хода игроком... #include "stdafx.h" #include...

В игре после каждого хода реализовать вывод сообщения на экран
#include "stdafx.h" #include <iostream> #include <time.h> #include <cstdlib> #include <math.h>...

Если метод класса не использует состояние, то нужно ли делать его статическим?
Частенько приходится встречать методы, которые не используют состояние класса. Возникает мысль, что...

2
0 / 0 / 0
Регистрация: 09.05.2023
Сообщений: 11
31.12.2023, 00:28 2
[CPP]
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
#include <iostream>
#include <cstring> 
#include <iomanip>
using namespace std;
 
class Student {
private:
  void change_field(int &field, int delta);
  int energy;
    char name[51];
    char surname[51];
    int hp; 
public:
    void eat();
    void start_game();
    bool is_alive();
    void show();
  void wait();
}; 
 
 
int main() {
  Student my_clock;
  my_clock.start_game();
  int q;
  cin>>q;
  for (int i=0; i<q;i++) {
    char w[50];
    cin>>w;
    if (!strcmp(w,"Wait"))
      my_clock.wait();
    else if (!strcmp(w,"Eat"))
      my_clock.eat();
    my_clock.show();
  }
  return 0;
}
 
void Student::start_game() {
  cin>>this->name>>this->surname;
  this->hp=100;
  this->energy =100;
}
bool Student::is_alive() {
  if (this->hp<=0)
    return false;
  return true;
}
    
void Student::show() {
  cout<<this->name<<" "<<this->surname<<": HP = "<<setw(3)<<setfill('0')<<this->hp<<", Energy = "<<setw(3)<<setfill('0')<<this->energy<<'.'<<endl;
}
 
void Student::change_field(int &field, int delta) {
  field+=delta;
  if (field<0)
    field =0;
  else if (field>100)
    field =100;
}
void Student::eat() {
  if (this->is_alive()) {
    change_field(this->hp,1);
    change_field(this->energy,7);
  }
  return;  
}
void Student::wait() {
  if (this->is_alive()) {
    change_field(this->hp,1);
    change_field(this->energy,-3);
  }
  return;
}
0
27 / 24 / 4
Регистрация: 20.11.2023
Сообщений: 129
31.12.2023, 12:55 3
Цитата Сообщение от Pavlin234 Посмотреть сообщение
метод void change_field(int &field, int delta)
Статический?
И на будущее - нет в C++ методов. Есть функции-члены. Не душните по этому поводу перед преподавателем/кем-то вышестоящим.

Добавлено через 4 минуты
Цитата Сообщение от Pavlin234 Посмотреть сообщение
имя и фамилия игрока (состоят не более чем из 50 из латинских букв)
Вместе?

Добавлено через 4 минуты
Цитата Сообщение от Pavlin234 Посмотреть сообщение
В это задаче нужно модифицировать класс.
А какой именно? Код приложите.
0
31.12.2023, 12:55
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.12.2023, 12:55
Помогаю со студенческими работами здесь

Выпишите состояние списка [7, 3, 9, 4, 2, 5, 6, 1, 8] после каждого прохода алгоритма InsertionSort
Выпишите состояние списка после каждого прохода алгоритма InsertionSort.

Выпишите состояние списка после каждого прохода алгоритма BubbleSort
Выпишите состояние списка после каждого прохода алгоритма InsertionSort. 2. Выпишите...

Выпишите состояние списка [7, 3, 9, 4, 2, 5, 6, 1, 8] после каждого прохода алгоритма BubbleSort
Выпишите состояние списка после каждого прохода алгоритма BubbleSort.

2. Выпишите состояние списка [6, 2, 4, 7, 1, 3, 8, 5] после каждого прохода алгоритма MergeSort
Выпишите состояние списка после каждого прохода алгоритма MergeSort.

Определить состояние нормального выхода RS триггера после каждого тактового импульса
Помогите!!! :wall: или ткните, что почитать.

Выводить массив после каждого обмена(сортировка вставками)
Есть код сортировки простыми вставками, как выводить массив после каждой вставки? вот код...

Написать код, изменяющий и печатающий состояние массива после каждого добавления/удаления игрока
Пусть в некоторую игру могут играть до 10 игроков. По мере игры в нее могут вступать новые игроки и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
Копирование (маппинг) объектов в JavaScript
bytestream 21.01.2025
В современной разработке программного обеспечения копирование объектов представляет собой фундаментальную операцию, которая требует особого внимания и понимания. Маппинг объектов в JavaScript – это. . .
Как работать с Apache Kafka в C# .NET
bytestream 21.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки больших объемов информации в реальном времени. Эта система,. . .
Как использовать RabbitMQ в C# .NET
bytestream 21.01.2025
RabbitMQ представляет собой мощный брокер сообщений, который эффективно решает эту задачу, обеспечивая надежную передачу данных между множеством приложений. Этот инструмент реализует протокол AMQP. . .
Как объединить последние коммиты в Git
bytestream 21.01.2025
В мире разработки программного обеспечения система контроля версий Git стала незаменимым инструментом для управления исходным кодом. Одной из наиболее полезных, но порой сложных для освоения функций. . .
Как запушить новую локальную ветку (branch) в удалённый репозиторий Git и отслеживать её
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемым инструментом для эффективного управления кодом и организации командной работы. Одной из ключевых. . .
Как создать директорию и все родительские директории, указанные в пути, с помощью Python
bytestream 21.01.2025
Python предоставляет мощные инструменты для работы с файловой системой через встроенные модули os и pathlib, которые значительно упрощают процесс манипуляции директориями. Эти модули содержат. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru