Added hbcht.
This commit is contained in:
		
							parent
							
								
									3eba88da40
								
							
						
					
					
						commit
						a0c6a1da98
					
				
							
								
								
									
										
											BIN
										
									
								
								site/projects/hbcht/hbcht-0.1.0.tar.gz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								site/projects/hbcht/hbcht-0.1.0.tar.gz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										85
									
								
								site/projects/hbcht/index.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								site/projects/hbcht/index.org
									
									
									
									
									
										Normal file
									
								
							| @ -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]]. | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Niels Serup
						Niels Serup