{"id":15720697,"url":"https://github.com/crispinprojects/gtk4-checkers","last_synced_at":"2026-04-27T23:34:05.879Z","repository":{"id":269312276,"uuid":"907009587","full_name":"crispinprojects/gtk4-checkers","owner":"crispinprojects","description":"Gtk4 checkers is a demo of the classic human-vs-computer checkers game for Linux computers","archived":false,"fork":false,"pushed_at":"2025-09-13T10:04:36.000Z","size":1971,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-08T22:46:22.752Z","etag":null,"topics":["checkers","game","linux","minimax","minimax-algorithm"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crispinprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-22T15:04:09.000Z","updated_at":"2025-09-13T10:04:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"e58956af-4a37-4c45-9dcd-1810e238c7c4","html_url":"https://github.com/crispinprojects/gtk4-checkers","commit_stats":null,"previous_names":["crispinprojects/mxcheckers","crispinprojects/gtk4-checkers"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/crispinprojects/gtk4-checkers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fgtk4-checkers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fgtk4-checkers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fgtk4-checkers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fgtk4-checkers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crispinprojects","download_url":"https://codeload.github.com/crispinprojects/gtk4-checkers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fgtk4-checkers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32360110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["checkers","game","linux","minimax","minimax-algorithm"],"created_at":"2024-10-03T21:59:50.912Z","updated_at":"2026-04-27T23:34:05.840Z","avatar_url":"https://github.com/crispinprojects.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gtk4 Checkers\n\nGtk4 Checkers is a demo of the classic human-vs-computer checkers game for Linux computers. \n\nA screenshot of Gtk4 Checkers is shown below \n\n![](gtk4-checkers.png) \n\n## Checkers Rules\n\nCheckers is a two-player strategy game played on an 8×8 checkerboard which involve diagonal moves of circular game pieces and mandatory captures by jumping over opponent pieces. In Britain, American checkers is known as Draughts.\n\nIn checkers there are two opponents on opposite sides of the game board. One player is called the white player and the other is called the black player (computer AI in this case). White moves first, then players take alternate turns. Obviously, the white player cannot move the black player's pieces and vice versa. In this game the white pieces are coloured green. Ncurses only supports 8 colours. \n\nA move consists of moving a piece forward to a diagonal adjacent unoccupied square. If the adjacent square contains an opponent's piece, and the square immediately beyond it is unoccupied, then the opponent piece must be captured and is removed from the game by jumping over it. This is called a jump move. A piece can only move forward into an unoccupied square. When jumping an opponent's piece is possible then this must be done and can involve multiple jumps. \n\nWhen a piece reaches the other end of the board it becomes a king and can move and capture diagonally in all directions.\n\n### Pre-built Game Executables\n\nPre-built  game executable for Gtk4 Checkers is available for the  Intel x86 Linux computers and can be downloaded from the binary folder. It has been tested using Debian 13 with Gtk 4.18.\n\n\n\n## Usage\n\nEnter diagonal move coordinates to make a human move. A computer AI vs computer AI mode is also supported and should always result in a draw.\n\n\n## AI\n\nThe AI uses a [minimax](https://en.wikipedia.org/wiki/Minimax) algorithm. There is a MIT OpenCourseWare lecture on the minimax algorithm [here](https://www.youtube.com/watch?v=STjW3eH0Cik\u0026t=13s).  The minimax algorithm used in Gtk4 Checkers takes piece capture mechanics into account.\n\n\n## Build From Source\n\nThe C source code for Gtk4 Checkers is provided in the src directory. \n\nYou need to install the following packages.\n\n```\nsudo apt-get update\nsudo apt install build-essential\nsudo apt install libgtk-4-dev\n```\n\nUse the MAKEFILE to compile. \n\n```\nmake\n```\n\nTo run Gtk4 Checkers from the terminal use\n\n```\n./checkers\n```\n\nMake clean is also supported.\n\n```\nmake clean\n```\n\n## Version Control\n\n[SemVer](http://semver.org/) is used for version control. The version number has the form 0.0.0 representing major, minor and bug fix changes.\n\nThe code will be updated as and when I find bugs or make improvement to the code base.\n\n## Author\n\n* **Alan Crispin** [Github](https://github.com/crispinprojects)\n\n\n## Project Status\n\nActive.\n\n## Acknowledgements\n\n* [Geany](https://www.geany.org/) is a lightweight source-code editor [GPL v2 license](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)\n\n* [MIT OpenCourseWare Lecture. Search: Games, Minimax and Alpha-Beta](https://www.youtube.com/watch?v=STjW3eH0Cik\u0026t=13s)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrispinprojects%2Fgtk4-checkers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrispinprojects%2Fgtk4-checkers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrispinprojects%2Fgtk4-checkers/lists"}