Цикл игровых событий. Консольный интерфейс взаимодействия



Приложение начинает работу с вывода экрана заставки. После этого приложение входит в главный цикл событий. Цикл на каждом шаге предоставляет пользователю текущую игровую информацию и на основе этой информации предлагает пользователю сделать определенный выбор, например, продолжать игру или нет, сколько карт выбрать, по какому номеру варианта идти. Пользователь вводит нужные данные. Затем программа проверяет их адекватность, обрабатывает их, и на их основе предлагает сделать пользователю новый выбор. И т.д. Этот цикл повторяется всякий раз, пока игра не будет закончена.

Дополнительно про игровой цикл см.:

Игровой цикл (Википедия) –

https://ru.wikipedia.org/wiki/%D0%98%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB

Игровой цикл (Game Loop) – https://martalex.gitbooks.io/gameprogrammingpatterns/content/chapter-3/3.2-game-loop.html

 

Дополнительно про создание игр см.:

Шаблоны игрового программирования ( Роберт Найстром - 2016 ) 389с

Задание

1. Класс стакан

Создать класс стакан с полем объем и методами: добавить воды, добавить молока, вылить часть смеси, вывести количество смеси. Реализовать проверки на добавление отрицательного количества и на переполнение.

2. Студенты

Реализовать класс студент, который будет иметь следующие поля: фамилия, имя, отчество, таблицу сданных дисциплин в виде словаря с элементами типа дисциплина: оценка, а также свойства только для чтения: средняя оценка и количество сданных дисциплин. Также класс должен иметь методы добавления сданной дисциплины, метод __str__ для красивого вывода данных (ФИО, количество сданных предметов и средний балл) и метод, возвращающий ФИО студента.

Реализовать класс-контейнер для хранения данных группы студентов. Класс должен иметь свойство только для чтения – количество студентов в списке, а также метод вывода студентов группы в виде списка, отсортированного по успеваемости.

Домашнее задание

Выполнить 1 + 2, или 3, или 3 + 4, или 3 + 5 задания.

1. Класс автомобиль

Реализовать класс автомобиль с полями: объем бака, количество бензина, текущий расход бензина(?), текущий объем бензина и скорость движения. Реализовать методы: старт, разгон, торможение и остановка. Задать таблицу участков дороги, содержащую протяженность и ограничение максимальной скорости на каждом участке, общая длина дороги – 50 км. Длина отдельного участка от 2 до 5 км. Задать таблицу зависимости расхода топлива от скорости автомобиля. Проехать по участку 30 км. Определить время поездки и общий расход топлива. Примечание: автомобиль движется с максимально допустимой скоростью на данном участке. Если скорость движения на участке не ограничена – с максимально-возможной конструктивной скоростью. Решение предоставить в виде работающего примера вместе с обеими таблицами данных. Дополнительно: реализовать метод переключения передач. В этом случае минимальная и максимальная скорости движения, а также расход топлива зависят от текущей передачи. Передачи могут переключаться последовательно в порядке возрастания при ускорении или при соответствии скорости движения при уменьшении скорости.

2. Самосортирующийся список-множество

Нужно реализовать класс-контейнер для хранения упорядоченного неповторяющегося набора целых и вещественных чисел, который будет содержать метод для добавления произвольного числа элементов (после добавления последовательность чисел должна оставаться отсортированной), методы для получения n максимальных или минимальных элементов и получения элемента по номеру, методы удаления элемента с начала, с конца или по номеру, метод изменения порядка сортировки. Порядок сортировки последовательности задается параметром конструктора и хранится в одном из полей объекта.

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

Вывести сгенерированные объекты и объект полученный в результате добавления. Вывод произвести через метод класса-контейнера.

3. Объектно-ориентированная колода карт

Реализовать класс, объекты которого моделируют колоду карт и выдают нужное количество карт по запросу.

4. Консольный Блэк-Джек

Используя Класс Колода, реализовать консольную версию игры «Блэк-Джек», или русский вариант «Очко»

1.

2.

3.

4.

5. Вероятности

Задача. Используя предоставленный код, реализовать моделирование работы с 3-мя колодами. Моделировать вытаскивание по одной карте из каждой колоды до тех пор, пока а) не выпадут карты одинаковой масти, б) не выпадут карты одинаковых значений, в) не выпадут карты одинакового веса, г) не выпадут одинаковые карты. Если колоды заканчиваются, нужно генерировать новые. Сколько раз нужно сдать карты для успешного моделирования во всех 4-х случаях? Дополнительно: провести моделирование с 2-мя и 4-мя колодами.


Дата добавления: 2020-01-07; просмотров: 185; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!