Put: Difference between revisions

From Wiki of ZZT
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
The syntax is <code>#put direction color element</code>. The direction argument is mandatory, while the color argument is optional. While the element argument is supposed to be mandatory, an empty string is treated as equivalent to a [[Edge|board edge]]. Providing an invalid element name will throw a <code>Bad #PUT</code> error.
The syntax is <code>#put direction color element</code>. The direction argument is mandatory, while the color argument is optional. While the element argument is supposed to be mandatory, an empty string is treated as equivalent to a [[Edge|board edge]]. Providing an invalid element name will throw a <code>Bad #PUT</code> error.


The direction argument must not point to the same tile as the Object is on; otherwise, the <code>Bad #PUT</code> error will be thrown. The target tile is also bounds-checked, but attempts to place out of bounds are silently ignored.
The direction argument must not point to the same tile as the Object is on; otherwise, the <code>Bad #PUT</code> error will be thrown. For this purpose, one should use [[Become|#become]] instead. Additionally, the target tile is bounds-checked, but attempts to place out of bounds are silently ignored.


== Bugs ==
== Bugs ==

Revision as of 09:33, 8 February 2021

#put is a ZZT-OOP command that lets an object place an element on the board. If the element at the target tile is able to be pushed, then using #put will push it. Otherwise, #put will replace the target tile.

The syntax is #put direction color element. The direction argument is mandatory, while the color argument is optional. While the element argument is supposed to be mandatory, an empty string is treated as equivalent to a board edge. Providing an invalid element name will throw a Bad #PUT error.

The direction argument must not point to the same tile as the Object is on; otherwise, the Bad #PUT error will be thrown. For this purpose, one should use #become instead. Additionally, the target tile is bounds-checked, but attempts to place out of bounds are silently ignored.

Bugs

  • Due to a flaw in the bounds-checking logic, it is impossible to #put something on the bottommost row of the board.