Skip to content

Commit d52d0a6

Browse files
committed
update python with new rc methods
1 parent ae5790e commit d52d0a6

6 files changed

Lines changed: 161 additions & 118 deletions

File tree

engine/src/crossplay_python/battlecode26/crossplay.py

Lines changed: 106 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -23,109 +23,112 @@ def __init__(self, message):
2323
class CrossPlayMethod(Enum):
2424
INVALID = 0
2525
END_TURN = 1
26-
RC_GET_ROUND_NUM = 2
27-
RC_GET_MAP_WIDTH = 3
28-
RC_GET_MAP_HEIGHT = 4
29-
RC_IS_COOPERATION = 5
30-
RC_GET_ID = 6
31-
RC_GET_TEAM = 7
32-
RC_GET_LOCATION = 8
33-
RC_GET_ALL_PART_LOCATIONS = 9
34-
RC_GET_DIRECTION = 10
35-
RC_GET_HEALTH = 11
36-
RC_GET_RAW_CHEESE = 12
37-
RC_GET_GLOBAL_CHEESE = 13
38-
RC_GET_ALL_CHEESE = 14
39-
RC_GET_DIRT = 15
40-
RC_GET_TYPE = 16
41-
RC_GET_CARRYING = 17
42-
RC_IS_BEING_THROWN = 18
43-
RC_IS_BEING_CARRIED = 19
44-
RC_ON_THE_MAP = 20
45-
RC_CAN_SENSE_LOCATION = 21
46-
RC_IS_LOCATION_OCCUPIED = 22
47-
RC_CAN_SENSE_ROBOT_AT_LOCATION = 23
48-
RC_SENSE_ROBOT_AT_LOCATION = 24
49-
RC_CAN_SENSE_ROBOT = 25
50-
RC_SENSE_ROBOT = 26
51-
RC_SENSE_NEARBY_ROBOTS = 27
52-
RC_SENSE_NEARBY_ROBOTS__INT = 28
53-
RC_SENSE_NEARBY_ROBOTS__INT_TEAM = 29
54-
RC_SENSE_NEARBY_ROBOTS__LOC_INT_TEAM = 30
55-
RC_SENSE_PASSABILITY = 31
56-
RC_SENSE_MAP_INFO = 32
57-
RC_SENSE_NEARBY_MAP_INFOS = 33
58-
RC_SENSE_NEARBY_MAP_INFOS__INT = 34
59-
RC_SENSE_NEARBY_MAP_INFOS__LOC = 35
60-
RC_SENSE_NEARBY_MAP_INFOS__LOC_INT = 36
61-
RC_ADJACENT_LOCATION = 37
62-
RC_GET_ALL_LOCATIONS_WITHIN_RADIUS_SQUARED = 38
63-
RC_IS_ACTION_READY = 39
64-
RC_GET_ACTION_COOLDOWN_TURNS = 40
65-
RC_IS_MOVEMENT_READY = 41
66-
RC_IS_TURNING_READY = 42
67-
RC_GET_MOVEMENT_COOLDOWN_TURNS = 43
68-
RC_GET_TURNING_COOLDOWN_TURNS = 44
69-
RC_CAN_MOVE_FORWARD = 45
70-
RC_CAN_MOVE = 46
71-
RC_MOVE_FORWARD = 47
72-
RC_MOVE = 48
73-
RC_CAN_TURN = 49
74-
RC_TURN = 50
75-
RC_GET_CURRENT_RAT_COST = 51
76-
RC_CAN_BUILD_RAT = 52
77-
RC_BUILD_RAT = 53
78-
RC_CAN_BECOME_RAT_KING = 54
79-
RC_BECOME_RAT_KING = 55
80-
RC_CAN_PLACE_DIRT = 56
81-
RC_PLACE_DIRT = 57
82-
RC_CAN_REMOVE_DIRT = 58
83-
RC_REMOVE_DIRT = 59
84-
RC_CAN_PLACE_RAT_TRAP = 60
85-
RC_PLACE_RAT_TRAP = 61
86-
RC_CAN_REMOVE_RAT_TRAP = 62
87-
RC_REMOVE_RAT_TRAP = 63
88-
RC_CAN_PLACE_CAT_TRAP = 64
89-
RC_PLACE_CAT_TRAP = 65
90-
RC_CAN_REMOVE_CAT_TRAP = 66
91-
RC_REMOVE_CAT_TRAP = 67
92-
RC_CAN_PICK_UP_CHEESE = 68
93-
RC_PICK_UP_CHEESE = 69
94-
RC_PICK_UP_CHEESE__LOC_INT = 70
95-
RC_CAN_ATTACK = 71
96-
RC_CAN_ATTACK__LOC_INT = 72
97-
RC_ATTACK = 73
98-
RC_ATTACK__LOC_INT = 74
99-
RC_SQUEAK = 75
100-
RC_READ_SQUEAKS = 76
101-
RC_WRITE_SHARED_ARRAY = 77
102-
RC_READ_SHARED_ARRAY = 78
103-
RC_CAN_TRANSFER_CHEESE = 79
104-
RC_TRANSFER_CHEESE = 80
105-
RC_THROW_RAT = 81
106-
RC_CAN_THROW_RAT = 82
107-
RC_DROP_RAT = 83
108-
RC_CAN_DROP_RAT = 84
109-
RC_CAN_CARRY_RAT = 85
110-
RC_CARRY_RAT = 86
111-
RC_DISINTEGRATE = 87
112-
RC_RESIGN = 88
113-
RC_SET_INDICATOR_STRING = 89
114-
RC_SET_INDICATOR_DOT = 90
115-
RC_SET_INDICATOR_LINE = 91
116-
RC_SET_TIMELINE_MARKER = 92
117-
RC_CAN_TURN__DIR = 93
118-
ML_DISTANCE_SQUARED_TO = 94
119-
ML_BOTTOM_LEFT_DISTANCE_SQUARED_TO = 95
120-
ML_IS_WITHIN_DISTANCE_SQUARED = 96
121-
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE = 97
122-
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE_BOOLEAN = 98
123-
ML_IS_ADJACENT_TO = 99
124-
ML_DIRECTION_TO = 100
125-
UT_GET_ALL_TYPE_LOCATIONS = 101
126-
LOG = 102
127-
THROW_GAME_ACTION_EXCEPTION = 103
128-
THROW_EXCEPTION = 104
26+
ML_DISTANCE_SQUARED_TO = 2
27+
ML_BOTTOM_LEFT_DISTANCE_SQUARED_TO = 3
28+
ML_IS_WITHIN_DISTANCE_SQUARED = 4
29+
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE = 5
30+
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE_BOOLEAN = 6
31+
ML_IS_ADJACENT_TO = 7
32+
ML_DIRECTION_TO = 8
33+
UT_GET_ALL_TYPE_LOCATIONS = 9
34+
LOG = 10
35+
THROW_GAME_ACTION_EXCEPTION = 11
36+
THROW_EXCEPTION = 12
37+
RC_GET_ROUND_NUM = 13
38+
RC_GET_MAP_WIDTH = 14
39+
RC_GET_MAP_HEIGHT = 15
40+
RC_IS_COOPERATION = 16
41+
RC_GET_ID = 17
42+
RC_GET_TEAM = 18
43+
RC_GET_LOCATION = 19
44+
RC_GET_ALL_PART_LOCATIONS = 20
45+
RC_GET_DIRECTION = 21
46+
RC_GET_HEALTH = 22
47+
RC_GET_RAW_CHEESE = 23
48+
RC_GET_GLOBAL_CHEESE = 24
49+
RC_GET_ALL_CHEESE = 25
50+
RC_GET_DIRT = 26
51+
RC_GET_TYPE = 27
52+
RC_GET_CARRYING = 28
53+
RC_IS_BEING_THROWN = 29
54+
RC_IS_BEING_CARRIED = 30
55+
RC_ON_THE_MAP = 31
56+
RC_CAN_SENSE_LOCATION = 32
57+
RC_IS_LOCATION_OCCUPIED = 33
58+
RC_CAN_SENSE_ROBOT_AT_LOCATION = 34
59+
RC_SENSE_ROBOT_AT_LOCATION = 35
60+
RC_CAN_SENSE_ROBOT = 36
61+
RC_SENSE_ROBOT = 37
62+
RC_SENSE_NEARBY_ROBOTS = 38
63+
RC_SENSE_NEARBY_ROBOTS__INT = 39
64+
RC_SENSE_NEARBY_ROBOTS__INT_TEAM = 40
65+
RC_SENSE_NEARBY_ROBOTS__LOC_INT_TEAM = 41
66+
RC_SENSE_PASSABILITY = 42
67+
RC_SENSE_MAP_INFO = 43
68+
RC_SENSE_NEARBY_MAP_INFOS = 44
69+
RC_SENSE_NEARBY_MAP_INFOS__INT = 45
70+
RC_SENSE_NEARBY_MAP_INFOS__LOC = 46
71+
RC_SENSE_NEARBY_MAP_INFOS__LOC_INT = 47
72+
RC_ADJACENT_LOCATION = 48
73+
RC_GET_ALL_LOCATIONS_WITHIN_RADIUS_SQUARED = 49
74+
RC_IS_ACTION_READY = 50
75+
RC_GET_ACTION_COOLDOWN_TURNS = 51
76+
RC_IS_MOVEMENT_READY = 52
77+
RC_IS_TURNING_READY = 53
78+
RC_GET_MOVEMENT_COOLDOWN_TURNS = 54
79+
RC_GET_TURNING_COOLDOWN_TURNS = 55
80+
RC_CAN_MOVE_FORWARD = 56
81+
RC_CAN_MOVE = 57
82+
RC_MOVE_FORWARD = 58
83+
RC_MOVE = 59
84+
RC_CAN_TURN = 60
85+
RC_TURN = 61
86+
RC_GET_CURRENT_RAT_COST = 62
87+
RC_CAN_BUILD_RAT = 63
88+
RC_BUILD_RAT = 64
89+
RC_CAN_BECOME_RAT_KING = 65
90+
RC_BECOME_RAT_KING = 66
91+
RC_CAN_PLACE_DIRT = 67
92+
RC_PLACE_DIRT = 68
93+
RC_CAN_REMOVE_DIRT = 69
94+
RC_REMOVE_DIRT = 70
95+
RC_CAN_PLACE_RAT_TRAP = 71
96+
RC_PLACE_RAT_TRAP = 72
97+
RC_CAN_REMOVE_RAT_TRAP = 73
98+
RC_REMOVE_RAT_TRAP = 74
99+
RC_CAN_PLACE_CAT_TRAP = 75
100+
RC_PLACE_CAT_TRAP = 76
101+
RC_CAN_REMOVE_CAT_TRAP = 77
102+
RC_REMOVE_CAT_TRAP = 78
103+
RC_CAN_PICK_UP_CHEESE = 79
104+
RC_PICK_UP_CHEESE = 80
105+
RC_PICK_UP_CHEESE__LOC_INT = 81
106+
RC_CAN_ATTACK = 82
107+
RC_CAN_ATTACK__LOC_INT = 83
108+
RC_ATTACK = 84
109+
RC_ATTACK__LOC_INT = 85
110+
RC_SQUEAK = 86
111+
RC_READ_SQUEAKS = 87
112+
RC_WRITE_SHARED_ARRAY = 88
113+
RC_READ_SHARED_ARRAY = 89
114+
RC_CAN_TRANSFER_CHEESE = 90
115+
RC_TRANSFER_CHEESE = 91
116+
RC_THROW_RAT = 92
117+
RC_CAN_THROW_RAT = 93
118+
RC_DROP_RAT = 94
119+
RC_CAN_DROP_RAT = 95
120+
RC_CAN_CARRY_RAT = 96
121+
RC_CARRY_RAT = 97
122+
RC_DISINTEGRATE = 98
123+
RC_RESIGN = 99
124+
RC_SET_INDICATOR_STRING = 100
125+
RC_SET_INDICATOR_DOT = 101
126+
RC_SET_INDICATOR_LINE = 102
127+
RC_SET_TIMELINE_MARKER = 103
128+
RC_CAN_TURN__DIR = 104
129+
RC_GET_BACKSTABBING_TEAM = 105
130+
RC_GET_NUMBER_RAT_TRAPS = 106
131+
RC_GET_NUMBER_CAT_TRAPS = 107
129132

130133

131134
class CrossPlayObjectType(Enum):

engine/src/crossplay_python/battlecode26/wrappers.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,11 @@ def get_all_locations_within_radius_squared(center: MapLocation, radius_squared:
149149
@staticmethod
150150
def get_all_part_locations() -> list[MapLocation]:
151151
return _wait(_m.RC_GET_ALL_PART_LOCATIONS)
152-
152+
153+
@staticmethod
154+
def get_backstabbing_team() -> Team:
155+
return _wait(_m.RC_GET_BACKSTABBING_TEAM)
156+
153157
@staticmethod
154158
def get_carrying() -> RobotInfo:
155159
return _wait(_m.RC_GET_CARRYING)
@@ -185,7 +189,15 @@ def get_location() -> MapLocation:
185189
@staticmethod
186190
def get_movement_cooldown_turns() -> int:
187191
return _wait(_m.RC_GET_MOVEMENT_COOLDOWN_TURNS)
188-
192+
193+
@staticmethod
194+
def get_number_rat_traps() -> int:
195+
return _wait(_m.RC_GET_NUMBER_RAT_TRAPS)
196+
197+
@staticmethod
198+
def get_number_cat_traps() -> int:
199+
return _wait(_m.RC_GET_NUMBER_CAT_TRAPS)
200+
189201
@staticmethod
190202
def get_raw_cheese() -> int:
191203
return _wait(_m.RC_GET_RAW_CHEESE)

engine/src/crossplay_python/python_docs.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Battlecode 2026 Python Documentation
2-
v1.2.1
2+
v1.2.2
33

44
## Getting Started
55

@@ -159,6 +159,9 @@ class RobotController:
159159
def get_all_part_locations() -> list[MapLocation]:
160160
pass
161161

162+
def get_backstabbing_team() -> Team:
163+
pass
164+
162165
def get_carrying() -> RobotInfo:
163166
pass
164167

@@ -186,6 +189,12 @@ class RobotController:
186189
def get_movement_cooldown_turns() -> int:
187190
pass
188191

192+
def get_number_rat_traps() -> int:
193+
pass
194+
195+
def get_number_cat_traps() -> int:
196+
pass
197+
189198
def get_raw_cheese() -> int:
190199
pass
191200

engine/src/crossplay_python/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@
2626
],
2727
python_requires='>=3.12, <3.13',
2828
zip_safe=False,
29-
version='1.2.1',
29+
version='1.2.2',
3030
)

engine/src/main/battlecode/crossplay/CrossPlay.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,22 @@ private JsonNode processMessage(CrossPlayMessage message, boolean init) throws G
736736
return nodeFactory.nullNode();
737737
}
738738

739+
case RC_GET_BACKSTABBING_TEAM: {
740+
checkParams(message, 0);
741+
Team backstabTeam = this.processingRobot.getBackstabbingTeam();
742+
return makeTeamNode(nodeFactory, backstabTeam);
743+
}
744+
745+
case RC_GET_NUMBER_RAT_TRAPS: {
746+
checkParams(message, 0);
747+
return nodeFactory.numberNode(this.processingRobot.getNumberRatTraps());
748+
}
749+
750+
case RC_GET_NUMBER_CAT_TRAPS: {
751+
checkParams(message, 0);
752+
return nodeFactory.numberNode(this.processingRobot.getNumberCatTraps());
753+
}
754+
739755
case ML_BOTTOM_LEFT_DISTANCE_SQUARED_TO: {
740756
checkParams(message, 2);
741757
MapLocation loc1 = parseLocNode(message.params().get(0));

engine/src/main/battlecode/crossplay/CrossPlayMethod.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@
88
public enum CrossPlayMethod {
99
INVALID,
1010
END_TURN,
11+
ML_DISTANCE_SQUARED_TO,
12+
ML_BOTTOM_LEFT_DISTANCE_SQUARED_TO,
13+
ML_IS_WITHIN_DISTANCE_SQUARED,
14+
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE,
15+
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE_BOOLEAN,
16+
ML_IS_ADJACENT_TO,
17+
ML_DIRECTION_TO,
18+
UT_GET_ALL_TYPE_LOCATIONS,
19+
LOG,
20+
THROW_GAME_ACTION_EXCEPTION,
21+
THROW_EXCEPTION,
1122
RC_GET_ROUND_NUM,
1223
RC_GET_MAP_WIDTH,
1324
RC_GET_MAP_HEIGHT,
@@ -100,17 +111,9 @@ public enum CrossPlayMethod {
100111
RC_SET_INDICATOR_LINE,
101112
RC_SET_TIMELINE_MARKER,
102113
RC_CAN_TURN__DIR,
103-
ML_DISTANCE_SQUARED_TO,
104-
ML_BOTTOM_LEFT_DISTANCE_SQUARED_TO,
105-
ML_IS_WITHIN_DISTANCE_SQUARED,
106-
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE,
107-
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE_BOOLEAN,
108-
ML_IS_ADJACENT_TO,
109-
ML_DIRECTION_TO,
110-
UT_GET_ALL_TYPE_LOCATIONS,
111-
LOG,
112-
THROW_GAME_ACTION_EXCEPTION,
113-
THROW_EXCEPTION,
114+
RC_GET_BACKSTABBING_TEAM,
115+
RC_GET_NUMBER_RAT_TRAPS,
116+
RC_GET_NUMBER_CAT_TRAPS,
114117
;
115118

116119
public static final CrossPlayMethod[] values = values();

0 commit comments

Comments
 (0)