Hex with Pygame
Recreation of HexGame in Pygame.
Whats is Hex ?
Historical point of view
Hex as been created in 1942 by a Danish mathematician named Piet Hein. The first commercialization of this game is in 1952. With time, some strategies to win have been seeking. Thus, techniques have been found to consistently win on a 7x7 and 9x9 Board. More recently, in 2019, Facebook succeeds in beating the best player of Hex on a 19x19 board.
What Are the rules of this game ?
First, Hex is a two player game. It's a strategic and abstract board game. Each players have a color, black and white. The cells of the board are made up of hexagons. Hence the name "Hex".The goal for each player is to form a connected path of their stones linking the opposing sides of the board marked by their colors before their opponent similarly connects his or her sides.
Illustration from the Game
In this example, white won because they form a line that is linking the opposite white side. Traditionally, board measure 9x9, 11x11, 13x13 or 17x17.
Some Strategies and tips
Easy and Faster connections
Usually, beginners place their pawns directly next to them to create a connection. But there is a faster way to proceed. If you have 2 pawns that have 2 hexagons in common (1), they can be connected, even if black put a Hexagon in one of them (2) > (3). Example:
Stopping a pawn
Imagine playing black and being in this situation:
How can you stop white ?
First play a pawn in front of white's pawn.
Now white is obligate to play at the left if they want to win.
Now that you are in this position you must put white in a situation where they must play near your pion, by playing like that:
Now white as no option:
Last be not the least, play a pawn like the first time
And that's it ! You blocked them.
The program
The algorithm for the Win
How can the algorithm detect if a player has won ?
Step 1:
If there is a pawn on the first line, it would be marked as "solution pawn".
If there is no pawn on this line, then, the player can't win
Step 2:
All pawns connected to a solution Pawn becomes Solution pawn. But when a Solution Pawn makes a non-solution pawn to become a solution, then this pawn becomes "past". A past pawn can't be a solution pawn anymore.
Step 3:
If a solution pawn is on the last line, the player won.
This algorithm can be similar to Mathematical induction ("Raisonnement par RĂ©currence" in French) in Maths
Other fonctionnalities
Color
You can customize the main color of this game. Just by pressing a button
Languages
Many languages are available. (French ?? , English ?? , Japan ?? , Korean ?? , Greek ?? and Sweden ?? )
Sound/Music
There is an default music made by the author. The volume of the music can be modified from 0.0% to 100.0%
Lenght of the Board
The Lenght of the board can go from 5x5 to 50x50