Skip to content

The objective of this work is to develop a web application, in this case an online game. First Semester of the Third Year of the Bachelor's Degree in Artificial Intelligence and Data Science.

Notifications You must be signed in to change notification settings

Maguids/NineMensMorris-Online-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nine Men's Morris - Online Game

This project was developed for the "Web Tecnologies" course and aims to develop a web application in all its aspects. In this project I'm developing a web version of the game Nine Men's Morris, both with a local and online version. First Semester of the Third Year of the Bachelor's Degree in Artificial Intelligence and Data Science.


Programming Language:


python html css


The Project

This project is divided into three distinct parts, each of which complements the other, as in reality it is as if it were a single project that was developed little by little.


Deliver 1:

In the first delivery the goal was to have a single page application that was divided into different areas for the following purposes:

  • Logo
  • Settings
  • Commands
  • Identification
  • Board
  • Instructions
  • Classifications
  • Messages
  • AI

Note that these areas do not need to be visible at all times, and that some may temporarily overlap with others.

Settings: In the settings you can define:

  • Board size;
  • Play against the computer or another player;
  • First player to play;
  • Level of artificial intelligence;


AI: It is possible to play against different levels of AI, being that:

  • Easy Mode: Performs random moves;
  • Intermediate Mode: Prioritizes making mills when possible;
  • Hard Mode: Blocks the opponent from making windmills and prioritizes making mills;


Deliver 2:

The goal of the second deliver is to make the game distributed, allowing players to participate on different computers.

At this stage we simply adapted the code so that it would be possible to use the server provided by the teacher, and it is possible to perform the following actions:

  • register: register a player with nickname and password
  • join: joins two players who want to play a game with a certain board size. If there is a player waiting for a game with the same characteristics then they are matched immediately. Otherwise, the player is registered for later pairing.
  • leave: Function called to leave the game. If it is summoned during pairing, while waiting for other players, then it has no consequences. If the game is already underway, exiting using this method grants victory to the opponent.
  • notify: This function notifies the server about a move.
  • update: Gives players updates on changes made to the server
  • ranking: Returns a ranking table with a maximum of 10 players, ranked in descending order of the number of victories.

Deliver 3:

The objective of the third delivery is the development of the game server in Node, without frameworks, replicating and replacing the server used in the second delivery.

Other Server:

Although I can't use frameworks, I decided to create a server using frameworks that are in the "Server" folder.


About the repository:

All deliveries have the following contents:

  • game.js ➡️The code with the game and buttons;
  • index.html ➡️ Html file;
  • style.css ➡️ Style the website page;

Regarding the server:

  • controllers ➡️ Folder with files for each of the server 'actions';
  • data ➡️ Files were server info is saved such as players and their passwords, games status...;
  • utils ➡️ Files with utilities that can be used on multiple files like encrypt;

Link to the course:

This course is part of the first semester of the third year of the Bachelor's Degree in Artificial Intelligence and Data Science at FCUP and FEUP in the academic year 2024/2025. You can find more information about this course at the following link:

About

The objective of this work is to develop a web application, in this case an online game. First Semester of the Third Year of the Bachelor's Degree in Artificial Intelligence and Data Science.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published