codesimian
Class Squares

java.lang.Object
  extended by codesimian.CS
      extended by codesimian.DefaultCS
          extended by codesimian.Squares
All Implemented Interfaces:
CodeSimian, java.awt.event.KeyListener, java.io.Serializable, java.util.EventListener

public class Squares
extends DefaultCS
implements java.awt.event.KeyListener

A grid of squares.

UPDATE: Squares.P(1) only needs to be a number, not a list. Its value is the number of squares wide the grid is.

PARTIALLY OBSOLETE TEXT:
Each square is a CS in Squares.P(0). Squares.P(0).countP() is the total squares. Numbers describing this Squares are in Squares.P(1). Squares.P(1).P(0) is how many squares wide the grid is. Squares.P(1).P(1 and higher) has not yet been defined, but will be something else about this Squares. Squares.P(0).countP()/Squares.P(1).P(0) is how many squares high the grid is.

Each square is converted to a Component: square.L(Component.class)

If there are 3 params, the third is a KEYBOARD-LISTENER. Its first param is set to the ascii code of the key that was pressed, then the KEYBOARD-LISTENER is executed.

See Also:
Serialized Form

Field Summary
protected  java.awt.Container container
           
protected  java.awt.GridLayout layout
           
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, FUEL, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER
 
Constructor Summary
Squares()
           
 
Method Summary
 double DForProxy()
          D() and DForProxy() are the 2 most important functions in CS.
 void keyPressed(java.awt.event.KeyEvent e)
          if P(2) exists, P(2).P(0) is set to the ascii code for the key pressed.
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
           
 java.lang.String keyword()
          For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.

Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add.

Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()".
 java.lang.Object LForProxy(java.lang.Class c)
          the default implementation can use many Class parameters.
 int maxP()
          if countP()==3 then P(2) is a KEYBOARD-LISTENER.
 int minP()
          first 2 params are always someList(of things to put in squares) and howManySquaresWide.
 boolean setL(java.lang.Object o)
          setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.
 void updateContainerAndLayout()
           
 
Methods inherited from class codesimian.DefaultCS
B, C, countP, decrementMyFuel, deleteP, description, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, LForProxy, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL1, setMyFuel, setName, setObject, setP, setPrevExec, setS, setZ, start, toString, V, Z
 
Methods inherited from class codesimian.CS
addP, addP, addP, addP, addP, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, IForProxy, isIllusion, javaCode, JForProxy, L, L, L, L, L, maxD, minD, overwrites, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, setB, setC, setCost, setDescription, setF, setHeap, setI, setJ, setL, setL, setParent, setParsePriority, setProxyOf, setPType, setS, setTester, setZ, SForProxy, tester, VForProxy, voidReflect, ZForProxy
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

layout

protected java.awt.GridLayout layout

container

protected java.awt.Container container
Constructor Detail

Squares

public Squares()
Method Detail

DForProxy

public double DForProxy()
Description copied from class: CS
D() and DForProxy() are the 2 most important functions in CS. They execute this CS. All other execute functions, by default, use DForProxy instead of reinventing-the-wheel for their own type.

For example, J() calls JForProxy() which calls DForProxy(). D() calls DForProxy() directly.

Execute this CS and cast to double. D() is the main EXECUTE function. D() uses DForProxy(). DForProxy() is the main action of every CS, the most important function. By default, all other primitive EXECUTE functions defer to D.
Functions that EXECUTE this CS: L(Class) L(int,Class,int) Z() B() C() S() I() J() F() D() V()

Specified by:
DForProxy in class DefaultCS

minP

public int minP()
first 2 params are always someList(of things to put in squares) and howManySquaresWide.

Overrides:
minP in class DefaultCS

maxP

public int maxP()
if countP()==3 then P(2) is a KEYBOARD-LISTENER. P(2).P(0) is set to the ascii code for the key pressed.

Overrides:
maxP in class CS

keyword

public java.lang.String keyword()
Description copied from class: DefaultCS
For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.

Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add.

Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()".
Default: Returns class name, minus package name (and its dots), and change the first letter to lowercase.

For example, CS.MaxParams does not override keyword(), which returns "maxP".

Overrides:
keyword in class DefaultCS
See Also:
CS.parent(), CS.newInstance(), CS.name()

LForProxy

public java.lang.Object LForProxy(java.lang.Class c)
Description copied from class: DefaultCS
the default implementation can use many Class parameters. If you override but do not know what to return, return super.LForProxy(Class). All EXEC objects must override L(Class) the same way they override D(), reversed.

Overrides:
LForProxy in class DefaultCS
See Also:
execProxy(), setExecProxy(CS)

setL

public boolean setL(java.lang.Object o)
Description copied from class: CS
setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.

Overrides:
setL in class DefaultCS

updateContainerAndLayout

public void updateContainerAndLayout()

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
if P(2) exists, P(2).P(0) is set to the ascii code for the key pressed.

Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Specified by:
keyReleased in interface java.awt.event.KeyListener

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Specified by:
keyTyped in interface java.awt.event.KeyListener