Files
2024-08-31 12:07:21 +03:00

44 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# :video_game: Assignment 09
## Requirements
- You will be given one of the problems below to solve
- Use object oriented programming and layered architecture
- All modules with the exception of the UI will have specifications and PyUnit test cases
- The program must protect itself against the users invalid input
**NB!** We do not expect you to implement optimal play for the computer player. However, it should still employ a strategy when making its moves in order to attempt to win the game and provide an entertaining opponent for the human player. Minimally, the computer player should move to win the game whenever possible and should block the human players attempts at 1-move victory, whenever possible
**deadline is week 14**
## GUI Bonus (0.2P)
- In addition to the console-based user interface required, also implement a graphical user interface (GUI) for the program
- To receive the bonus, both user interfaces (menu-based and graphical) must use the same program layers. You have to be able to start the application with either user interface
## AI Bonus (0.2P)
- Implement computer AI using a [minimax algorithm](https://en.wikipedia.org/wiki/Minimax). Computer play should be competitive against the human player
- In the case where minimax cannot be applied (e.g. Battleship, which is not a [complete information](https://en.wikipedia.org/wiki/Complete_information) game), find a suitable alternative; talk to your lab professor about the bonus possibility in this case
## Best-of-FP Bonus (0.2P)
- This bonus will be awarded to the very best implementations. To receive it, you need to implement both the **GUI** and **AI** bonuses, follow all implementation requirements, and have your work be selected by the laboratory professor
- These implementations will be part of a separate GitHub repository that we aim to make publicly accessible in order to feature some of our students' best work during this semester
## Problem Statements
### Connect Four
The game is described [here](https://en.wikipedia.org/wiki/Connect_Four)
### Gomoku
The game is described [here](https://en.wikipedia.org/wiki/Gomoku)
### Obstruction
The game is described [here](http://www.papg.com/show?2XMX)
### Battleship
The game is described [here](https://en.wikipedia.org/wiki/Battleship_(game))
### Planes
The game is described [here](https://ro.wikipedia.org/wiki/Avioane_(joc))
### Nine men's morris
The game is described [here](https://en.wikipedia.org/wiki/Nine_men%27s_morris)
### Other games!
You are free to implement a different board game, as long as its complexity is similar to those above. Talk to your laboratory professor to validate your idea before starting work!