Skip to content

obilodeau/ceopardy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5a53ebc · Sep 4, 2024
Apr 12, 2017
May 4, 2017
Mar 20, 2018
Sep 2, 2024
Oct 13, 2019
Sep 4, 2024
Sep 2, 2024
Mar 18, 2018
Sep 2, 2024
Sep 4, 2024
May 10, 2019
May 18, 2024
May 1, 2017
May 4, 2017
Sep 2, 2024
Sep 2, 2024
Sep 4, 2024
Apr 24, 2017
May 10, 2019

Repository files navigation

Ceopardy

The Hacker Jeopardy Game Board we use at NorthSec.

Screenshots

This is what the crowd sees:

The Viewer Interface Displaying the Game Board

When a clue is displayed:

The Viewer Interface Displaying a Clue

This is the host interface, how you control the game:

The Host Interface

Note that there are two drawers that can be opened by clicking on the brown arrows at the top and at the bottom of the screen. The top drawer contain the functions to change team names. The bottom drawer provides functions to display a custom message on the board or to pause a game.

First time deployment

You need Python, pip, virtualenv and npm. The tl;dr:

python -m venv .venv/
source .venv/bin/activate
pip install -r requirements.txt
npm install
npm run copy-assets
python ceopardy.py

Setup

Display

You need at least 2 outputs: one for the game host for control and one for the public.

At NorthSec 2017, we used 3 outputs because we didn’t have the proper gear to duplicate the public output for a stage monitor. There is a script in helpers/ that will set 3 outputs using xrandr. It didn’t work with a GUI tool when we tried at that time.

Prepare a game

Game data goes in data/. There you should add round files (create a .round file) and questions in Questions.cp. The format is pretty self explanatory. Check data/ for an example.

Running

python ceopardy.py

Then open the host view and setup the game. The players' view (also known as the viewer) can be opened at any time. Nothing will be displayed until the game is started by the host.

Note
In order to avoid dataloss due to a crash, Ceopardy is backed by a database where transactions are pushed when the hosts submit the points. This has the flipside requiring games to be finalized before a new one can be started. Make sure that you always push the "Game over" button before reloading to start a new game.