Spring Deals - hours only!Up to 70% off on all courses and bundles.-Close
Introduction
Cyber Battle Game
2. Game description
Game elements
Main Game Loop
Final game

Instruction

Okay, let's first describe the game we're going to write.

Cyber Battle is a 2D text game written in Python. Two robots, A and B, try to destroy each other with laser shots. In our game, both robots will be controlled by the computer, so it will be more of a simulation than an actual game. However, you can easily change the game later and have two human players fight each other.

The robots are placed on a 4 x 4 board. A robot can be facing right >, left <, up ^ or down v, as shown in the initial board below.

- - - -
- A>- -
- - - -
- - B<-

Each robot has two lives. In each turn, each robot randomly performs one of the following actions:

  1. turn_right() – The robot's direction changes by 90 degrees clockwise. The diagram below shows robot A making two right turns:

    - - - -
    - A>- -
    - - - -
    - - B<-
    - - - -
    - Av- -
    - - - -
    - - B<-
    - - - -
    - A<- -
    - - - -
    - - B<-

  2. move_forward() – The robot moves forward by one field. If the robot tries to enter a field occupied by the other robot or if the robot is already at one of the board's borders, nothing happens. The table below presents robot A making two forward moves:

    - - - -
    - A>- -
    - - - -
    - - B<-
    - - - -
    - - A>-
    - - - -
    - - B<-
    - - - -
    - - -A>
    - - - -
    - - B<-

  3. laser_shoot() – The robot shoots a laser beam in the direction it is facing. The beam is always a straight line that reaches the board's border, as shown below:

    - - - -
    - A>* *
    - - - -
    - - B<-

    If the laser hits the other robot, the other robot loses one life. The image below shows a laser shot hitting robot B:

    - Av- -
    - * - -
    - B<- -
    - * - -

After each round, the game state is printed, like this:

========================
- - - -
- Av- -
- - - -
- B<- -
Lives left: A - 2, B - 2
========================
- - - -
- - - -
- Av- -
- B^- -
Lives left: A - 2, B - 2
========================

The game lasts for a maximum of 10 rounds. If one of the robots destroys the other within this time limit, the destroying robot wins. So, if robot A destroyed robot B, we'd see:

*** Robot A won! ***

If both robots destroy each other at the same time or if 10 rounds have already passed, the game ends in a draw.

*** Draw! ***

That's quite a complicated game! Don't worry, we're going to break it up for you and guide you through the game creation process! The process will be split into three parts: game elements, the main game loop, and robot moves. Most of the time, you'll be writing independent functions to perform a single game operation. At the very end, we'll put all the pieces together and create the final game.

Exercise

Before we start, let's take a look at what the end result should look like. Play the game and enjoy the battle!