Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alessandrojcm/mazes-for-programmers
A Go implementation of Mazes for Programmers by James Buck using raylib
https://github.com/alessandrojcm/mazes-for-programmers
algorithms game go golang raylib raylib-go
Last synced: about 1 month ago
JSON representation
A Go implementation of Mazes for Programmers by James Buck using raylib
- Host: GitHub
- URL: https://github.com/alessandrojcm/mazes-for-programmers
- Owner: alessandrojcm
- License: mit
- Created: 2022-10-31T19:37:56.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-17T15:22:23.000Z (4 months ago)
- Last Synced: 2024-07-18T18:14:41.373Z (4 months ago)
- Topics: algorithms, game, go, golang, raylib, raylib-go
- Language: Go
- Homepage:
- Size: 176 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mazes for Programmers
This book is a Go implementation for the book [Mazes for Programmers](http://www.mazesforprogrammers.com/)
by James Buck.It will be used mainly as a tool to learn Go, this book was chosen for
several reasons:* It is very well written and provides fun challenges, thus keeping the reader interested
* The mazes are implemented using classic algorithms and data structures,
thus making you think
* It delves into graphically representing the mazes, hence a graphics library is needed. This is always fun
* Code samples are written in Ruby, being the high-level language that it is, Ruby provides a lot of "magic" built-in
that Go simply hasn't got. Thus, it forces us to find the most idiomatic way in Go of implementing these features; this
provides a very hands-on way of getting to know the language.Code samples will be implemented pure Go, whereas for the graphics the Go bindings of [raylib](https://github.com/gen2brain/raylib-go)
will be used. Raylib is a simple library written in C (so it's written in a imperative way) that wraps the OpenGL API, it's made mainly to teach game development;
thus its API is very simplified while at the same time providing everything that is necessary for a 2D (and even 3D) application.This module is structure like this (work in progress):
* `mfp` contains all the logic for the mazes, abstracted from graphic representation where possible
* `main` contains the application that calls the code defined in the above package