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.
Игра идет до тех пор, пока не закончится время. За столкновение с астероидом выдаются штрафы, за пролет через все поле - бонусы.
Класс asteroid хранит информацию об астероидах, а также имеет одноименный конструктор, инициализирующий поля во время создания объекта, подставляемый метод display, который выводит астероид на экран и вызывает другие методы, метод escape, который проверяет выход астероида за игровое поле, метод moving, который задает движение астероида.
Класс ship содержит информацию о кораблях, а также имеет одноименный конструктор, инициализирующий поля во время создания объекта. Во время работы конструктора на вход передается число – номер корабля, позволяющее задать координаты двух игроков, если выбран соответствующий режим. Помимо этого, метод display выводит на экран корабль игрока и вызывает остальные методы, escape проверяет выход корабля за границы поля и, если выполняется необходимое условие, инкрементирует поле spacepoints на 1 поинт и глобальную переменную t на 2 секунды, moving задает позиции корабля, board выводит на консоль счет и таймер, а kbht проверяет, нажата ли определенная клавиша, чтобы затем задать движение корабля.
Дружественная функция классам asteroid и ship checkblow проверяет столкновение корабля с астероидом и, если это произошло, декрементирует количество секунд на 4.
Перегруженная функция checkdefeat определяет конец игры, когда дальнейшее развитие игры не может привести к победе.
Функция writerec не является членом ни одного из классов, но обеспечивает запись рекордов в файл. После игры происходит сортировка результатов и запись 5 лучших в файл. Если файл пуст, то записываются 5 «начальных» рекордов.
Функция timer ведет обратный отсчет времени, инкрементируя переменную t.
Пользовательский интерфейс представляет собой консоль, обеспечивающую взаимодействие пользователя с игрой. Из меню возможно выбрать режим игры, посмотреть помощь и таблицу рекордов.