Original author(s) | Tom Poindexter |
---|---|
Initial release | December 1985 |
Stable release | 1.1 patch level 2.1 / November 22, 2003 |
Written in | C [1] |
Operating system | MS-DOS, Windows, Linux ELF i686, Linux ELF x86_64, IBM AIX 5.3, HP-UX, PlayStation 3, Solaris 9, Mac OS X |
Platform | Personal computer |
Size | 65.5 KB - 140.9 KB, 509.0 (Mac OS X) |
Type | Programming game |
License | GPLv2, open-source |
Website | http://crobots.deepthought.it |
Crobots is a programming game released for the first time by Tom Poindexter in December, 1985 as Shareware. [2] It is an MS-DOS program for IBM PC and compatibles and was developed on x86-based Unix systems. [3] [4]
The robots are controlled by a program written in a stripped-down version of C. The robot's mission is to seek out and destroy other robots, each running different programs. The robots can be controlled in order to move around the battlefield, scan the environment to find enemies and fire at enemies using a cannon. [5]
Crobots borrows the concept used from the game RobotWar that ran on the original Apple II computer. Robots were programmed in a proprietary programming language that was interpreted and included a real-time view of the game as it was played.
In October, 2013, Poindexter released the source code of Crobots under the GPLv2 free software license. [6] [7]
There have been many Crobots clones made. However, very few of them are compiler and virtual machine at the same time; for example there are Java clones that use JVM and C++ clones that use a standard Microsoft compiler.
Proper clones have the same intrinsic functions as the original Tom Poindexter version; sometimes however the direction of angles is changed to match the standard C library's trigonometric functions. The most recent[ when? ] clones are Crobots64 and Netrobots.
Crobots64 by Marco Zora has a C++-subset compiler and a virtual machine with a graphical interface. [8] New capabilities in this clone are cooperation between robots of the same species, the unlimited number of concurrent robots, the floating point math functions and the speed of the virtual CPU.
In contrast, Netrobots can run over a network with each robot running in a separate process, and each robot can be written in a different programming language. [9]
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.
Lisp is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1960, Lisp is the second-oldest high-level programming language still in common use, after Fortran. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket and Clojure.
OCaml is a general-purpose, high-level multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features. OCaml was created in 1996 by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez, and others.
In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of the following strategies for program execution:
Bytecode is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.
D, also known as dlang, is a multi-paradigm system programming language created by Walter Bright at Digital Mars and released in 2001. Andrei Alexandrescu joined the design and development effort in 2007. Though it originated as a re-engineering of C++, D is a profoundly different language —features of D can be considered streamlined and expanded-upon ideas from C++, however D also draws inspiration from other high-level programming languages, notably Java, Python, Ruby, C#, and Eiffel.
Far Manager is an orthodox file manager for Microsoft Windows and is a clone of Norton Commander. Far Manager uses the Win32 console and has a keyboard-oriented user interface.
This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.
Watcom C/C++ is an integrated development environment (IDE) product from Watcom International Corporation for the C, C++, and Fortran programming languages. Watcom C/C++ was a commercial product until it was discontinued, then released under the Sybase Open Watcom Public License as Open Watcom C/C++. It features tools for developing and debugging code for DOS, OS/2, and Windows, Linux operating systems, which are based upon x86, IA-32, x86-64 compatible processors.
RoboWar is an open-source video game in which the player programs onscreen icon-like robots to battle each other with animation and sound effects. The syntax of the language in which the robots are programmed is a relatively simple stack-based one, based largely on IF, THEN, and simply-defined variables.
TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript. It is designed for the development of large applications and transpiles to JavaScript. Because TypeScript is a superset of JavaScript, all JavaScript programs are syntactically valid TypeScript, but they can fail to type-check for safety reasons.
A robotics simulator is a simulator used to create an application for a physical robot without depending on the physical machine, thus saving cost and time. In some case, such applications can be transferred onto a physical robot without modification.
Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but also has memory safety, garbage collection, structural typing, and CSP-style concurrency. It is often referred to as Golang because of its former domain name, golang.org
, but its proper name is Go.
Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry. Haskell's main implementation is the Glasgow Haskell Compiler (GHC).
Julia is a high-level, general-purpose dynamic programming language. Its features are well suited for numerical analysis and computational science.
AngelScript is an open-source game-oriented compiled scripting language developed by Andreas Jönsson at AngelCode.
ZeroVM is an open source light-weight virtualization and sandboxing technology. It virtualizes a single process using the Google Native Client platform. Since only a single process is virtualized, the startup overhead is in the order of 5 ms.
Nim is a general-purpose, multi-paradigm, statically typed, compiled high-level systems programming language, designed and developed by a team around Andreas Rumpf. Nim is designed to be "efficient, expressive, and elegant", supporting metaprogramming, functional, message passing, procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C, C++, Objective-C, and JavaScript, and supporting compiling to those same languages as intermediate representations.
WebAssembly defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.