From a0c6a1da98a10495ffd5f5c0c7b82344d52be14d Mon Sep 17 00:00:00 2001 From: Niels Serup Date: Thu, 25 Aug 2011 01:00:01 +0200 Subject: [PATCH] Added hbcht. --- site/projects/hbcht/hbcht-0.1.0.tar.gz | Bin 0 -> 25672 bytes site/projects/hbcht/index.org | 85 +++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 site/projects/hbcht/hbcht-0.1.0.tar.gz create mode 100644 site/projects/hbcht/index.org diff --git a/site/projects/hbcht/hbcht-0.1.0.tar.gz b/site/projects/hbcht/hbcht-0.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..91d884698cc3830c760aac039c9ce8b5e21c0d21 GIT binary patch literal 25672 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 literal 0 HcmV?d00001 diff --git a/site/projects/hbcht/index.org b/site/projects/hbcht/index.org new file mode 100644 index 0000000..ff72343 --- /dev/null +++ b/site/projects/hbcht/index.org @@ -0,0 +1,85 @@ +#+title: Half-Broken Car in Heavy Traffic +#&summary +An esoteric programming language with compiler/interpreter +#& +#+license: bysa, text +#+license: agpl 3+, program +#&toc + +* Half-Broken Car in Heavy Traffic + +Half-Broken Car in Heavy Traffic is a difficult programming language with only +5 combined operators and direction "signs" for 2D grids. + +hbcht is a Python 3.1+ combined compiler/interpreter for the language. + +** Language documentation + +This is the official documentation of HBCHT. + +HBCHT is a 2D grid-based programming language. You are a car fighting to get to +the exit of a very chaotic highway. You have to follow the signs, but whenever +you do that, you also change your memory. The value of your current memory cell +can be incremented or decremented and your memory cell index can change. You +can also find signs that tell you to turn either right or not turn at all, +depending on your memory. + +The car can drive in four directions: up, right, down, and left. Because of the +chaos, you never know which direction the car is headed when the program +starts. This makes it easy to randomize the output. + +To make things worse (actually, it's to make programming in HBCHT possible), +you cannot turn left because your car is half-broken. You can drive straight +ahead, you can turn right, and you can reverse. + +*** Markers + +: o car +: # exit, return/print + +*** Operations + +: > go right, next memory cell +: < go left, previous memory cell +: ^ go up, increment +: v go down, decrement +: / go right if the current memory cell has the same value as the previous +: memory cell, else continue (if the previous memory cell does not exist, +: its value is zero) + +*** Rules + ++ There can be only one car and only one exit ++ The car cannot turn left; any relative left turns will be ignored along with + their memory effects ++ The program always starts at memory cell #0 ++ All memory cells have the value 0 by default ++ Input values cannot be negative, but values returned by a program can ++ The car cannot go out of bound; if it exits to the right, it reenters to the + left, etc. ++ Values cannot be input to memory cells below memory cell #0, but the program + can set values in these ++ Values can be arbitrarily large. An interpreter or compiler without this + feature is valid, but not perfect (note that hbcht's C translator uses + 32-bit ints and is thereby not perfect). + +A semicolon denotes a comment. Anything from the semicolon to the end of the +line is ignored. + +If a program file contains a line that starts with =@intext=, it will see +input as text and convert the text to ordinals before running the core +function. + +If a program file contains a line that starts with =@outtext=, it will show +output as a text string instead of a list of numbers. + + +** Download + +hbcht is released under the AGPLv3+. + +[[hbcht-0.1.0.tar.gz][Download]]. + +hbcht can also be found in the [[http://pypi.python.org/pypi/hbcht][Python Package Index]]. hbcht has its code at +Gitorious; see [[http://gitorious.org/hbcht]]. +