Category:Craft Basic: Difference between revisions
Content added Content deleted
Basicgames (talk | contribs) No edit summary |
Basicgames (talk | contribs) (Replaced content with "{{language|Craft Basic}} [http://basicgames.xyz/index.php?page=article&id=16 Craft Basic homepage]<br> [http://basicgames.xyz/index.php?page=article&id=16 Craft Basic documentation]<br> <br> About:<br> <br> Craft Basic is a BASIC interpreter for Windows 95 and up.<br> <br> Tested on 95, XP, and 10.<br> <br> * learn programming<br> * make simple games<br> * write code interactively<br> * perform complex calculations<br> * display cool graphics<br> * build wi...") Tag: Replaced |
||
Line 1: | Line 1: | ||
{{language|Craft Basic}} |
|||
[http://basicgames.xyz/index.php?page=article&id=16 Craft Basic homepage]<br> |
[http://basicgames.xyz/index.php?page=article&id=16 Craft Basic homepage]<br> |
||
[http://basicgames.xyz/index.php?page=article&id=16 Craft Basic documentation]<br> |
|||
<br> |
<br> |
||
About:<br> |
About:<br> |
||
Line 17: | Line 19: | ||
* write useful scripts<br> |
* write useful scripts<br> |
||
* and more...<br> |
* and more...<br> |
||
<br> |
|||
Memory:<br> |
|||
<br> |
|||
Maximum lines of code is 10000.<br> |
|||
Maximum operands in an expression is 200.<br> |
|||
Maximum variables is 500.<br> |
|||
Maximum arrays is 500 with 1000 maximum elements each.<br> |
|||
Maximum declared functions is 100.<br> |
|||
<br> |
|||
Expressions:<br> |
|||
<br> |
|||
Operator precedence is !, *, /, %, +, -, <, >, <=, >=, =, <>, XOR, AND, OR, ^<br> |
|||
AND may be written as &.<br> |
|||
OR may be written as |.<br> |
|||
XOR may be written as ~.<br> |
|||
! is the not operator.<br> |
|||
% is the mod operator.<br> |
|||
^ is the power operator.<br> |
|||
Functions have no precedence over any operators.<br> |
|||
Floating point numbers are supported.<br> |
|||
The negative operator is supported.<br> |
|||
Parentheses may be used to override order of operations.<br> |
|||
White space is optional.<br> |
|||
<br> |
|||
Variables:<br> |
|||
<br> |
|||
Variables and arrays are double precision.<br> |
|||
<br> |
|||
Variable names a-z are pre defined.<br> |
|||
All other variable names may consist of numbers and letters only.<br> |
|||
Define variables by using let varname=0 with 0 as any value.<br> |
|||
The define command may be used to bulk let commands together.<br> |
|||
Omit the let and Use commas to separate the definitions.<br> |
|||
<br> |
|||
Define arrays by using dim arrayname[arraysize].<br> |
|||
The arraysize can be a variable or value.<br> |
|||
Arrays are zero indexed and may only be one dimension.<br> |
|||
<br> |
|||
Custom Defined Functions:<br> |
|||
<br> |
|||
Define functions with the define command.<br> |
|||
Function definitions may be mixed in with variable definitions.<br> |
|||
All definitions are separated by commas.<br> |
|||
Functions are a customizable array of expression strings.<br> |
|||
Functions may be named similarly to variables.<br> |
|||
Function names must be written in parenthesis without space between.<br> |
|||
Functions are artery, but may use global variables.<br> |
|||
<br> |
|||
The functions may be used anywhere in expressions.<br> |
|||
The return value is the evaluation of the function string.<br> |
|||
<br> |
|||
There's no precedence for custom functions.<br> |
|||
Functions may only be defined once. More than once wastes memory.<br> |
|||
<br> |
|||
Pre Defined Functions:<br> |
|||
<br> |
|||
There are artery and unary pre defined functions.<br> |
|||
<br> |
|||
Artery functions must be written in parenthesis without space between.<br> |
|||
<br> |
|||
Unary functions must have a colon in front of it without space between.<br> |
|||
Unary functions pass whatever comes in front of it as a parameter.<br> |
|||
<br> |
|||
Pre defined functions have no precedence.<br> |
|||
Precedence must be established with parenthesis for unary functions.<br> |
|||
Wrap the unary function and it's parameter in parenthesis when needed.<br> |
|||
This way, full expressions may be used as parameters for the function.<br> |
|||
<br> |
|||
For example, let x=int:10/3 works fine, but not if int:(rnd)*3 = 1 then.<br> |
|||
It must be written as if (int:(rnd)*3)=1 then.<br> |
|||
<br> |
|||
Syntax:<br> |
|||
<br> |
|||
Input may optionally have a prompt with double quotes, comma, variable.<br> |
|||
Arrays and functions may be used wherever expressions are used.<br> |
|||
Arrays may by used with the input and button commands.<br> |
|||
<br> |
|||
Output may be combined in print, alert, and title using commas.<br> |
|||
Output may include numbers, expressions, and double quoted text.<br> |
|||
Output may also include the word comma to display a comma.<br> |
|||
<br> |
|||
Distribution:<br> |
|||
<br> |
|||
Craft Basic may be used as a scripting language by associating .bas files.<br> |
|||
If you prefer to distribute the program as an .exe, follow these steps.<br> |
|||
First, copy and paste Craft Basic.exe to the distribution directory.<br> |
|||
Then copy your programs .bas file to the same directory.<br> |
|||
Rename Craft Basic.exe to match the .bas file.<br> |
|||
Change the .bas file extension to a .run file.<br> |
|||
The result should look like myprogram.exe and myprogram.run.<br> |
|||
When you run the resulting exe, your program will execute automatically.<br> |
|||
Now you may include a readme and zip it up.<br> |
|||
<br> |
|||
Known issues:<br> |
|||
<br> |
|||
For some reason, -2^2 doesn't evaluate correctly.<br> |
|||
If you hold down ctrl R for a long time, the program will crash.<br> |
|||
<br> |
|||
Want to help fix an issue? Found a new problem?<br> |
|||
<br> |
|||
Contact me at: ptrworkmails@gmail.com<br> |
|||
<br> |
|||
Language keywords:<br> |
|||
<br> |
|||
DEFINE variable=expression,variable=expression,variable=expression,etc...<br> |
|||
DEFINE FN (FUNCNAME) AS expression,FN (FUNCNAME) AS expression,FN (FUNCNAME) AS expression, etc...<br> |
|||
(short command: DEF)<br> |
|||
<br> |
|||
IF expression THEN LABELNAME<br> |
|||
(if short command: ?)<br> |
|||
<br> |
|||
IF expression THEN<br> |
|||
ENDIF<br> |
|||
(endif short command: ??)<br> |
|||
<br> |
|||
DO<br> |
|||
LOOP expression<br> |
|||
(loops while condition is true)<br> |
|||
(loop with no parameter for an infinite loop)<br> |
|||
<br> |
|||
LET variable=expression<br> |
|||
(short command: #)<br><br> |
|||
<br> |
|||
DIM variable[variable OR literal number]<br> |
|||
<br> |
|||
PRINT expression OR comma OR "TEXT"<br> |
|||
(short command: @)<br> |
|||
(use commas to combine outputs)<br> |
|||
(use the word comma between commas to display commas)<br> |
|||
<br> |
|||
INPUT "PROMPT",variable<br> |
|||
(short command: IN)<br> |
|||
(the prompt is optional)<br> |
|||
<br> |
|||
GOTO LABELNAME<br> |
|||
(short command: .)<br> |
|||
<br> |
|||
LABEL LABELNAME<br> |
|||
<br> |
|||
GOSUB SUBNAME<br> |
|||
(short command: ..)<br> |
|||
<br> |
|||
SUB SUBNAME<br> |
|||
<br> |
|||
RETURN<br> |
|||
(short command: ...)<br> |
|||
<br> |
|||
TITLE expression OR comma OR "TEXT"<br> |
|||
<br> |
|||
ALERT expression OR comma OR "TEXT""<br> |
|||
(short command: @@)<br> |
|||
<br> |
|||
BUTTON variable,BUTTON CODE<br> |
|||
(short command: BTN)<br> |
|||
<br> |
|||
DRAWBMP FILE.BMP,expression,expression<br> |
|||
(short command: BMP)<br> |
|||
(don't use quotes in the filename)<br> |
|||
<br> |
|||
PLAYWAV FILE.WAV<br> |
|||
(short command: WAV)<br> |
|||
(don't use quotes in the filename)<br> |
|||
<br> |
|||
CURSOR expression,expression<br> |
|||
(short command: CR)<br> |
|||
<br> |
|||
RESIZE expression,expression,expression,expression<br> |
|||
<br> |
|||
CENTER<br> |
|||
<br> |
|||
DOT expression,expression<br> |
|||
<br> |
|||
LINE expression,expression,expression,expression<br> |
|||
<br> |
|||
OVAL expression,expression,expression,expression<br> |
|||
<br> |
|||
RECT expression,expression,expression,expression<br> |
|||
<br> |
|||
FGCOLOR expression,expression,expression<br> |
|||
(short command: FG)<br> |
|||
<br> |
|||
BGCOLOR expression,expression,expression<br> |
|||
(short command: BG)<br> |
|||
<br> |
|||
FILL ON/OFF<br> |
|||
<br> |
|||
WAIT<br> |
|||
(short command: WT)<br> |
|||
<br> |
|||
CLS<br> |
|||
(short command: X)<br> |
|||
<br> |
|||
GETHDC<br> |
|||
(use before drawing commands)<br> |
|||
<br> |
|||
RELHDC<br> |
|||
(use after drawing commands/after GETHDC calls)<br> |
|||
<br> |
|||
MASK OF/OFF<br> |
|||
(drawing transparency. defaults to off)<br> |
|||
<br> |
|||
BUTTONFORM expression, expression, expression, expression<br> |
|||
(generate new button form with specified coordinates and size)<br> |
|||
(use formid to select the form handle)<br> |
|||
(use formtext to prepare the form text)<br> |
|||
<br> |
|||
STATICFORM expression, expression, expression, expression<br> |
|||
(generate new static form with specified coordinates and size)<br> |
|||
(use formid to select the form handle)<br><br> |
|||
(use formtext to prepare the form text)<br> |
|||
<br> |
|||
UPDATEFORM<br> |
|||
(applies formtext to selected formid)<br> |
|||
<br> |
|||
COLORFORM<br> |
|||
(applies the last set foreground and background colors to the selected formid)<br> |
|||
<br> |
|||
FORMID expression<br> |
|||
(set the id to be used by form commands)<br> |
|||
<br> |
|||
FORMTEXT expression OR comma OR "TEXT"<br> |
|||
(set the text to be used by form commands)<br> |
|||
<br> |
|||
RUN "windowsprogram.exe","windowsparameters",comma,expression,comma etc.....<br> |
|||
(the first parameter is the program to run)<br> |
|||
(the following parameters are formatted like print and combined)<br> |
|||
<br> |
|||
END<br> |
|||
<br> |
|||
REM<br> |
|||
(short command: ')<br> |
|||
<br> |
|||
(CLOCK)<br> |
|||
(function returns milliseconds since boot)<br> |
|||
(must include the parentheses without spaces)<br> |
|||
<br> |
|||
(RND)<br> |
|||
(function returns random number)<br> |
|||
(must include the parentheses without spaces)<br> |
|||
<br> |
|||
(MOUSEX)<br> |
|||
(function returns mouse x coordinate relative to window)<br> |
|||
(must include the parentheses without spaces)<br> |
|||
<br> |
|||
(MOUSEY)<br> |
|||
(function returns mouse t coordinate relative to window)<br> |
|||
<br> |
|||
(MOUSEB)<br> |
|||
(function returns 1 if left mouse button is pressed or 2 for right)<br> |
|||
(returns 0 when no mouse button is clicked)<br> |
|||
<br> |
|||
(FORMS)<br> |
|||
(function returns id of any form that has been clicked)<br> |
|||
(returns 0 when no form is clicked)<br> |
|||
<br> |
|||
ABS:<br> |
|||
(function returns absolute value of whatever comes after the colon)<br> |
|||
<br> |
|||
INT:<br> |
|||
(function returns integer of whatever comes after the colon)<br> |
|||
<br> |
|||
SQRT:<br> |
|||
(function returns square root of whatever comes after the colon)<br> |
|||
<br> |
|||
SIN:<br> |
|||
(function returns sine of whatever comes after the colon)<br> |
|||
<br> |
|||
COS:<br> |
|||
(function returns cosine of whatever comes after the colon)<br> |
|||
<br> |
|||
TAN:<br> |
|||
(function returns tangent of whatever comes after the colon)<br> |
|||
<br> |
|||
ATN:<br> |
|||
(function returns arctangent of whatever comes after the colon)<br> |
|||
<br> |
|||
LOG:<br> |
|||
(function returns logarithm of whatever comes after the colon)<br> |
Revision as of 19:25, 9 February 2023
Craft Basic
This programming language may be used to instruct a computer to perform a task.
Listed below are all of the tasks on Rosetta Code which have been solved using Craft Basic.
This programming language may be used to instruct a computer to perform a task.
See Also: |
|
---|
Craft Basic homepage
Craft Basic documentation
About:
Craft Basic is a BASIC interpreter for Windows 95 and up.
Tested on 95, XP, and 10.
* learn programming
* make simple games
* write code interactively
* perform complex calculations
* display cool graphics
* build windows with forms
* write useful scripts
* and more...
Pages in category "Craft Basic"
The following 72 pages are in this category, out of 72 total.