73 lines
1.6 KiB
Plaintext
73 lines
1.6 KiB
Plaintext
|
note
|
||
|
description: "[
|
||
|
Used by each {ATTACK_UNIT} to place it at some position on the board.
|
||
|
This is used for interfacing with a GUI. The position is stored as
|
||
|
a percentage of the size of the space in which a unit can move (i.e.
|
||
|
the size of a board).
|
||
|
]"
|
||
|
author: "Jimmy J. Johnson"
|
||
|
|
||
|
class
|
||
|
VITP_POSITION
|
||
|
|
||
|
inherit
|
||
|
|
||
|
POSITION_CONSTANTS
|
||
|
redefine
|
||
|
out
|
||
|
end
|
||
|
|
||
|
create
|
||
|
default_create,
|
||
|
set_xy,
|
||
|
from_tuple
|
||
|
|
||
|
convert
|
||
|
from_tuple ({TUPLE [lat: INTEGER_32; long: INTEGER_32]})
|
||
|
|
||
|
feature {NONE} -- Initialization
|
||
|
|
||
|
from_tuple (a_position: TUPLE [long: INTEGER_32; lat: INTEGER_32])
|
||
|
-- Set Current to `a_position'
|
||
|
do
|
||
|
longitude := a_position.long
|
||
|
latitude := a_position.lat
|
||
|
end
|
||
|
|
||
|
feature -- Access
|
||
|
|
||
|
longitude: INTEGER_32
|
||
|
-- The position east or west of the logical center (0, 0) of the board.
|
||
|
|
||
|
latitude: INTEGER_32
|
||
|
-- The position north or south of the logical center (0,0) of the board.
|
||
|
|
||
|
out: STRING
|
||
|
-- String representation of Current
|
||
|
do
|
||
|
Result := "(" + longitude.out + ", " + latitude.out + ")"
|
||
|
end
|
||
|
|
||
|
feature -- Element change
|
||
|
|
||
|
set_xy (a_x, a_y: INTEGER_32)
|
||
|
-- Set the value of x and y
|
||
|
require
|
||
|
-- x_big_enough: a_x >= Minimum_longitude
|
||
|
-- x_small_enough: a_x <= Maximum_longitude
|
||
|
-- y_big_enough: a_y >= Minimum_latitude
|
||
|
-- y_small_enough: a_y <= Maximum_latitude
|
||
|
do
|
||
|
longitude := a_x
|
||
|
latitude := a_y
|
||
|
end
|
||
|
|
||
|
invariant
|
||
|
|
||
|
-- longitude_big_enough: longitude >= Minimum_longitude
|
||
|
-- longitude_small_enough: longitude <= Maximum_longitude
|
||
|
-- latitude_big_enough: latitude >= Minimum_latitude
|
||
|
-- latitude_small_enough: latitude <= Maximum_latitude
|
||
|
|
||
|
end
|