Skip to content

DriHut/ExplodingKitten

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

How to run:

  1. Use Java 11.
  2. You can run the ServerGame.
  3. You can run the ClientGame specifying '-h' for HumanPlayer or '-ai' for ComputerPlayer.
  4. Then follow the instructions on the client terminals to set the connection.

Tweaking the game:

  • Adding player can be done by changing the constant PLAYER_COUNT in ServerGame.
  • Changing the port can be done in the same place.
  • You can change the hand size, defuse count in the deck and the delay before a NOPE can be played in Game.
  • If you want feedback from networking messages, you can add logging in Handler.

About the structure:

  • All server networking handling is in the part server.
  • All client networking handling is in the part client.
  • All the game logic is in logic.
  • The player is used for both client and server but the ClientPlayer is specifically is for the client side.
  • Both HumanPlayer and ComputerPlayer are extensions of ClientPlayer.
  • The protocol package contains all the utils for networking.

About the game:

  • The game implements the cards ATTACK, SKIP, FAVOR, SHUFFLE, SEE_THE_FUTURE, NOPE, DEFUSE, and EXPLODING_KITTEN.
  • The cat cards don't do anything.
  • ATTACK cards can be stacked.
  • You can skip any draw actions.
  • Cards like FAVOR, SHUFFLE, and SEE_THE_FUTURE can only be noped in a given set of time after being placed.
  • NOPE can be noped becoming a yes, meaning the card will be executed again.
  • The player has a choice on where to place the defused kitten in the deck.
  • The player can choose who the favor is from.
  • A player can play the DEFUSE card preemptively.
  • Players can chat at anytime by adding '!' before any inputs.

About Computer player:

none implemented have fun

About

A java implementation of the game exploding kitten using a TUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages