Coder Social home page Coder Social logo

mnkgame's Introduction

MNK Game

Introduction

Project for the Algorithms and Data Structures course at the University of Bologna (A.Y. 2020-2021).

Description

MNK Game is a generalized version of tic-tac-toe with a M x N grid and the objective of aligning K elements.
The task is to implement a resource efficient algorithm able to play the game (potentially any configuration) in an optimal way.

Players

RandomPlayer plays completely random moves.
QuasiRandomPlayer plays randomly but is able to detect a single-move win or loss.
OurPlayer the implementation for the project.

Packages

mnkgame contains the base MNK Game program provided for the project.
player contains the implementation of the players (Note: RandomPlayer and QuasiRandomPlayer were already provided).

Compiling

From the project root folder, run:

javac mnkgame/*.java
javac player/*.java

Usage

Human vs Computer

java mnkgame.MNKGame [M] [N] [K] player.[Player]

Computer vs Computer

java mnkgame.MNKGame [M] [N] [K] player.[Player1] player.[Player2]

Automated tester (Computer vs Computer)

Text based game that only shows the result

java mnkgame.MNKPlayerTester [M] [N] [K] player.[Player1] player.[Player2]

Flags

-v Verbose
-t [n] Timeout of [n] seconds to select the next move
-r [n] Play [n] rounds

mnkgame's People

Contributors

notxia avatar zaid1710 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.