Files
eceg431/09/Snake/Point.jack

57 lines
1.1 KiB
Plaintext

// Simple coordinate class for clean position handling
// Provides basic x,y operations for snake and food placement
class Point {
field int x, y;
// create point at given coordinates
constructor Point new(int ax, int ay) {
let x = ax;
let y = ay;
return this;
}
// free memory
method void dispose() {
do Memory.deAlloc(this);
return;
}
// get x coordinate
method int getX() {
return x;
}
// get y coordinate
method int getY() {
return y;
}
// update coordinates
method void setX(int newX) {
let x = newX;
return;
}
method void setY(int newY) {
let y = newY;
return;
}
// check if this point equals another
method boolean equals(Point other) {
return (x = other.getX()) & (y = other.getY());
}
// move point by offset
method void move(int dx, int dy) {
let x = x + dx;
let y = y + dy;
return;
}
// copy this point to new point
method Point copy() {
return Point.new(x, y);
}
}