Skip to content

Console game «Space race»: u race across the galaxy, dodging meteors and asteroids. Have fun with a friend or alone.

License

Notifications You must be signed in to change notification settings

verhneudinec/spacerace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Space race

You race across the galaxy, dodging meteors and asteroids. Have fun with a friend or alone. This is a small clone of the game from Atari®, which was made in 1973.

Суть

Игра идет до тех пор, пока не закончится время. За столкновение с астероидом выдаются штрафы, за пролет через все поле - бонусы.

Скриншоты

Главный экран:

ScreenShot #1 - главный экран

Режим игры "один игрок":

ScreenShot #2 - режим игры "один игрок"

Режим игры "игра с другом"

ScreenShot #3 - режим игры "игра с другом"

Описание классов, основных методов и функций

Класс asteroid хранит информацию об астероидах, а также имеет одноименный конструктор, инициализирующий поля во время создания объекта, подставляемый метод display, который выводит астероид на экран и вызывает другие методы, метод escape, который проверяет выход астероида за игровое поле, метод moving, который задает движение астероида.

Класс ship содержит информацию о кораблях, а также имеет одноименный конструктор, инициализирующий поля во время создания объекта. Во время работы конструктора на вход передается число – номер корабля, позволяющее задать координаты двух игроков, если выбран соответствующий режим. Помимо этого, метод display выводит на экран корабль игрока и вызывает остальные методы, escape проверяет выход корабля за границы поля и, если выполняется необходимое условие, инкрементирует поле spacepoints на 1 поинт и глобальную переменную t на 2 секунды, moving задает позиции корабля, board выводит на консоль счет и таймер, а kbht проверяет, нажата ли определенная клавиша, чтобы затем задать движение корабля.

Дружественная функция классам asteroid и ship checkblow проверяет столкновение корабля с астероидом и, если это произошло, декрементирует количество секунд на 4.

Перегруженная функция checkdefeat определяет конец игры, когда дальнейшее развитие игры не может привести к победе.

Функция writerec не является членом ни одного из классов, но обеспечивает запись рекордов в файл. После игры происходит сортировка результатов и запись 5 лучших в файл. Если файл пуст, то записываются 5 «начальных» рекордов.

Функция timer ведет обратный отсчет времени, инкрементируя переменную t.

Описание интерфейса

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