basicbots is a programming game where you program your robot to compete against other robot.

basicbots

What is baiscbots?

basicbots is a programming game where you program your robot to compete agaist other robots.

What is the inspiration?

My first introduction to programming combat games was Tom Poindexter's original crobots from 1985. Which is, IMHO, still a whole lot of fun to play.

Graphics, or the lack of.

In keeping with the look and feel of the late 70s and early 80s the battlefield display is strictly ascii.

basicbot's programming language,

basicbots uses a subset of BASIC. Why BASIC? Well, because why not? BASIC is not a completely dead language, but for those of us old enough this should take you back in time to the versions around the late 1970s and early 1980s. If not, that is okay as well. You can get a sample of what it was like to live in the 8-bit world when computers were simpler.

basicbots is my first Open Source project.

I expect it will take time for me to learn the ins and outs of managing an Open Source project. I ask for your help, in all areas of the project.

  • Fixxing spelling errors and typos.
  • Creating documentation.
  • Documenting the code.
  • Squashing bugs.
  • Adding features.
  • Suggesting enhancements.
  • Guiding me to a better understanding of Open Source projects.


News

  • Nightly builds will be put on hold until I can find a way to automate it.

Contributors

Guidlines

I am on twitter as @misterunix and @basicbots my email address is [email protected]. Reachout with any questions.

Owner
Bill Jones
I'm Bill. I live in Texas. I have transitioned to Go as my primary language. I write system tools primarily. I love old school type games.
Bill Jones
Comments
  • port to OSX

    port to OSX

    There's presently a barrier with syscall.Nanosleep() in delay/udelay.go; this is likely to be something appropriate for Linux and Windows but not OSX.

  • Noticed, I don't always see an explosion at all.

    Noticed, I don't always see an explosion at all.

    in some runs, Ive noticed that the explosion animation doesnt also show. Not sure where this is coming from yet.

    try changing

    EXPLODECOUNT = 5 // EXPLODECOUNT : The number of movement cycles for the explosion to show in the battlescreen.

    to another value. 5 movement ticks may not be enough.

    Is this only a Linux issue or does it happen in windows as well. More testing needed.

  • Correcting spelling and grammar errors in markdown files.

    Correcting spelling and grammar errors in markdown files.

    All markdown files that I have touched are being put through Grammarly. Fixing all sorts of problems I created. Branch grammarly-10-13-2021 is the current branch of this task.

  • explosion at the bottom wall causes frame issues.

    explosion at the bottom wall causes frame issues.

    While working on benchmarking test, I noticed that explosions on the bottom wall caused that section to change to spaces. Shouldn't be too hard to fix. Check during explosion for the Y position and not display explosion on the bottom wall. I bet the same thing happens on the X-axis as well.

  • Speed issues with battle screen

    Speed issues with battle screen

    When using the battle screen the program is wholely dependent on the speed of the host.

    Need to decide on a number of instructions per second. Then build a delay to match.


    Windows delay working but cant tune it yet. Need to figure out how many cycles per second I want on the battledisplay.

    Unix code added, but will need to move back to unix to finish testing.

    Conditionals added to only load unix or windows based on OS during compile.


    Unix code working now.

    Need to test on different machines. Times to have a distro package done.

  • Terminal breaks when error in basic happens

    Terminal breaks when error in basic happens

    When there is a error in the basic program while running the battlescreen, the terminal doesn't return to normal.

    Need to detect error condition an exit tcell cleanly.

  • battledisplay failing on old linux dev machine

    battledisplay failing on old linux dev machine

    Version v0.0.1a

    Linux newdev.localdomain 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux CentOS Linux release 7.9.2009 (Core)

    panic: close of nil channel
    
    goroutine 1 [running]:
    github.com/gdamore/tcell/v2.(*tScreen).finish(...)
            /home/bjones/go/pkg/mod/github.com/gdamore/tcell/[email protected]/tscreen.go:481
    sync.(*Once).doSlow(0xc0001aa0c0, 0xc0001c8000)
            /usr/local/go/src/sync/once.go:68 +0xd2
    sync.(*Once).Do(...)
            /usr/local/go/src/sync/once.go:59
    github.com/gdamore/tcell/v2.(*tScreen).Fini(0xc000054180)
            /home/bjones/go/pkg/mod/github.com/gdamore/tcell/[email protected]/tscreen.go:477 +0x47
    main.main()
            /home/bjones/go/src/basicbots/main.go:70 +0x463
    

    Line reported is: scr.Fini() BUT there is more to it than that. The battlescreen never displays. Tried compiling on both linux boxes and the Cento fails.


    works on Linux Dev1 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux Ubuntu 20.04.3 LTS

  • expected assignment after LET x, got Token{Type:, Value:,}

    expected assignment after LET x, got Token{Type:, Value:,}

    C:\Users\miste\go\src\basicbots>basicbots.exe -m 11 robots/target-v1.bas robots/nexus-b.bas Error running program: line 3025 : expected assignment after LET x, got Token{Type:, Value:,}

    3010 LET SCANANGLE = 0 3020 LET RANGE = SCAN SCANANGLE, 5 3025 IF RANGE = 0 OR RANGE > 700 THEN GOTO 3030 ELSE GOTO 3050 3030 LET SCANANGLE = SCANANGLE + 10 3035 IF SCANANGLE = 360 THEN RETURN 3050 CANNON SCANANGLE, RANGE 3055 GOTO 3020

    Line 3025 will cause an error and I dont know why.

    but if rewritten as 3025 IF RANGE < 700 AND RANGE > 40 THEN GOTO 3050

    Works as expected.

A cli to play chess against an an UCI engine of your choice, written in go
A cli to play chess against an an UCI engine of your choice, written in go

chess-cli chess-cli is a cli for playing chess against an UCI compatible engine written in go Note: Chess pieces are in unicode, so the color may seem

Mar 1, 2022
A cli to play chess against an an UCI engine of your choice, written in go
A cli to play chess against an an UCI engine of your choice, written in go

chess-cli chess-cli is a cli for playing chess against an UCI compatible engine written in go Note: Chess pieces are in unicode, so the color may seem

Dec 24, 2021
Emulate a Vikings War of Clans battle with the real game mechanics and gives you the results of your emulated rapport!

VikingsStatsCalc Emulate a Vikings War of Clans battle with the real game mechanics and gives you the results of your emulated rapport! TODO Introduce

Nov 18, 2022
Arkanoid game in Go using Ebiten game engine with ECS.
Arkanoid game in Go using Ebiten game engine with ECS.

Arkanoid-go Arkanoid game in Go using Ebiten game engine with ECS. You must have Git LFS installed when cloning the repository to download assets. See

Oct 9, 2022
AircraftWar - a game powered by Go+ spx game engine
AircraftWar - a game powered by Go+ spx game engine

AircraftWar - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download thi

Jan 5, 2022
FlappyCalf - a game powered by Go+ spx game engine
FlappyCalf - a game powered by Go+ spx game engine

FlappyCalf - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download this

Nov 6, 2022
FlappyCalf - a game powered by Go+ spx game engine
FlappyCalf - a game powered by Go+ spx game engine

FlappyCalf - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download this

Nov 6, 2022
MazePlay - a game powered by Go+ spx game engine
MazePlay - a game powered by Go+ spx game engine

MazePlay - a game powered by Go+ spx game engine How to run Download Go+ and build it. See https://github.com/goplus/gop#how-to-build. Download this g

Dec 16, 2021
A simple game that I created with Ebiten game library as a way to teach myself Go. Enjoy!
A simple game that I created with Ebiten game library as a way to teach myself Go. Enjoy!

galactic-asteroid-belt Overview A simple game that I created with Ebiten game library as a way to teach myself Go. Enjoy! Run To run, you will need Go

Dec 2, 2021
RundQuiz-Game - This is a Go exercise that implements and builds a quiz game from a list of math questions in a CSV file.

Go RundQuiz Game Exercise details This exercise is broken into two parts to help simplify the process of explaining it as well as to make it easier to

Jan 5, 2022
Simple 2D game to teach myself various things about game development and ECS, etc

2d-grass-game I really don't know what to name this game. Its a big grass field, and its in 2d so....2D Grass game This is a simple 2D game to teach m

Jan 17, 2022
Dabulang is an interpreted object-oriented programming language aimed towards game development.

Dabulang (ダブ言語) Dabulang is an interpreted object-oriented programming language aimed towards game development. The language's standard library has a

Sep 14, 2022
Guess-number-game - Computer thoughts of some integer number, you must guess it with limited number of attempts
Guess-number-game - Computer thoughts of some integer number, you must guess it with limited number of attempts

Guess number game Rules Computer has thought of some integer number. You must guess it, you have numberOfAttempts attempts. How to run Just type in co

Dec 31, 2021
Simple rule based matchmaking for your online game with support of Redcon(RESP) protocol.
 Simple rule based matchmaking for your online game with support of Redcon(RESP) protocol.

Simple Matchmaking Simple rule based matchmaking for your online game with support of Redcon(RESP) protocol. 1- Simple Match Rule Easiest usage of sys

Jan 4, 2023
A program written in Go that plays Go

Gongo - a Go player written in Go Author: Brian Slesinsky Last update: December 6, 2009 This is a simple computer program that plays Go, but not very

Aug 14, 2021
Gones - An attempt to program a NES emulator

Gones - An attempt to program a NES emulator The following resources were used for the project: The great work on wiki.nesdev.org R650X and R651X Data

Jan 10, 2022
A small go program that solves the Queen's Gambit chess puzzle.

Queen's Gambit Solver This program attempts to solve the Queen's Gambit each time it is run. The Queen's Gambit is a chess-based puzzle where eight qu

Jun 27, 2022
A dead simple 2D game library for Go
A dead simple 2D game library for Go

Ebiten (v2) A dead simple 2D game library for Go Ebiten is an open source game library for the Go programming language. Ebiten's simple API allows you

Dec 28, 2022
Engo is an open-source 2D game engine written in Go.

Engo A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. Engo is currently compilable for

Dec 26, 2022