archive by month
Skip to content

AITT S2

The AITT S2 tournament (not to be confused with AIST S2) has been announced, AI Tinycraft Tournament for bots with under 4000 bytes of source. Registration deadline is 1 April, submission is 1 May. For this edition, the maps are air oriented, with starting bases that are islands, or that begin isolated by ground with exits blocked by minerals that can be mined, or neutral buildings that can be destroyed. All 5 maps are difficult, and they have common points but they are quite different from each other.

(2) Paradoxxx is an old island map with 2 bases worth of resources in each main: 14 mineral patches and 2 gas geysers. The only other gas expansions are overlooked by a wide high ground area that the players are to fight over. If you can control the central high ground, which has no resources itself, you can probably control both gas expansions in the long run.

(2) Coulee is a Blizzard map from way back. Each starting base has a main and natural that are somewhat far by ground and close by air, and which together are blocked from the rest of the map by a row of mineral patches with 500 minerals each. There are corner bases blocked by a mineral patch of 24 minerals (modern maps generally have 8 or 0 minerals in that kind of blocking patch). And there are center bases that you can try to hold if you somehow gain enough map control. The 2 center gas geysers, with no minerals nearby, have only 2000 gas each. It takes a long time to mine through 500 minerals, so you probably want to go drop or air. You could also push 3 workers through the minerals (or build a command center and float it outside, then make 3 workers there) and take a corner base, but you’ll be lacking mobility.

(3) Plasma from 2008 has several tricky features. The main is small, so not all your buildings will fit there. The ramp is narrow, so that large units cannot pass. There are arrays of neutral eggs blocking the paths between bases. You can mineral walk workers through the eggs, because there are mineral patches placed in view on both sides. Other units can only pass once eggs are destroyed to clear a path, and eggs are tough so that takes time. (Well, can only pass easily. It’s possible to push units through the eggs, but it’s not quick or reliable.) Next to each main are a mineral only natural near the ramp and a gas natural on the opposite side. The center area provides access to 3 high ground expansions, each of which overlooks 2 starting bases.

(4) Sparkle is the 2018 island map that attempts to be fair to zerg. Each base comes with a natural that has a blocking building that must be destroyed before you can mine the gas. It also comes with a third that has 3 mineral patches and a geyser that only zerg can mine from. There are 4 center islands with a base each, but it is often preferable to take a second main because it has more resources.

(4) Arkanoid is about destroying neutral stuff. Each starting position comes with 3 bases, a main and 2 equal naturals, one to each side. Each of the dual naturals is blocked by 4 neutral chrysalis units, though I’ve seen a number of games where players mine with an offset resource depot instead of clearing the position. There are 3 paths out of each base, but each path is blocked by neutral buildings, and then you have to destroy further neutral buildings to get anywhere else. It is key to know where you are going so that you can destroy the right buildings. Arkanoid historically favors terran and sneers at protoss.

Useful skills are drop, pushing units through minerals, mineral-walking workers through neutral units, destroying neutral stuff that is in the way, and floating terran buildings for scouting and for mobility. For example, on Coulee a terran could float a factory out of the base and make 1 tank to prevent the enemy from mining its own blocking minerals; there are unbuildable areas on the map, but not just outside the bases, so add turrets and more units and the enemy will be forced to stick with air or drop.

I expect we’re going to see some wacky strategies from the tiny bots. Carriers versus battlecruisers will not surprise me. On the downside, the maps have bad imbalances in human play, although bot play is known to be different. I expect that we will see mostly terran and protoss and few zerg.

zones and chokes: the details

Here are details of how zones and chokes are calculated.

Map partitions. This is old work, but I want to mention it for completeness. The partitions data structure is a grid of 8x8 walk tiles that divides the map into connected partitions—you can walk from any point in a partition to any other, while you can’t walk to another partition. The partitions are not used to calculate zones and chokes, but they are related map information.

Inset. The inset is the Manhattan distance of each walkable 8x8 walk tile from the nearest unwalkable walk tile. It’s calculated by a straightforward breadth-first search. The distance is measured in walk tiles. In code, you access inset values with the.inset.at(). The inset is directly useful for a variety of micro decisions, and indirectly useful because you can calculate other information from it.

The inset values take immobile static units into account, such as mineral patches and neutral buildings. There are advantages and disadvantages to the decision.

One idea I have considered: I could calculate negative inset values for distances away from walkable terrain. Then air units would be able to easily find places safe from ground units, such as overlord watch posts. Another idea: I could change the scale of the inset values (the values in the inset grid) from walk tiles (8 pixels across) to pixels. Walk tiles are the least often used scale, and I suppose it’s a cognitive burden to remember that insets are in an unusual scale.

vWalkRoom gives an estimate, for each walk tile, of the room around the tile: How big a thing could fit there, measured in walk tiles. It is calculated from the insets and used to calculate the tile room. The v stands for “vertical” because of the simplified algorithm: It scans down each column of the grid of insets (because of the data structure, it’s more cache-friendly that way), and fills in stretches of walk tiles with the maximum inset in that stretch. A stretch starts at the first walkable walk tile, or after the previous stretch ends. A stretch ends before the last walkable walk tile, or after the inset has been decreasing and starts to increase again. Note that scanning horizontally would often give different numbers! This is a fast and simple algorithm, not an exact one. To get the vWalkRoom, use the.vWalkRoom.at().

tileRoom is nothing more than the vWalkRoom scaled to tiles. Each 32x32 tile is filled in with the maximum vWalkRoom value of the 16 8x8 walk tiles that make it up. The purpose is to reduce the data volume so that zone calculations are fast; zones don’t need higher resolution than this. A disadvantage of scaling to tile size is that connectivity information is lost. Two adjacent tiles A and B might both have positive tile room, even though you can’t walk from one to the other (it does happen sometimes). To find connectivity, use partitions. The tile room is useful for tactical decisions, and for getting an idea of whether a unit or army will fit into a space. Get it with the.tileRoom.at().

Zones are calculated using the tile room. There is no separate data structure for chokes; a choke is simply a zone where isChoke() returns true. The data describing zones consists of a grid of tiles so you can look up the zone ID of any location, and a vector of Zone data structures indexed by the ID. (Keeping IDs in the grid instead of pointers means I can use inheritance of grid classes without needing a template class.)

Zones are calculated from the tile room values with an iterated flood-fill algorithm. The borders of a zone are the tiles at the edge of a walkable area, points where the ground height changes, and points that change from non-choke to choke or vice versa. A tile is (initially) in a choke if its tile room is less than a constant—I use 12 for now, which includes narrow bridges but not wide bridges. This creates a certain number of nonsense zones that then need to be cleaned up: Tiny isolated zones are deleted, tiny zones with only one neighboring zone are merged into the larger zone, and “choke” zones which have only one neighbor are not real chokes and are also merged into the neighbor. That’s about it; all done save minor details.

Here is the public interface of a Zone. Every method and every returned reference is const; once the zone is initialized, nobody is allowed to change it.

	int id() const;
	bool isValid() const;
	bool isChoke() const;
	int groundHeight() const;
	const std::vector<BWAPI::TilePosition> & tiles() const;
	const std::set<Zone *> & neighbors() const;

The id() is a small integer. isValid() is false for zones which were deleted or merged into another zone; the data structure itself is empty but is not deleted, because the zones are indexed by ID (this could be cleaned up if it ever starts to matter). groundHeight() is -1 if the zone has more than one ground height, which can happen after zones are merged, or is the zone’s constant ground height otherwise (actually the low bit is cleared, so that the “doodad” heights are lost). There is a vector of tiles so you can know what’s in the zone without scanning the grid (also used to delete and merge zones), and a set of neighbors so you can work with the map topology.

Overall, Steamhammer’s map analysis is not as polished or complete as BWEM. There are points I want to clean up, and a lot of features are on my list to add—and as I mentioned a couple days ago, I may yet restructure it entirely. As one example of an awkward point, some choke zones are not shaped as you might expect. On Benzene, to illustrate, the down ramp from each main base is next to the geyser and mineral line in the natural, tiles which are also low in tile room. So the choke zone extends down the ramp and then along the resources in the natural. Steamhammer as it stands has no trouble coping with the oddly shaped choke or the oddly truncated natural zone, but I will have to take it into account in new code; it constitutes technical debt.

experience with Steamhammer’s new map analysis

I’ve been trying out Steamhammer’s new map analysis for a while. It’s time to talk about it a little.

When I removed BWTA, the DLL file dropped to less than half its size. BWTA and its dependencies are big. It feels like a burden lifted. When I can get rid of BOSS too, the size will shrink again.

I settled on Zone as the name. The most straightforward replacement of BWTA::Region * is with const Zone *; I kept the pointer representation so I wouldn’t have to redesign any other data structures. Some uses only care about zone IDs and can be slightly simpler (and microscopically faster). Zones don’t have as many features as regions. A zone data structure has only a few fields; I don’t need anything fancy.

Unlike BWTA, there is no separate data structure to represent chokes. If you want to know how choke-like a place is, call the.tileRoom.at(const TilePosition & tile), which looks up the approximate distance between the walls around a given tile (as measured in 8x8 walk tiles, at least in the current version). At a main base entrance, a typical tileRoom is 9; at a natural base entrance, a typical tileRoom is 21; in an open area, tileRoom is much larger. The tile room is calculated at game start from the inset of each walk tile, accessible via the.inset.at(), which is the distance from the walk tile to the nearest unwalkable walk tile (BWEM calls this the “altitude”). The tile room algorithm uses a simple approximation to estimate the room from the inset in one pass.

After dropping BWTA, the first thing I did was run test games on random, mostly large and irregular, Blizzard maps. It was delightful to start up quickly without cached data.

There are still bugs on some maps, affecting the plan recognizer and the scouting worker’s looping path. The scout path needs to be rewritten anyway, it was never very good, but it will take time. I’m not entirely surprised, but still I didn’t realize how closely Steamhammer’s behavior is tuned to the exact regions returned by BWTA.

Still still next: Longer-term Steamhammer plans. Apparently “next” means at some point this year.

AIIDE 2018 - per-map crosstables

Crosstables for each map. I dropped the single special-case excluded game 11821, so these should exactly match the official results. There were 100 rounds and 10 maps, so each cell contains only 10 games, or fewer if games failed to start or were excluded. With only 10 games per pairing per map, the numbers are noisy—but still informative.

After this paragraph, the deluge.

Benzene

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA97.29%90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
88%
7/8
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CherryPi91.51%10%
1/10
100%
10/10
70%
7/10
80%
8/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
67%
6/9
90%
9/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE86.10%0%
0/10
0%
0/10
40%
4/10
90%
9/10
90%
9/10
80%
8/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
BlueBlueSky86.72%0%
0/10
30%
3/10
60%
6/10
80%
8/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
78%
7/9
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
7/7
100%
10/10
Locutus78.91%0%
0/10
20%
2/10
10%
1/10
20%
2/10
50%
5/10
60%
6/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
7/7
100%
10/10
ISAMind76.54%10%
1/10
0%
0/10
10%
1/10
10%
1/10
50%
5/10
70%
7/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
40%
4/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin74.42%0%
0/10
0%
0/10
20%
2/10
20%
2/10
40%
4/10
30%
3/10
50%
5/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
88%
7/8
100%
10/10
McRave65.38%20%
2/10
10%
1/10
20%
2/10
0%
0/10
50%
5/10
50%
5/10
50%
5/10
40%
4/10
80%
8/10
50%
5/10
80%
8/10
90%
9/10
100%
10/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
70%
7/10
60%
6/10
100%
10/10
60%
6/10
70%
7/10
90%
9/10
80%
8/10
90%
9/10
100%
10/10
Iron68.22%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
60%
6/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
8/8
40%
4/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
ZZZKBot42.08%10%
1/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
40%
4/10
50%
5/10
50%
5/10
20%
2/10
67%
6/9
20%
2/10
80%
8/10
0%
0/10
70%
7/10
100%
10/10
70%
7/10
60%
6/10
40%
4/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
Steamhammer48.64%0%
0/10
33%
3/9
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
50%
5/10
0%
0/10
60%
6/10
20%
2/10
30%
3/10
20%
2/10
56%
5/9
100%
10/10
50%
5/10
90%
9/10
90%
9/10
60%
6/10
90%
9/10
50%
5/10
90%
9/10
90%
9/10
100%
10/10
89%
8/9
100%
10/10
Microwave49.81%0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
0%
0/10
20%
2/10
10%
1/10
50%
5/10
80%
8/10
50%
5/10
20%
2/10
90%
9/10
70%
7/10
60%
6/10
50%
5/10
70%
7/10
60%
6/10
100%
10/10
70%
7/10
80%
8/10
90%
9/10
90%
9/10
100%
9/9
100%
10/10
LastOrder51.92%0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
50%
5/10
70%
7/10
50%
5/10
100%
10/10
90%
9/10
60%
6/10
90%
9/10
0%
0/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
30%
3/10
100%
10/10
90%
9/10
100%
10/10
Tyr44.23%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
80%
8/10
80%
8/10
80%
8/10
0%
0/10
30%
3/10
30%
3/10
100%
10/10
20%
2/10
40%
4/10
100%
10/10
100%
10/10
30%
3/10
100%
10/10
70%
7/10
80%
8/10
90%
9/10
100%
10/10
MetaBot42.50%12%
1/8
0%
0/10
0%
0/10
22%
2/9
0%
0/9
0%
0/10
50%
5/10
40%
4/10
0%
0/8
33%
3/9
44%
4/9
10%
1/10
10%
1/10
70%
7/10
20%
1/5
67%
6/9
80%
8/10
80%
8/10
75%
6/8
56%
5/9
30%
3/10
22%
2/9
100%
9/9
70%
7/10
100%
9/9
100%
10/10
LetaBot41.30%0%
0/10
0%
0/10
20%
2/10
0%
0/10
20%
2/10
10%
1/10
0%
0/10
20%
2/10
60%
6/10
80%
8/10
0%
0/10
30%
3/10
40%
4/10
70%
7/10
80%
4/5
30%
3/10
100%
10/10
50%
5/10
80%
8/10
20%
2/10
40%
4/10
70%
7/10
20%
2/10
100%
10/10
100%
2/2
100%
10/10
Arrakhammer37.21%0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
50%
5/10
40%
4/10
10%
1/10
0%
0/10
33%
3/9
70%
7/10
60%
6/10
30%
3/10
70%
7/10
80%
8/10
30%
3/10
70%
7/10
100%
10/10
90%
9/10
100%
9/9
100%
10/10
Ecgberht40.31%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
100%
10/10
10%
1/10
50%
5/10
100%
10/10
80%
8/10
20%
2/10
0%
0/10
40%
4/10
40%
4/10
80%
8/10
50%
5/10
80%
8/10
70%
7/10
100%
10/10
80%
8/10
75%
6/8
80%
8/10
UAlbertaBot32.95%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
30%
3/10
10%
1/10
30%
3/10
0%
0/10
60%
6/10
20%
2/10
50%
5/10
70%
7/10
60%
6/10
40%
4/10
30%
3/10
60%
6/10
80%
8/10
20%
2/10
70%
7/10
100%
8/8
100%
10/10
Ximp25.60%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
40%
4/10
0%
0/10
0%
0/10
40%
4/10
40%
4/10
20%
2/10
0%
0/10
25%
2/8
20%
2/10
30%
3/10
20%
2/10
60%
6/10
0%
0/10
0%
0/10
70%
7/10
100%
10/10
90%
9/10
100%
2/2
40%
4/10
CDBot34.38%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
44%
4/9
80%
8/10
20%
2/10
50%
5/10
70%
7/10
100%
10/10
10%
1/10
80%
8/10
100%
10/10
100%
10/10
100%
7/7
100%
10/10
Aiur42.91%0%
0/10
0%
0/10
20%
2/10
10%
1/10
20%
2/10
60%
6/10
30%
3/10
40%
4/10
0%
0/10
40%
4/10
50%
5/10
30%
3/10
0%
0/10
70%
7/10
70%
7/10
60%
6/10
70%
7/10
20%
2/10
40%
4/10
100%
10/10
90%
9/10
20%
2/10
50%
5/10
70%
7/10
75%
3/4
100%
10/10
KillAll27.13%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
60%
6/10
10%
1/10
20%
2/10
0%
0/10
0%
0/10
78%
7/9
30%
3/10
30%
3/10
30%
3/10
20%
2/10
30%
3/10
20%
2/10
80%
8/10
40%
4/10
60%
6/10
100%
9/9
80%
8/10
WillyT24.51%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
70%
7/10
30%
3/10
0%
0/9
80%
8/10
0%
0/10
0%
0/10
80%
8/10
0%
0/10
0%
0/10
50%
5/10
60%
6/10
60%
6/10
75%
6/8
100%
10/10
AILien15.56%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
30%
3/10
0%
0/10
10%
1/10
20%
2/10
30%
3/10
10%
1/10
0%
0/10
30%
3/10
40%
4/10
40%
4/10
57%
4/7
100%
10/10
CUNYBot8.29%0%
0/10
0%
0/10
0%
0/9
0%
0/7
0%
0/7
0%
0/10
12%
1/8
10%
1/10
0%
0/10
10%
1/10
11%
1/9
0%
0/9
10%
1/10
10%
1/10
0%
0/9
0%
0/2
0%
0/9
25%
2/8
0%
0/8
0%
0/2
0%
0/7
25%
1/4
0%
0/9
25%
2/8
43%
3/7
100%
3/3
Hellbot3.95%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
60%
6/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/3

Destination

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA94.62%80%
8/10
90%
9/10
100%
10/10
100%
10/10
70%
7/10
80%
8/10
90%
9/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CherryPi89.19%20%
2/10
60%
6/10
80%
8/10
90%
9/10
90%
9/10
100%
10/10
60%
6/10
100%
10/10
90%
9/10
90%
9/10
90%
9/10
70%
7/10
90%
9/10
100%
9/9
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE87.98%10%
1/10
40%
4/10
60%
6/10
70%
7/10
90%
9/10
90%
9/10
44%
4/9
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
BlueBlueSky81.85%0%
0/10
20%
2/10
40%
4/10
60%
6/10
40%
4/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
56%
5/9
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
60%
6/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
Locutus80.69%0%
0/10
10%
1/10
30%
3/10
40%
4/10
50%
5/10
70%
7/10
60%
6/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
89%
8/9
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
ISAMind80.69%30%
3/10
10%
1/10
10%
1/10
60%
6/10
50%
5/10
40%
4/10
50%
5/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
90%
9/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin71.54%20%
2/10
0%
0/10
10%
1/10
0%
0/10
30%
3/10
60%
6/10
70%
7/10
100%
10/10
60%
6/10
100%
10/10
100%
10/10
70%
7/10
100%
10/10
50%
5/10
90%
9/10
100%
10/10
100%
10/10
60%
6/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
McRave65.89%10%
1/10
40%
4/10
56%
5/9
10%
1/10
40%
4/10
50%
5/10
30%
3/10
70%
7/10
70%
7/10
80%
8/10
80%
8/10
90%
9/10
60%
6/10
40%
4/10
90%
9/10
100%
10/10
100%
10/10
78%
7/9
0%
0/10
100%
10/10
100%
10/10
50%
5/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
Iron65.38%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
30%
3/10
60%
6/10
60%
6/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
ZZZKBot50.00%0%
0/10
10%
1/10
20%
2/10
20%
2/10
20%
2/10
0%
0/10
40%
4/10
30%
3/10
40%
4/10
60%
6/10
40%
4/10
60%
6/10
30%
3/10
83%
5/6
20%
2/10
90%
9/10
20%
2/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
40%
4/10
100%
10/10
50%
5/10
75%
6/8
100%
10/10
Steamhammer53.49%20%
2/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
40%
4/10
40%
4/10
60%
6/10
30%
3/10
70%
7/10
50%
4/8
90%
9/10
50%
5/10
90%
9/10
90%
9/10
70%
7/10
90%
9/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
Microwave48.06%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
60%
6/10
40%
4/10
60%
6/10
80%
8/10
88%
7/8
90%
9/10
50%
5/10
80%
8/10
70%
7/10
50%
5/10
60%
6/10
100%
10/10
80%
8/10
100%
10/10
20%
2/10
100%
10/10
100%
10/10
LastOrder51.15%0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
10%
1/10
0%
0/10
40%
4/10
70%
7/10
40%
4/10
10%
1/10
100%
10/10
100%
10/10
70%
7/10
10%
1/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
Tyr41.92%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
10%
1/10
70%
7/10
30%
3/10
20%
2/10
90%
9/10
0%
0/10
20%
2/10
100%
10/10
60%
6/10
60%
6/10
80%
8/10
100%
10/10
20%
2/10
100%
10/10
50%
5/10
40%
4/10
90%
9/10
100%
10/10
MetaBot44.92%0%
0/10
0%
0/9
0%
0/9
44%
4/9
11%
1/9
0%
0/9
50%
5/10
60%
6/10
0%
0/10
17%
1/6
50%
4/8
12%
1/8
0%
0/10
100%
10/10
62%
5/8
80%
8/10
80%
8/10
40%
4/10
30%
3/10
70%
7/10
100%
5/5
50%
5/10
89%
8/9
50%
5/10
89%
8/9
100%
8/8
LetaBot39.53%0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
50%
5/10
80%
8/10
10%
1/10
10%
1/10
0%
0/10
80%
8/10
38%
3/8
70%
7/10
100%
10/10
50%
5/10
70%
7/10
0%
0/10
20%
2/10
60%
6/10
50%
5/10
100%
10/10
90%
9/10
100%
10/10
Arrakhammer35.00%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
50%
5/10
50%
5/10
30%
3/10
0%
0/10
20%
2/10
30%
3/10
70%
7/10
40%
4/10
60%
6/10
70%
7/10
50%
5/10
70%
7/10
100%
10/10
60%
6/10
100%
10/10
100%
10/10
Ecgberht32.69%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
80%
8/10
10%
1/10
20%
2/10
90%
9/10
40%
4/10
20%
2/10
0%
0/10
30%
3/10
50%
5/10
70%
7/10
20%
2/10
60%
6/10
90%
9/10
10%
1/10
70%
7/10
100%
10/10
90%
9/10
UAlbertaBot36.29%30%
3/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
40%
4/10
22%
2/9
0%
0/10
20%
2/10
10%
1/10
30%
3/10
0%
0/10
40%
4/10
60%
6/10
50%
5/10
60%
6/10
50%
5/10
40%
4/10
40%
4/10
60%
6/10
90%
9/10
10%
1/10
80%
8/10
100%
10/10
90%
9/10
Ximp39.23%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
50%
5/10
100%
10/10
0%
0/10
0%
0/10
30%
3/10
50%
5/10
0%
0/10
20%
2/10
70%
7/10
30%
3/10
40%
4/10
30%
3/10
60%
6/10
0%
0/10
100%
10/10
90%
9/10
100%
10/10
40%
4/10
100%
10/10
100%
10/10
CDBot32.69%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
40%
4/10
0%
0/10
0%
0/10
30%
3/10
100%
10/10
30%
3/10
80%
8/10
60%
6/10
100%
10/10
40%
4/10
20%
2/10
90%
9/10
60%
6/10
90%
9/10
90%
9/10
Aiur24.31%0%
0/10
0%
0/10
0%
0/10
40%
4/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
80%
8/10
0%
0/5
80%
8/10
50%
5/10
40%
4/10
40%
4/10
0%
0/10
60%
6/10
10%
1/10
80%
8/10
10%
1/10
40%
4/10
70%
7/10
KillAll31.15%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
50%
5/10
0%
0/10
60%
6/10
10%
1/10
20%
2/10
20%
2/10
0%
0/10
50%
5/10
40%
4/10
30%
3/10
10%
1/10
10%
1/10
10%
1/10
80%
8/10
90%
9/10
40%
4/10
90%
9/10
90%
9/10
90%
9/10
WillyT25.87%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
40%
4/10
50%
5/10
11%
1/9
50%
5/10
0%
0/10
90%
9/10
90%
9/10
0%
0/10
10%
1/10
20%
2/10
60%
6/10
30%
3/10
80%
8/10
100%
10/10
AILien31.54%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
50%
5/10
0%
0/10
80%
8/10
20%
2/10
60%
6/10
50%
5/10
0%
0/10
40%
4/10
30%
3/10
20%
2/10
60%
6/10
40%
4/10
90%
9/10
10%
1/10
70%
7/10
100%
10/10
100%
10/10
CUNYBot10.51%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
25%
2/8
10%
1/10
0%
0/10
0%
0/10
10%
1/10
11%
1/9
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
60%
6/10
10%
1/10
20%
2/10
0%
0/10
100%
10/10
Hellbot2.71%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/8
0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
10%
1/10
30%
3/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10

Heartbreak Ridge

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA96.88%90%
9/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
8/8
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
88%
7/8
100%
10/10
CherryPi89.96%10%
1/10
70%
7/10
70%
7/10
80%
8/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
70%
7/10
80%
8/10
90%
9/10
100%
10/10
100%
9/9
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE90.77%30%
3/10
30%
3/10
60%
6/10
70%
7/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
BlueBlueSky82.88%0%
0/10
30%
3/10
40%
4/10
80%
8/10
50%
5/10
100%
10/10
70%
7/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
7/7
100%
10/10
Locutus81.01%0%
0/10
20%
2/10
30%
3/10
20%
2/10
50%
5/10
90%
9/10
50%
5/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
8/8
100%
10/10
ISAMind75.19%0%
0/10
0%
0/10
0%
0/10
50%
5/10
50%
5/10
40%
4/10
40%
4/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
88%
7/8
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
20%
2/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin73.83%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
60%
6/10
10%
1/10
80%
8/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
100%
10/10
67%
6/9
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
8/8
100%
10/10
McRave63.04%10%
1/10
10%
1/10
20%
2/10
30%
3/10
50%
5/10
60%
6/10
90%
9/10
70%
7/10
70%
7/10
50%
5/10
70%
7/10
90%
9/10
90%
9/10
30%
3/10
60%
6/10
100%
10/10
90%
9/10
70%
7/10
0%
0/10
100%
10/10
70%
7/10
70%
7/10
80%
8/10
80%
8/10
86%
6/7
100%
10/10
Iron63.18%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
30%
3/10
20%
2/10
70%
7/10
90%
9/10
100%
10/10
100%
10/10
100%
9/9
40%
4/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
ZZZKBot48.26%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
80%
8/10
50%
5/10
20%
2/10
40%
4/10
0%
0/10
89%
8/9
60%
6/10
70%
7/10
20%
2/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
30%
3/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
Steamhammer54.26%0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
50%
5/10
30%
3/10
50%
5/10
0%
0/10
10%
1/10
80%
8/10
88%
7/8
70%
7/10
90%
9/10
90%
9/10
90%
9/10
60%
6/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
Microwave56.03%0%
0/10
20%
2/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
0%
0/9
30%
3/10
10%
1/10
80%
8/10
100%
10/10
70%
7/10
30%
3/10
70%
7/10
90%
9/10
70%
7/10
100%
10/10
70%
7/10
60%
6/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
50%
5/10
100%
8/8
100%
10/10
LastOrder50.97%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
60%
6/10
90%
9/10
30%
3/10
100%
10/10
78%
7/9
80%
8/10
100%
10/10
0%
0/10
100%
10/10
70%
7/10
80%
8/10
100%
10/10
100%
10/10
20%
2/10
100%
10/10
100%
10/10
100%
10/10
Tyr44.19%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
100%
10/10
20%
2/10
70%
7/10
0%
0/10
30%
3/10
40%
4/10
100%
10/10
70%
7/10
80%
8/10
100%
10/10
100%
10/10
40%
4/10
90%
9/10
30%
3/10
80%
8/10
100%
8/8
100%
10/10
MetaBot45.69%0%
0/8
0%
0/9
10%
1/10
50%
5/10
10%
1/10
12%
1/8
33%
3/9
70%
7/10
0%
0/9
11%
1/9
12%
1/8
30%
3/10
22%
2/9
70%
7/10
0%
0/3
60%
6/10
89%
8/9
67%
6/9
33%
2/6
80%
8/10
80%
8/10
50%
5/10
90%
9/10
70%
7/10
100%
7/7
89%
8/9
LetaBot38.46%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
60%
6/10
40%
4/10
30%
3/10
10%
1/10
20%
2/10
60%
6/10
100%
3/3
0%
0/10
100%
10/10
40%
4/10
60%
6/10
40%
4/10
20%
2/10
60%
6/10
100%
10/10
90%
9/10
100%
4/4
100%
10/10
Arrakhammer37.45%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
10%
1/10
30%
3/10
0%
0/10
0%
0/10
40%
4/10
100%
10/10
50%
5/10
60%
6/10
100%
10/10
80%
8/10
20%
2/10
100%
10/10
90%
9/10
60%
6/10
100%
9/9
100%
10/10
Ecgberht36.08%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
80%
8/10
10%
1/10
0%
0/10
100%
10/10
30%
3/10
11%
1/9
0%
0/10
50%
5/10
60%
6/10
70%
7/10
30%
3/10
100%
10/10
60%
6/10
50%
5/10
100%
10/10
100%
6/6
100%
10/10
UAlbertaBot31.66%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
30%
3/10
10%
1/10
0%
0/10
10%
1/10
30%
3/10
0%
0/10
20%
2/10
33%
3/9
60%
6/10
40%
4/10
40%
4/10
30%
3/10
70%
7/10
50%
5/10
90%
9/10
50%
5/10
70%
7/10
70%
7/10
100%
10/10
Ximp37.35%0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
0%
0/10
0%
0/10
100%
10/10
10%
1/10
0%
0/10
40%
4/10
40%
4/10
30%
3/10
0%
0/10
67%
4/6
40%
4/10
0%
0/10
30%
3/10
70%
7/10
0%
0/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
67%
2/3
100%
10/10
CDBot31.66%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
10%
1/10
20%
2/10
0%
0/10
20%
2/10
60%
6/10
20%
2/10
70%
7/10
30%
3/10
100%
10/10
20%
2/10
100%
10/10
80%
8/10
70%
7/10
100%
9/9
100%
10/10
Aiur29.92%10%
1/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
80%
8/10
0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
60%
6/10
20%
2/10
80%
8/10
80%
8/10
0%
0/10
50%
5/10
0%
0/10
80%
8/10
20%
2/10
70%
7/10
10%
1/10
100%
4/4
100%
10/10
KillAll23.94%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
10%
1/10
70%
7/10
10%
1/10
0%
0/10
0%
0/10
10%
1/10
50%
5/10
40%
4/10
0%
0/10
40%
4/10
10%
1/10
0%
0/10
0%
0/10
80%
8/10
30%
3/10
60%
6/10
100%
9/9
90%
9/10
WillyT25.77%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
80%
8/10
70%
7/10
10%
1/10
0%
0/10
10%
1/10
50%
5/10
50%
5/10
0%
0/10
20%
2/10
30%
3/10
70%
7/10
50%
5/10
100%
10/10
100%
10/10
AILien23.74%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
10%
1/10
0%
0/10
50%
5/10
0%
0/10
20%
2/10
30%
3/10
10%
1/10
40%
4/10
0%
0/10
30%
3/10
20%
2/10
30%
3/10
90%
9/10
40%
4/10
50%
5/10
100%
7/7
100%
10/10
CUNYBot4.88%12%
1/8
0%
0/10
0%
0/10
0%
0/7
0%
0/8
0%
0/10
0%
0/8
14%
1/7
0%
0/9
10%
1/10
10%
1/10
0%
0/8
0%
0/10
0%
0/8
0%
0/7
0%
0/4
0%
0/9
0%
0/6
30%
3/10
33%
1/3
0%
0/9
0%
0/4
0%
0/9
0%
0/10
0%
0/7
50%
2/4
Hellbot1.58%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
11%
1/9
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
50%
2/4

Aztec

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA97.31%90%
9/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CherryPi90.31%10%
1/10
50%
5/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
80%
8/10
80%
8/10
100%
8/8
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE86.77%10%
1/10
50%
5/10
70%
7/10
50%
5/10
80%
8/10
80%
8/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
88%
7/8
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
100%
10/10
BlueBlueSky81.54%0%
0/10
10%
1/10
30%
3/10
60%
6/10
80%
8/10
100%
10/10
60%
6/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
70%
7/10
100%
10/10
90%
9/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
Locutus82.31%0%
0/10
0%
0/10
50%
5/10
40%
4/10
50%
5/10
90%
9/10
50%
5/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
ISAMind79.15%10%
1/10
10%
1/10
20%
2/10
20%
2/10
50%
5/10
60%
6/10
60%
6/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
100%
9/9
100%
10/10
100%
10/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin73.75%0%
0/10
0%
0/10
20%
2/10
0%
0/10
10%
1/10
40%
4/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
44%
4/9
100%
10/10
100%
10/10
100%
10/10
90%
9/10
70%
7/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
McRave61.15%0%
0/10
20%
2/10
50%
5/10
40%
4/10
50%
5/10
40%
4/10
30%
3/10
0%
0/10
60%
6/10
50%
5/10
80%
8/10
100%
10/10
80%
8/10
20%
2/10
60%
6/10
100%
10/10
100%
10/10
70%
7/10
40%
4/10
100%
10/10
80%
8/10
80%
8/10
50%
5/10
100%
10/10
90%
9/10
100%
10/10
Iron64.98%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
100%
10/10
30%
3/10
60%
6/10
90%
9/10
100%
10/10
100%
10/10
100%
7/7
50%
5/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
ZZZKBot50.97%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
70%
7/10
60%
6/10
70%
7/10
70%
7/10
0%
0/10
100%
10/10
50%
5/10
80%
8/10
0%
0/10
80%
8/10
100%
10/10
70%
7/10
90%
9/10
80%
8/10
100%
10/10
80%
8/10
89%
8/9
100%
10/10
Steamhammer52.12%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
50%
5/10
40%
4/10
40%
4/10
20%
2/10
30%
3/10
30%
3/10
56%
5/9
90%
9/10
60%
6/10
100%
10/10
100%
10/10
70%
7/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
Microwave47.10%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
10%
1/10
30%
3/10
80%
8/10
30%
3/10
70%
7/10
67%
6/9
70%
7/10
50%
5/10
80%
8/10
70%
7/10
90%
9/10
70%
7/10
50%
5/10
90%
9/10
80%
8/10
50%
5/10
100%
10/10
100%
10/10
LastOrder49.23%0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
70%
7/10
70%
7/10
20%
2/10
100%
10/10
80%
8/10
70%
7/10
0%
0/10
100%
10/10
80%
8/10
70%
7/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
Tyr52.12%0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
20%
2/10
0%
0/10
100%
10/10
70%
7/10
30%
3/10
80%
8/10
33%
3/9
90%
9/10
100%
10/10
40%
4/10
40%
4/10
100%
10/10
100%
10/10
70%
7/10
90%
9/10
70%
7/10
90%
9/10
90%
9/10
100%
10/10
MetaBot44.35%10%
1/10
0%
0/8
12%
1/8
30%
3/10
0%
0/10
0%
0/9
56%
5/9
80%
8/10
0%
0/7
0%
0/10
44%
4/9
33%
3/9
0%
0/10
67%
6/9
40%
4/10
75%
6/8
90%
9/10
30%
3/10
40%
4/10
67%
6/9
75%
6/8
70%
7/10
75%
6/8
70%
7/10
90%
9/10
100%
8/8
LetaBot37.31%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
50%
5/10
50%
5/10
10%
1/10
30%
3/10
20%
2/10
10%
1/10
60%
6/10
50%
5/10
100%
10/10
20%
2/10
80%
8/10
20%
2/10
60%
6/10
40%
4/10
40%
4/10
100%
10/10
90%
9/10
100%
10/10
Arrakhammer40.31%0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
20%
2/10
40%
4/10
50%
5/10
30%
3/10
0%
0/10
25%
2/8
50%
5/10
70%
7/10
40%
4/10
80%
8/10
80%
8/10
70%
7/10
90%
9/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
Ecgberht35.38%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
100%
10/10
0%
0/10
20%
2/10
100%
10/10
60%
6/10
10%
1/10
0%
0/10
30%
3/10
60%
6/10
90%
9/10
0%
0/10
40%
4/10
60%
6/10
70%
7/10
90%
9/10
90%
9/10
100%
10/10
UAlbertaBot40.77%20%
2/10
10%
1/10
0%
0/10
30%
3/10
10%
1/10
10%
1/10
10%
1/10
30%
3/10
10%
1/10
20%
2/10
0%
0/10
30%
3/10
0%
0/10
60%
6/10
70%
7/10
80%
8/10
60%
6/10
40%
4/10
60%
6/10
50%
5/10
60%
6/10
90%
9/10
40%
4/10
70%
7/10
100%
10/10
100%
10/10
Ximp31.92%0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
30%
3/10
60%
6/10
0%
0/10
0%
0/10
30%
3/10
10%
1/10
20%
2/10
0%
0/10
60%
6/10
20%
2/10
20%
2/10
10%
1/10
40%
4/10
0%
0/10
40%
4/10
80%
8/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
CDBot35.52%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
10%
1/10
30%
3/10
30%
3/10
0%
0/10
33%
3/9
80%
8/10
20%
2/10
100%
10/10
50%
5/10
100%
10/10
20%
2/10
60%
6/10
100%
10/10
40%
4/10
100%
10/10
100%
10/10
Aiur33.33%0%
0/10
0%
0/10
20%
2/10
50%
5/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
0%
0/10
10%
1/10
0%
0/10
50%
5/10
0%
0/10
30%
3/10
25%
2/8
40%
4/10
30%
3/10
60%
6/10
40%
4/10
60%
6/10
80%
8/10
20%
2/10
50%
5/10
70%
7/10
90%
9/10
100%
10/10
KillAll27.31%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
20%
2/10
20%
2/10
10%
1/10
10%
1/10
10%
1/10
30%
3/10
60%
6/10
10%
1/10
40%
4/10
10%
1/10
20%
2/10
40%
4/10
80%
8/10
40%
4/10
90%
9/10
100%
10/10
100%
10/10
WillyT25.58%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
50%
5/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
30%
3/10
25%
2/8
60%
6/10
0%
0/10
30%
3/10
60%
6/10
0%
0/10
0%
0/10
50%
5/10
60%
6/10
70%
7/10
90%
9/10
100%
10/10
AILien20.46%0%
0/10
0%
0/10
0%
0/9
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
50%
5/10
0%
0/10
10%
1/10
30%
3/10
0%
0/10
30%
3/10
10%
1/10
30%
3/10
10%
1/10
60%
6/10
30%
3/10
10%
1/10
30%
3/10
100%
10/10
100%
10/10
CUNYBot8.49%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
11%
1/9
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
100%
10/10
Hellbot0.00%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/8
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10

Tau Cross

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA95.35%60%
6/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
100%
10/10
100%
10/10
60%
6/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
CherryPi92.69%40%
4/10
70%
7/10
90%
9/10
70%
7/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE88.42%0%
0/10
30%
3/10
80%
8/10
80%
8/10
80%
8/10
90%
9/10
70%
7/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
BlueBlueSky80.23%0%
0/10
10%
1/10
20%
2/10
40%
4/10
100%
10/10
80%
8/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
67%
6/9
90%
9/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
Locutus85.33%10%
1/10
30%
3/10
20%
2/10
60%
6/10
80%
8/10
80%
8/10
50%
5/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
ISAMind76.15%0%
0/10
0%
0/10
20%
2/10
0%
0/10
20%
2/10
60%
6/10
50%
5/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin73.08%0%
0/10
0%
0/10
10%
1/10
20%
2/10
20%
2/10
40%
4/10
30%
3/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
60%
6/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
McRave70.00%30%
3/10
10%
1/10
30%
3/10
50%
5/10
50%
5/10
50%
5/10
70%
7/10
80%
8/10
70%
7/10
70%
7/10
70%
7/10
100%
10/10
100%
10/10
40%
4/10
90%
9/10
90%
9/10
100%
10/10
70%
7/10
40%
4/10
100%
10/10
70%
7/10
90%
9/10
80%
8/10
80%
8/10
90%
9/10
100%
10/10
Iron60.38%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
40%
4/10
90%
9/10
70%
7/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
80%
8/10
90%
9/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
ZZZKBot49.42%0%
0/10
10%
1/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
80%
8/10
60%
6/10
70%
7/10
40%
4/10
80%
8/10
89%
8/9
30%
3/10
80%
8/10
0%
0/10
80%
8/10
100%
10/10
60%
6/10
80%
8/10
40%
4/10
100%
10/10
60%
6/10
80%
8/10
100%
10/10
Steamhammer51.36%0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
30%
3/10
60%
6/10
40%
4/10
20%
2/10
10%
1/10
50%
5/10
62%
5/8
60%
6/10
50%
5/10
100%
10/10
80%
8/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
70%
7/10
100%
9/9
100%
10/10
Microwave49.22%0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
10%
1/10
30%
3/10
80%
8/10
70%
7/10
30%
3/10
44%
4/9
90%
9/10
60%
6/10
80%
8/10
80%
8/10
50%
5/10
90%
9/10
90%
9/10
100%
10/10
70%
7/10
67%
6/9
100%
8/8
100%
10/10
LastOrder54.23%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
60%
6/10
90%
9/10
30%
3/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
0%
0/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
80%
8/10
40%
4/10
90%
9/10
100%
10/10
100%
10/10
Tyr40.54%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
50%
5/10
70%
7/10
0%
0/10
10%
1/10
60%
6/10
90%
9/10
50%
5/10
60%
6/10
100%
10/10
100%
10/10
80%
8/10
90%
9/10
60%
6/10
30%
3/10
89%
8/9
100%
10/10
MetaBot45.75%0%
0/9
0%
0/10
0%
0/10
33%
3/9
0%
0/10
10%
1/10
40%
4/10
60%
6/10
0%
0/10
11%
1/9
38%
3/8
56%
5/9
0%
0/10
90%
9/10
38%
3/8
67%
6/9
100%
8/8
50%
5/10
30%
3/10
70%
7/10
70%
7/10
60%
6/10
89%
8/9
90%
9/10
100%
9/9
100%
10/10
LetaBot38.74%0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
10%
1/10
70%
7/10
40%
4/10
10%
1/10
0%
0/10
40%
4/10
62%
5/8
40%
4/10
80%
8/10
50%
5/10
80%
8/10
60%
6/10
70%
7/10
80%
8/10
0%
0/10
100%
10/10
100%
5/5
100%
10/10
Arrakhammer37.98%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
50%
5/10
40%
4/10
0%
0/10
10%
1/10
33%
3/9
60%
6/10
60%
6/10
60%
6/10
30%
3/10
90%
9/10
80%
8/10
70%
7/10
80%
8/10
90%
9/10
100%
9/9
100%
10/10
Ecgberht37.89%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
100%
10/10
0%
0/10
20%
2/10
100%
10/10
50%
5/10
0%
0/8
20%
2/10
40%
4/10
70%
7/10
90%
9/10
40%
4/10
60%
6/10
60%
6/10
60%
6/10
90%
9/10
88%
7/8
100%
10/10
UAlbertaBot33.85%40%
4/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
0%
0/10
20%
2/10
20%
2/10
20%
2/10
0%
0/10
40%
4/10
50%
5/10
50%
5/10
40%
4/10
30%
3/10
50%
5/10
40%
4/10
50%
5/10
80%
8/10
50%
5/10
60%
6/10
80%
8/10
100%
10/10
Ximp35.38%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
60%
6/10
0%
0/10
0%
0/10
20%
2/10
50%
5/10
0%
0/10
0%
0/10
70%
7/10
20%
2/10
70%
7/10
10%
1/10
50%
5/10
0%
0/10
90%
9/10
90%
9/10
100%
10/10
60%
6/10
90%
9/10
100%
10/10
CDBot31.25%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
40%
4/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
30%
3/10
40%
4/10
10%
1/10
60%
6/10
60%
6/10
100%
10/10
30%
3/10
70%
7/10
100%
10/10
50%
5/10
100%
6/6
100%
10/10
Aiur30.12%0%
0/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
10%
1/10
30%
3/10
30%
3/10
20%
2/10
20%
2/10
0%
0/10
10%
1/10
10%
1/10
20%
2/10
30%
3/10
30%
3/10
20%
2/10
40%
4/10
50%
5/10
10%
1/10
70%
7/10
40%
4/10
60%
6/10
80%
8/10
78%
7/9
100%
10/10
KillAll26.92%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
60%
6/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
40%
4/10
20%
2/10
30%
3/10
40%
4/10
20%
2/10
10%
1/10
30%
3/10
60%
6/10
60%
6/10
90%
9/10
100%
10/10
90%
9/10
WillyT24.31%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
60%
6/10
40%
4/10
11%
1/9
100%
10/10
20%
2/10
40%
4/10
50%
5/10
0%
0/10
0%
0/10
40%
4/10
40%
4/10
0%
0/10
100%
6/6
100%
10/10
AILien26.36%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
40%
4/10
30%
3/10
33%
3/9
10%
1/10
70%
7/10
10%
1/10
0%
0/10
10%
1/10
10%
1/10
40%
4/10
40%
4/10
50%
5/10
20%
2/10
10%
1/10
100%
10/10
100%
9/9
100%
10/10
CUNYBot8.62%0%
0/9
0%
0/10
0%
0/9
0%
0/9
0%
0/9
0%
0/10
0%
0/10
10%
1/10
20%
2/10
20%
2/10
0%
0/9
0%
0/8
0%
0/10
11%
1/9
0%
0/9
0%
0/5
0%
0/9
12%
1/8
20%
2/10
10%
1/10
0%
0/6
22%
2/9
0%
0/10
0%
0/6
0%
0/9
89%
8/9
Hellbot0.77%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
11%
1/9

Andromeda

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA98.08%90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CherryPi91.89%10%
1/10
70%
7/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
70%
7/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
9/9
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE86.92%0%
0/10
30%
3/10
100%
10/10
60%
6/10
90%
9/10
70%
7/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
BlueBlueSky80.77%0%
0/10
20%
2/10
0%
0/10
50%
5/10
70%
7/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
60%
6/10
100%
10/10
80%
8/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
Locutus79.54%0%
0/10
0%
0/10
40%
4/10
50%
5/10
60%
6/10
60%
6/10
50%
5/10
80%
8/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
89%
8/9
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
ISAMind78.38%10%
1/10
0%
0/10
10%
1/10
30%
3/10
40%
4/10
50%
5/10
50%
5/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
78%
7/9
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin72.59%0%
0/10
0%
0/10
30%
3/10
0%
0/10
40%
4/10
50%
5/10
30%
3/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
56%
5/9
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
20%
2/10
100%
10/10
100%
10/10
80%
8/10
90%
9/10
100%
10/10
McRave67.95%20%
2/10
30%
3/10
20%
2/10
10%
1/10
50%
5/10
50%
5/10
70%
7/10
70%
7/10
60%
6/10
80%
8/10
80%
8/10
100%
10/10
100%
10/10
67%
6/9
80%
8/10
100%
10/10
100%
10/10
60%
6/10
60%
6/10
100%
10/10
80%
8/10
30%
3/10
80%
8/10
80%
8/10
90%
9/10
100%
10/10
Iron59.30%0%
0/10
10%
1/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
0%
0/10
30%
3/10
10%
1/10
60%
6/10
60%
6/10
70%
7/10
100%
10/10
100%
8/8
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
90%
9/10
70%
7/10
100%
10/10
70%
7/10
80%
8/10
100%
10/10
ZZZKBot50.78%0%
0/10
10%
1/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
40%
4/10
90%
9/10
40%
4/10
70%
7/10
50%
5/10
40%
4/10
78%
7/9
10%
1/10
90%
9/10
50%
5/10
90%
9/10
100%
10/10
70%
7/10
100%
10/10
60%
6/10
70%
7/10
70%
7/10
78%
7/9
100%
10/10
Steamhammer50.97%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
40%
4/10
60%
6/10
20%
2/10
40%
4/10
70%
7/10
56%
5/9
90%
9/10
40%
4/10
100%
10/10
100%
10/10
80%
8/10
90%
9/10
90%
9/10
80%
8/10
90%
9/10
50%
5/10
100%
10/10
100%
10/10
Microwave51.15%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
40%
4/10
30%
3/10
80%
8/10
50%
5/10
70%
7/10
60%
6/10
70%
7/10
90%
9/10
90%
9/10
80%
8/10
100%
10/10
60%
6/10
80%
8/10
80%
8/10
70%
7/10
60%
6/10
90%
9/10
100%
10/10
LastOrder43.85%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
50%
5/10
60%
6/10
50%
5/10
40%
4/10
70%
7/10
50%
5/10
50%
5/10
10%
1/10
90%
9/10
90%
9/10
100%
10/10
90%
9/10
80%
8/10
0%
0/10
90%
9/10
80%
8/10
100%
10/10
Tyr41.15%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
60%
6/10
30%
3/10
30%
3/10
60%
6/10
20%
2/10
70%
7/10
100%
10/10
30%
3/10
50%
5/10
100%
10/10
100%
10/10
30%
3/10
90%
9/10
20%
2/10
70%
7/10
100%
10/10
100%
10/10
MetaBot39.67%0%
0/10
0%
0/9
0%
0/10
40%
4/10
11%
1/9
22%
2/9
44%
4/9
33%
3/9
0%
0/8
22%
2/9
44%
4/9
40%
4/10
30%
3/10
80%
8/10
30%
3/10
44%
4/9
80%
8/10
29%
2/7
30%
3/10
62%
5/8
67%
6/9
0%
0/10
100%
10/10
56%
5/9
56%
5/9
100%
10/10
LetaBot41.15%0%
0/10
0%
0/10
50%
5/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
20%
2/10
0%
0/10
90%
9/10
10%
1/10
30%
3/10
50%
5/10
30%
3/10
70%
7/10
60%
6/10
70%
7/10
40%
4/10
100%
10/10
100%
10/10
50%
5/10
30%
3/10
0%
0/10
60%
6/10
80%
8/10
100%
10/10
Arrakhammer38.61%0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
10%
1/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
60%
6/10
10%
1/10
50%
5/10
0%
0/10
56%
5/9
40%
4/10
60%
6/10
50%
5/10
60%
6/10
100%
10/10
70%
7/10
30%
3/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
Ecgberht38.08%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
50%
5/10
0%
0/10
10%
1/10
90%
9/10
70%
7/10
20%
2/10
30%
3/10
40%
4/10
50%
5/10
80%
8/10
90%
9/10
60%
6/10
60%
6/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
UAlbertaBot37.35%0%
0/10
0%
0/10
10%
1/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
10%
1/10
10%
1/10
0%
0/10
20%
2/10
10%
1/10
50%
5/10
71%
5/7
60%
6/10
50%
5/10
50%
5/10
80%
8/10
60%
6/10
80%
8/10
60%
6/10
70%
7/10
70%
7/10
60%
6/10
100%
10/10
Ximp26.15%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
10%
1/10
0%
0/10
70%
7/10
0%
0/10
40%
4/10
20%
2/10
20%
2/10
20%
2/10
40%
4/10
80%
8/10
90%
9/10
60%
6/10
70%
7/10
100%
10/10
CDBot22.48%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
10%
1/10
40%
4/10
0%
0/10
0%
0/10
38%
3/8
0%
0/10
0%
0/10
10%
1/10
40%
4/10
80%
8/10
40%
4/10
50%
5/10
30%
3/10
60%
6/10
50%
5/10
90%
9/10
Aiur30.12%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
80%
8/10
20%
2/10
10%
1/10
0%
0/10
10%
1/10
20%
2/10
10%
1/10
70%
7/10
33%
3/9
50%
5/10
30%
3/10
40%
4/10
20%
2/10
60%
6/10
60%
6/10
30%
3/10
60%
6/10
0%
0/10
80%
8/10
90%
9/10
KillAll38.08%10%
1/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
70%
7/10
30%
3/10
40%
4/10
20%
2/10
20%
2/10
20%
2/10
10%
1/10
100%
10/10
70%
7/10
70%
7/10
40%
4/10
40%
4/10
20%
2/10
50%
5/10
70%
7/10
40%
4/10
50%
5/10
100%
10/10
100%
10/10
WillyT33.46%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
30%
3/10
10%
1/10
30%
3/10
100%
10/10
80%
8/10
0%
0/10
100%
10/10
0%
0/10
40%
4/10
30%
3/10
10%
1/10
70%
7/10
40%
4/10
60%
6/10
50%
5/10
100%
10/10
100%
10/10
AILien34.75%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
20%
2/10
30%
3/10
30%
3/10
50%
5/10
40%
4/10
10%
1/10
30%
3/10
44%
4/9
40%
4/10
50%
5/10
20%
2/10
30%
3/10
40%
4/10
40%
4/10
100%
10/10
50%
5/10
50%
5/10
100%
10/10
100%
10/10
CUNYBot15.12%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
20%
2/10
22%
2/9
0%
0/10
10%
1/10
20%
2/10
0%
0/10
44%
4/9
20%
2/10
0%
0/10
0%
0/10
40%
4/10
30%
3/10
50%
5/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
100%
10/10
Hellbot0.77%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10

Circuit Breaker

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA94.98%90%
9/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
90%
9/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
100%
9/9
100%
10/10
CherryPi91.51%10%
1/10
50%
5/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
70%
7/10
100%
10/10
100%
9/9
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE89.62%0%
0/10
50%
5/10
80%
8/10
70%
7/10
80%
8/10
80%
8/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
BlueBlueSky80.77%0%
0/10
10%
1/10
20%
2/10
40%
4/10
60%
6/10
100%
10/10
70%
7/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
Locutus82.56%10%
1/10
0%
0/10
30%
3/10
60%
6/10
40%
4/10
90%
9/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
8/8
100%
10/10
ISAMind80.93%10%
1/10
0%
0/10
20%
2/10
40%
4/10
60%
6/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
89%
8/9
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
8/8
100%
10/10
DaQin74.62%10%
1/10
0%
0/10
20%
2/10
0%
0/10
10%
1/10
40%
4/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
50%
5/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
McRave60.62%10%
1/10
0%
0/10
20%
2/10
30%
3/10
50%
5/10
20%
2/10
30%
3/10
40%
4/10
90%
9/10
40%
4/10
70%
7/10
100%
10/10
100%
10/10
44%
4/9
70%
7/10
100%
10/10
90%
9/10
60%
6/10
60%
6/10
100%
10/10
50%
5/10
50%
5/10
90%
9/10
80%
8/10
80%
8/10
100%
10/10
Iron58.98%20%
2/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
60%
6/10
60%
6/10
90%
9/10
60%
6/10
80%
8/10
60%
6/10
88%
7/8
60%
6/10
80%
8/10
100%
10/10
70%
7/10
100%
10/10
80%
8/10
100%
10/10
70%
7/10
100%
10/10
70%
7/10
100%
8/8
100%
10/10
ZZZKBot45.95%0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
40%
4/10
70%
7/10
50%
5/10
60%
6/10
40%
4/10
33%
3/9
10%
1/10
90%
9/10
50%
5/10
100%
10/10
100%
10/10
60%
6/10
90%
9/10
60%
6/10
70%
7/10
60%
6/10
80%
8/10
100%
10/10
Steamhammer49.61%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
60%
6/10
10%
1/10
30%
3/10
50%
5/10
10%
1/10
60%
6/10
50%
5/10
50%
5/10
60%
6/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
90%
9/10
90%
9/10
80%
8/10
75%
6/8
100%
10/10
Microwave44.53%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
40%
4/10
50%
5/10
50%
5/10
50%
5/10
10%
1/10
75%
6/8
70%
7/10
70%
7/10
30%
3/10
80%
8/10
40%
4/10
70%
7/10
60%
6/10
100%
10/10
80%
8/10
60%
6/10
100%
8/8
100%
10/10
LastOrder50.77%0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
40%
4/10
90%
9/10
50%
5/10
100%
10/10
80%
8/10
60%
6/10
90%
9/10
0%
0/10
80%
8/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
10%
1/10
90%
9/10
100%
10/10
100%
10/10
Tyr44.79%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
40%
4/10
60%
6/10
40%
4/10
90%
9/10
0%
0/10
20%
2/10
80%
8/10
100%
10/10
50%
5/10
60%
6/10
100%
10/10
100%
10/10
50%
5/10
90%
9/10
30%
3/10
60%
6/10
89%
8/9
100%
10/10
MetaBot47.93%20%
2/10
0%
0/9
0%
0/10
20%
2/10
0%
0/10
11%
1/9
30%
3/10
56%
5/9
12%
1/8
67%
6/9
50%
5/10
25%
2/8
20%
2/10
80%
8/10
56%
5/9
50%
5/10
100%
7/7
70%
7/10
30%
3/10
70%
7/10
78%
7/9
75%
6/8
80%
8/10
78%
7/9
89%
8/9
100%
9/9
LetaBot44.53%0%
0/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
20%
2/10
0%
0/10
30%
3/10
40%
4/10
90%
9/10
50%
5/10
30%
3/10
40%
4/10
20%
2/10
44%
4/9
70%
7/10
90%
9/10
40%
4/10
90%
9/10
80%
8/10
40%
4/10
70%
7/10
0%
0/10
100%
10/10
100%
7/7
100%
10/10
Arrakhammer39.77%0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
40%
4/10
30%
3/10
10%
1/10
0%
0/10
50%
5/10
30%
3/10
80%
8/10
50%
5/10
70%
7/10
90%
9/10
80%
8/10
90%
9/10
100%
10/10
70%
7/10
100%
9/9
100%
10/10
Ecgberht37.94%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
50%
5/10
10%
1/10
70%
7/10
100%
10/10
50%
5/10
0%
0/7
10%
1/10
20%
2/10
70%
7/10
80%
8/10
90%
9/10
40%
4/10
60%
6/10
80%
8/10
70%
7/10
100%
6/6
90%
9/10
UAlbertaBot31.40%0%
0/10
10%
1/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
40%
4/10
30%
3/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
40%
4/10
30%
3/10
60%
6/10
50%
5/10
30%
3/10
60%
6/10
40%
4/10
60%
6/10
60%
6/10
40%
4/10
40%
4/10
88%
7/8
90%
9/10
Ximp29.62%10%
1/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
50%
5/10
40%
4/10
0%
0/10
0%
0/10
0%
0/10
60%
6/10
10%
1/10
0%
0/10
70%
7/10
10%
1/10
30%
3/10
20%
2/10
40%
4/10
10%
1/10
50%
5/10
90%
9/10
80%
8/10
30%
3/10
60%
6/10
100%
10/10
CDBot22.48%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
40%
4/10
10%
1/10
30%
3/10
0%
0/10
0%
0/10
30%
3/10
20%
2/10
10%
1/10
10%
1/10
60%
6/10
90%
9/10
30%
3/10
10%
1/10
30%
3/10
60%
6/10
75%
6/8
70%
7/10
Aiur33.72%10%
1/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
20%
2/10
20%
2/10
50%
5/10
0%
0/10
10%
1/10
10%
1/10
40%
4/10
10%
1/10
50%
5/10
22%
2/9
60%
6/10
20%
2/10
60%
6/10
40%
4/10
50%
5/10
70%
7/10
60%
6/10
80%
8/10
20%
2/10
44%
4/9
100%
10/10
KillAll26.46%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
50%
5/10
30%
3/10
40%
4/10
10%
1/10
0%
0/10
0%
0/10
10%
1/10
25%
2/8
30%
3/10
10%
1/10
40%
4/10
40%
4/10
10%
1/10
90%
9/10
40%
4/10
40%
4/10
20%
2/10
100%
9/9
100%
10/10
WillyT31.92%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
30%
3/10
10%
1/10
20%
2/10
90%
9/10
70%
7/10
20%
2/10
100%
10/10
0%
0/10
20%
2/10
60%
6/10
20%
2/10
70%
7/10
20%
2/10
60%
6/10
40%
4/10
80%
8/10
100%
10/10
AILien33.46%0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
20%
2/10
30%
3/10
40%
4/10
20%
2/10
40%
4/10
10%
1/10
40%
4/10
22%
2/9
0%
0/10
30%
3/10
30%
3/10
60%
6/10
70%
7/10
40%
4/10
80%
8/10
80%
8/10
60%
6/10
100%
8/8
100%
10/10
CUNYBot13.10%0%
0/9
0%
0/10
0%
0/10
0%
0/10
0%
0/8
0%
0/8
0%
0/10
20%
2/10
0%
0/8
20%
2/10
25%
2/8
0%
0/8
0%
0/10
11%
1/9
11%
1/9
0%
0/7
0%
0/9
0%
0/6
12%
1/8
40%
4/10
25%
2/8
56%
5/9
0%
0/9
20%
2/10
0%
0/8
100%
8/8
Hellbot1.95%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/9
0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/8

Empire of the Sun

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA94.23%80%
8/10
100%
10/10
90%
9/10
100%
10/10
70%
7/10
90%
9/10
80%
8/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CherryPi92.66%20%
2/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
70%
7/10
90%
9/10
100%
9/9
100%
10/10
80%
8/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE84.62%0%
0/10
0%
0/10
50%
5/10
40%
4/10
70%
7/10
80%
8/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
BlueBlueSky81.40%10%
1/10
10%
1/10
50%
5/10
40%
4/10
40%
4/10
90%
9/10
60%
6/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
62%
5/8
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
Locutus81.47%0%
0/10
10%
1/10
60%
6/10
60%
6/10
70%
7/10
70%
7/10
30%
3/10
80%
8/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
89%
8/9
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
ISAMind81.40%30%
3/10
0%
0/10
30%
3/10
60%
6/10
30%
3/10
100%
10/10
40%
4/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
88%
7/8
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin73.75%10%
1/10
0%
0/10
20%
2/10
10%
1/10
30%
3/10
0%
0/10
30%
3/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
90%
9/10
100%
10/10
67%
6/9
100%
10/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
McRave68.85%20%
2/10
10%
1/10
30%
3/10
40%
4/10
70%
7/10
60%
6/10
70%
7/10
40%
4/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
90%
9/10
60%
6/10
40%
4/10
100%
10/10
90%
9/10
90%
9/10
70%
7/10
100%
10/10
90%
9/10
40%
4/10
80%
8/10
70%
7/10
90%
9/10
100%
10/10
Iron63.46%0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
60%
6/10
60%
6/10
80%
8/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
60%
6/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
ZZZKBot48.05%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
40%
4/10
70%
7/10
50%
5/10
50%
5/10
40%
4/10
67%
6/9
40%
4/10
80%
8/10
10%
1/10
90%
9/10
100%
10/10
80%
8/10
70%
7/10
80%
8/10
90%
9/10
70%
7/10
100%
7/7
90%
9/10
Steamhammer46.51%10%
1/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
30%
3/10
10%
1/10
10%
1/10
40%
4/10
62%
5/8
60%
6/10
40%
4/10
100%
10/10
100%
10/10
90%
9/10
50%
5/10
100%
10/10
90%
9/10
80%
8/10
90%
9/10
100%
10/10
100%
10/10
Microwave55.60%0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
20%
2/10
0%
0/10
10%
1/10
50%
5/10
90%
9/10
70%
7/10
80%
8/10
78%
7/9
90%
9/10
60%
6/10
80%
8/10
100%
10/10
70%
7/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
40%
4/10
100%
10/10
100%
10/10
LastOrder45.77%0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
50%
5/10
90%
9/10
30%
3/10
0%
0/10
90%
9/10
60%
6/10
80%
8/10
0%
0/10
100%
10/10
70%
7/10
90%
9/10
80%
8/10
80%
8/10
40%
4/10
100%
10/10
90%
9/10
100%
10/10
Tyr48.46%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
60%
6/10
60%
6/10
20%
2/10
100%
10/10
30%
3/10
80%
8/10
100%
10/10
40%
4/10
50%
5/10
100%
10/10
100%
10/10
70%
7/10
90%
9/10
80%
8/10
50%
5/10
100%
10/10
100%
10/10
MetaBot43.40%0%
0/10
0%
0/9
10%
1/10
38%
3/8
11%
1/9
12%
1/8
33%
3/9
40%
4/10
0%
0/10
33%
3/9
38%
3/8
22%
2/9
10%
1/10
70%
7/10
30%
3/10
30%
3/10
100%
8/8
44%
4/9
60%
6/10
67%
6/9
100%
6/6
75%
6/8
100%
8/8
56%
5/9
90%
9/10
100%
9/9
LetaBot41.92%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
60%
6/10
40%
4/10
60%
6/10
40%
4/10
10%
1/10
40%
4/10
20%
2/10
70%
7/10
60%
6/10
80%
8/10
60%
6/10
100%
10/10
40%
4/10
40%
4/10
50%
5/10
20%
2/10
100%
10/10
100%
10/10
100%
10/10
Arrakhammer36.15%0%
0/10
20%
2/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
60%
6/10
40%
4/10
20%
2/10
0%
0/10
70%
7/10
40%
4/10
80%
8/10
10%
1/10
80%
8/10
60%
6/10
30%
3/10
50%
5/10
80%
8/10
50%
5/10
100%
10/10
100%
10/10
Ecgberht36.05%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
90%
9/10
0%
0/10
20%
2/10
100%
10/10
60%
6/10
0%
0/8
20%
2/10
20%
2/10
60%
6/10
70%
7/10
20%
2/10
40%
4/10
60%
6/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
UAlbertaBot31.66%10%
1/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
10%
1/10
10%
1/10
10%
1/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
50%
5/10
56%
5/9
40%
4/10
90%
9/10
40%
4/10
30%
3/10
40%
4/10
70%
7/10
80%
8/10
20%
2/10
60%
6/10
80%
8/10
100%
10/10
Ximp31.54%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
30%
3/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
30%
3/10
0%
0/10
40%
4/10
0%
0/10
20%
2/10
30%
3/10
70%
7/10
0%
0/10
80%
8/10
90%
9/10
100%
10/10
60%
6/10
90%
9/10
100%
10/10
CDBot33.59%10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
50%
5/10
20%
2/10
10%
1/10
0%
0/10
33%
3/9
60%
6/10
40%
4/10
80%
8/10
60%
6/10
100%
10/10
10%
1/10
40%
4/10
90%
9/10
40%
4/10
100%
10/10
90%
9/10
Aiur29.69%10%
1/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
30%
3/10
0%
0/10
0%
0/10
20%
2/10
30%
3/10
0%
0/6
60%
6/10
70%
7/10
60%
6/10
30%
3/10
20%
2/10
90%
9/10
0%
0/10
60%
6/10
50%
5/10
90%
9/10
100%
10/10
KillAll34.88%0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
0%
0/10
60%
6/10
50%
5/10
20%
2/10
10%
1/10
10%
1/10
20%
2/10
10%
1/10
25%
2/8
50%
5/10
50%
5/10
40%
4/10
20%
2/10
10%
1/10
60%
6/10
100%
10/10
40%
4/10
90%
9/10
100%
10/10
100%
10/10
WillyT27.91%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
10%
1/10
20%
2/10
0%
0/10
60%
6/10
20%
2/10
0%
0/8
80%
8/10
20%
2/10
50%
5/10
80%
8/10
0%
0/10
10%
1/10
40%
4/10
60%
6/10
50%
5/10
100%
10/10
100%
10/10
AILien27.80%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
30%
3/10
10%
1/10
60%
6/10
0%
0/10
50%
5/10
44%
4/9
0%
0/10
50%
5/10
0%
0/10
40%
4/10
40%
4/10
60%
6/10
50%
5/10
10%
1/10
50%
5/10
100%
10/10
100%
10/10
CUNYBot6.61%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/7
0%
0/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
90%
9/10
Hellbot1.16%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/9
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10

Fortress

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA96.53%80%
8/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
CherryPi87.31%20%
2/10
80%
8/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
80%
8/10
80%
8/10
70%
7/10
60%
6/10
70%
7/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE85.66%10%
1/10
20%
2/10
60%
6/10
80%
8/10
50%
5/10
100%
10/10
90%
9/10
90%
9/10
70%
7/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
75%
6/8
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
BlueBlueSky79.07%10%
1/10
0%
0/10
40%
4/10
70%
7/10
80%
8/10
90%
9/10
40%
4/10
100%
10/10
70%
7/10
80%
8/10
90%
9/10
100%
10/10
100%
10/10
67%
6/9
100%
10/10
90%
9/10
100%
10/10
70%
7/10
90%
9/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
Locutus80.23%10%
1/10
20%
2/10
20%
2/10
30%
3/10
50%
5/10
60%
6/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
8/8
100%
10/10
ISAMind77.52%0%
0/10
0%
0/10
50%
5/10
20%
2/10
50%
5/10
80%
8/10
40%
4/10
100%
10/10
40%
4/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
8/8
100%
10/10
DaQin66.15%0%
0/10
0%
0/10
0%
0/10
10%
1/10
40%
4/10
20%
2/10
30%
3/10
70%
7/10
60%
6/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
60%
6/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
50%
5/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
80%
8/10
100%
10/10
McRave71.81%10%
1/10
20%
2/10
10%
1/10
60%
6/10
40%
4/10
60%
6/10
70%
7/10
80%
8/10
80%
8/10
70%
7/10
100%
10/10
100%
10/10
90%
9/10
67%
6/9
100%
10/10
100%
10/10
90%
9/10
70%
7/10
50%
5/10
100%
10/10
100%
10/10
60%
6/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
Iron68.22%0%
0/10
20%
2/10
10%
1/10
0%
0/10
20%
2/10
0%
0/10
30%
3/10
20%
2/10
40%
4/10
70%
7/10
90%
9/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
9/9
100%
10/10
ZZZKBot62.26%10%
1/10
30%
3/10
30%
3/10
30%
3/10
0%
0/10
60%
6/10
40%
4/10
20%
2/10
60%
6/10
90%
9/10
70%
7/10
80%
8/10
30%
3/10
100%
7/7
100%
10/10
80%
8/10
30%
3/10
80%
8/10
100%
10/10
60%
6/10
100%
10/10
70%
7/10
100%
10/10
70%
7/10
90%
9/10
100%
10/10
Steamhammer50.00%0%
0/10
40%
4/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
30%
3/10
10%
1/10
10%
1/10
40%
4/10
60%
6/10
60%
6/10
80%
8/10
50%
5/10
100%
10/10
60%
6/10
90%
9/10
100%
10/10
70%
7/10
100%
10/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
Microwave55.60%0%
0/10
30%
3/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
20%
2/10
0%
0/10
10%
1/10
30%
3/10
90%
9/10
90%
9/10
50%
5/10
70%
7/10
100%
10/10
80%
8/10
90%
9/10
90%
9/10
70%
7/10
90%
9/10
80%
8/10
100%
10/10
90%
9/10
50%
5/10
100%
9/9
100%
10/10
LastOrder47.10%0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
60%
6/10
10%
1/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
0%
0/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
90%
9/10
10%
1/10
70%
7/10
100%
9/9
100%
10/10
Tyr43.97%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
70%
7/10
40%
4/10
50%
5/10
0%
0/10
22%
2/9
100%
10/10
80%
8/10
40%
4/10
60%
6/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
30%
3/10
60%
6/10
100%
8/8
100%
10/10
MetaBot40.25%0%
0/9
10%
1/10
25%
2/8
33%
3/9
0%
0/10
20%
2/10
40%
4/10
33%
3/9
0%
0/9
0%
0/7
40%
4/10
30%
3/10
10%
1/10
78%
7/9
50%
3/6
62%
5/8
60%
6/10
44%
4/9
30%
3/10
60%
6/10
78%
7/9
30%
3/10
90%
9/10
44%
4/9
70%
7/10
100%
10/10
LetaBot15.81%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
0%
0/10
50%
3/6
10%
1/10
0%
0/10
40%
4/10
20%
2/10
30%
3/10
10%
1/10
20%
2/10
0%
0/10
70%
7/10
71%
5/7
100%
10/10
Arrakhammer37.35%0%
0/10
30%
3/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
0%
0/10
20%
2/10
50%
5/10
20%
2/10
0%
0/10
20%
2/10
38%
3/8
90%
9/10
90%
9/10
50%
5/10
80%
8/10
60%
6/10
60%
6/10
20%
2/10
100%
10/10
20%
2/10
100%
9/9
100%
10/10
Ecgberht37.84%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
70%
7/10
0%
0/10
10%
1/10
100%
10/10
60%
6/10
40%
4/10
100%
10/10
10%
1/10
50%
5/10
70%
7/10
10%
1/10
70%
7/10
60%
6/10
50%
5/10
80%
8/10
100%
9/9
100%
10/10
UAlbertaBot38.13%0%
0/10
0%
0/10
0%
0/10
30%
3/10
10%
1/10
0%
0/10
20%
2/10
30%
3/10
0%
0/10
20%
2/10
40%
4/10
10%
1/10
10%
1/10
40%
4/10
56%
5/9
60%
6/10
50%
5/10
50%
5/10
60%
6/10
40%
4/10
80%
8/10
70%
7/10
50%
5/10
90%
9/10
88%
7/8
100%
10/10
Ximp36.92%0%
0/10
10%
1/10
0%
0/10
10%
1/10
20%
2/10
0%
0/10
50%
5/10
50%
5/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
10%
1/10
0%
0/10
70%
7/10
80%
8/10
20%
2/10
30%
3/10
40%
4/10
0%
0/10
90%
9/10
80%
8/10
100%
10/10
80%
8/10
80%
8/10
100%
10/10
CDBot37.84%0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
10%
1/10
20%
2/10
0%
0/10
10%
1/10
40%
4/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
40%
4/10
70%
7/10
40%
4/10
90%
9/10
60%
6/10
100%
10/10
0%
0/10
90%
9/10
80%
8/10
100%
10/10
100%
9/9
100%
10/10
Aiur29.07%10%
1/10
10%
1/10
0%
0/10
20%
2/10
10%
1/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
20%
2/10
0%
0/10
20%
2/10
22%
2/9
90%
9/10
40%
4/10
30%
3/10
20%
2/10
10%
1/10
100%
10/10
50%
5/10
40%
4/10
30%
3/10
100%
9/9
100%
10/10
KillAll29.62%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
40%
4/10
10%
1/10
30%
3/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
70%
7/10
80%
8/10
80%
8/10
40%
4/10
30%
3/10
20%
2/10
10%
1/10
50%
5/10
10%
1/10
90%
9/10
90%
9/10
100%
10/10
WillyT32.05%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
90%
9/10
70%
7/10
10%
1/10
100%
10/10
0%
0/10
50%
5/10
50%
5/10
0%
0/10
20%
2/10
60%
6/10
90%
9/10
50%
5/10
100%
9/9
100%
10/10
AILien29.34%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
20%
2/10
0%
0/10
30%
3/10
50%
5/10
50%
5/10
30%
3/10
40%
4/10
56%
5/9
30%
3/10
80%
8/10
20%
2/10
10%
1/10
20%
2/10
0%
0/10
70%
7/10
10%
1/10
50%
5/10
90%
9/10
100%
10/10
CUNYBot10.42%10%
1/10
0%
0/10
10%
1/10
0%
0/9
0%
0/8
0%
0/8
20%
2/10
0%
0/10
0%
0/9
10%
1/10
0%
0/10
0%
0/9
0%
0/9
0%
0/8
30%
3/10
29%
2/7
0%
0/9
0%
0/9
12%
1/8
20%
2/10
0%
0/9
0%
0/9
10%
1/10
0%
0/9
10%
1/10
100%
10/10
Hellbot0.00%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10

Python

overallSAIDCherCSEBlueLocuISAMDaQiMcRaIronZZZKSteaMicrLastTyrMetaLetaArraEcgbUAlbXimpCDBoAiurKillWillAILiCUNYHell
SAIDA93.85%80%
8/10
90%
9/10
90%
9/10
90%
9/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
80%
8/10
90%
9/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CherryPi91.54%20%
2/10
70%
7/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
90%
9/10
80%
8/10
60%
6/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
CSE84.23%10%
1/10
30%
3/10
60%
6/10
70%
7/10
50%
5/10
70%
7/10
70%
7/10
90%
9/10
80%
8/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
BlueBlueSky79.62%10%
1/10
0%
0/10
40%
4/10
90%
9/10
50%
5/10
80%
8/10
90%
9/10
80%
8/10
60%
6/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
50%
5/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
60%
6/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
Locutus78.08%10%
1/10
0%
0/10
30%
3/10
10%
1/10
60%
6/10
90%
9/10
90%
9/10
70%
7/10
80%
8/10
80%
8/10
90%
9/10
100%
10/10
80%
8/10
80%
8/10
80%
8/10
90%
9/10
100%
10/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
ISAMind78.68%10%
1/10
20%
2/10
50%
5/10
50%
5/10
40%
4/10
70%
7/10
30%
3/10
100%
10/10
50%
5/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
62%
5/8
80%
8/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
DaQin70.27%10%
1/10
0%
0/10
30%
3/10
20%
2/10
10%
1/10
30%
3/10
30%
3/10
80%
8/10
60%
6/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
89%
8/9
80%
8/10
100%
10/10
100%
10/10
80%
8/10
60%
6/10
90%
9/10
90%
9/10
90%
9/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
McRave62.69%10%
1/10
0%
0/10
30%
3/10
10%
1/10
10%
1/10
70%
7/10
70%
7/10
60%
6/10
80%
8/10
60%
6/10
60%
6/10
90%
9/10
70%
7/10
80%
8/10
70%
7/10
100%
10/10
100%
10/10
80%
8/10
30%
3/10
100%
10/10
70%
7/10
40%
4/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
Iron65.76%0%
0/10
10%
1/10
10%
1/10
20%
2/10
30%
3/10
0%
0/10
20%
2/10
40%
4/10
20%
2/10
100%
10/10
100%
10/10
90%
9/10
100%
10/10
100%
7/7
70%
7/10
100%
10/10
100%
10/10
80%
8/10
100%
10/10
80%
8/10
100%
10/10
90%
9/10
100%
10/10
90%
9/10
70%
7/10
100%
10/10
ZZZKBot63.67%0%
0/10
20%
2/10
20%
2/10
40%
4/10
20%
2/10
50%
5/10
40%
4/10
20%
2/10
80%
8/10
50%
5/10
80%
8/10
50%
5/10
70%
7/10
100%
8/8
60%
6/10
90%
9/10
70%
7/10
90%
9/10
100%
10/10
80%
8/10
100%
10/10
80%
8/10
100%
10/10
80%
8/10
75%
6/8
100%
10/10
Steamhammer52.90%0%
0/10
40%
4/10
20%
2/10
0%
0/10
20%
2/10
0%
0/10
10%
1/10
40%
4/10
0%
0/10
50%
5/10
30%
3/10
40%
4/10
50%
5/10
33%
3/9
50%
5/10
80%
8/10
100%
10/10
80%
8/10
90%
9/10
50%
5/10
90%
9/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
100%
10/10
Microwave47.49%0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
0%
0/10
40%
4/10
0%
0/10
20%
2/10
70%
7/10
30%
3/10
80%
8/10
78%
7/9
60%
6/10
90%
9/10
50%
5/10
100%
10/10
60%
6/10
70%
7/10
80%
8/10
90%
9/10
90%
9/10
20%
2/10
90%
9/10
100%
10/10
LastOrder47.31%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
10%
1/10
50%
5/10
60%
6/10
70%
7/10
0%
0/10
80%
8/10
60%
6/10
80%
8/10
20%
2/10
90%
9/10
80%
8/10
70%
7/10
100%
10/10
90%
9/10
60%
6/10
100%
10/10
100%
10/10
100%
10/10
Tyr44.62%0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
30%
3/10
50%
5/10
20%
2/10
100%
10/10
10%
1/10
40%
4/10
90%
9/10
60%
6/10
80%
8/10
100%
10/10
100%
10/10
30%
3/10
100%
10/10
50%
5/10
60%
6/10
90%
9/10
100%
10/10
MetaBot49.79%0%
0/10
0%
0/10
10%
1/10
50%
5/10
20%
2/10
38%
3/8
11%
1/9
20%
2/10
0%
0/7
0%
0/8
67%
6/9
22%
2/9
20%
2/10
90%
9/10
56%
5/9
88%
7/8
90%
9/10
90%
9/10
50%
5/10
78%
7/9
78%
7/9
70%
7/10
100%
10/10
67%
6/9
90%
9/10
100%
5/5
LetaBot39.00%20%
2/10
0%
0/10
0%
0/10
20%
2/10
20%
2/10
20%
2/10
20%
2/10
30%
3/10
30%
3/10
40%
4/10
50%
5/10
40%
4/10
40%
4/10
60%
6/10
44%
4/9
30%
3/10
40%
4/10
20%
2/10
100%
10/10
50%
5/10
10%
1/10
50%
5/10
0%
0/10
100%
10/10
80%
8/10
100%
10/10
Arrakhammer32.56%0%
0/10
20%
2/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
20%
2/10
10%
1/10
20%
2/10
10%
1/10
12%
1/8
70%
7/10
70%
7/10
40%
4/10
80%
8/10
60%
6/10
50%
5/10
0%
0/10
90%
9/10
70%
7/10
100%
10/10
100%
10/10
Ecgberht35.00%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
50%
5/10
80%
8/10
40%
4/10
10%
1/10
60%
6/10
30%
3/10
70%
7/10
90%
9/10
30%
3/10
20%
2/10
80%
8/10
50%
5/10
80%
8/10
100%
10/10
90%
9/10
UAlbertaBot33.08%10%
1/10
0%
0/10
10%
1/10
0%
0/10
10%
1/10
20%
2/10
20%
2/10
20%
2/10
20%
2/10
10%
1/10
20%
2/10
0%
0/10
10%
1/10
20%
2/10
10%
1/10
80%
8/10
60%
6/10
30%
3/10
30%
3/10
40%
4/10
70%
7/10
50%
5/10
60%
6/10
90%
9/10
70%
7/10
100%
10/10
Ximp32.31%0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
40%
4/10
70%
7/10
0%
0/10
0%
0/10
10%
1/10
40%
4/10
20%
2/10
0%
0/10
50%
5/10
0%
0/10
20%
2/10
10%
1/10
70%
7/10
0%
0/10
90%
9/10
70%
7/10
90%
9/10
50%
5/10
100%
10/10
100%
10/10
CDBot37.84%20%
2/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
20%
2/10
20%
2/10
50%
5/10
30%
3/10
30%
3/10
0%
0/10
22%
2/9
50%
5/10
40%
4/10
70%
7/10
60%
6/10
100%
10/10
30%
3/10
100%
10/10
80%
8/10
80%
8/10
80%
8/10
90%
9/10
Aiur32.43%10%
1/10
0%
0/10
0%
0/10
40%
4/10
0%
0/10
0%
0/10
10%
1/10
30%
3/10
0%
0/10
0%
0/10
10%
1/10
20%
2/10
0%
0/10
70%
7/10
22%
2/9
90%
9/10
50%
5/10
80%
8/10
30%
3/10
10%
1/10
70%
7/10
20%
2/10
60%
6/10
40%
4/10
80%
8/10
100%
10/10
KillAll30.89%20%
2/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
60%
6/10
10%
1/10
20%
2/10
0%
0/10
10%
1/10
10%
1/10
0%
0/10
30%
3/10
50%
5/10
100%
10/10
20%
2/10
50%
5/10
30%
3/10
0%
0/10
80%
8/10
50%
5/10
60%
6/10
100%
9/9
100%
10/10
WillyT26.15%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
40%
4/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
40%
4/10
50%
5/10
0%
0/10
100%
10/10
10%
1/10
50%
5/10
40%
4/10
10%
1/10
20%
2/10
40%
4/10
50%
5/10
30%
3/10
90%
9/10
100%
10/10
AILien27.03%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
20%
2/10
10%
1/10
20%
2/10
0%
0/10
80%
8/10
0%
0/10
40%
4/10
33%
3/9
0%
0/10
30%
3/10
20%
2/10
10%
1/10
50%
5/10
20%
2/10
60%
6/10
40%
4/10
70%
7/10
100%
10/10
100%
10/10
CUNYBot11.28%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
30%
3/10
25%
2/8
0%
0/10
10%
1/10
0%
0/10
10%
1/10
10%
1/10
20%
2/10
0%
0/10
0%
0/10
30%
3/10
0%
0/10
20%
2/10
20%
2/10
0%
0/9
10%
1/10
0%
0/10
100%
10/10
Hellbot0.78%0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/5
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
10%
1/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10
0%
0/10

It’s a lot to digest, hmm? But there are lessons in every table, if we can only read them out. One interesting feature is the light-colored square area near the upper left, where the similar-strength protoss contingent, the Locutusoids and McRave, often had even-ish scores against each other. The square appears on most tables, but its shape varies strongly from map to map. Also see McRave versus Iron across maps.

the CIG map pool

Steamhammer 1.4.5 is submitted to CIG. Because of an obscure CIG rule, the version for SSCAIT will be slightly different (the rules curiously require Steamhammer to comment out a couple of minor configuration features, which is not how I want to distribute it). But in any case, it’s done. Working right up to the deadline (around midday tomorrow in my time zone) is an algorithm for causing more problems than it solves.

CIG rules also say that they will choose 5 maps pseudo-randomly (one 2-player, two 3-player, two 4-player) from a pool of 20. Since starting out on CIG work, I’ve been playing test games exclusively on CIG maps. The SSCAIT maps have been feeling stale, so it was a welcome break. Here are my thoughts on the CIG map pool.

7 maps are familiar from SSCAIT. SSCAIT doesn’t include version numbers in its map names (except La Mancha for some reason), so I’m not sure which of these are the exact same version. In any case, they are all close.

(2)Destination1.1.scx
(2)NeoHeartbreakerRidge.scx (Heartbreak Ridge)
(3)TauCross1.1.scx
(4)Andromeda1.0.scx
(4)CircuitBreakers1.0.scx
(4)FightingSpirit1.3.scx
(4)Python1.3.scx

9 maps are different from SSCAIT maps but provide no special features that challenge bots (at least not that I noticed). I enjoyed all these maps. My favorites are Chupung Ryeong and Arcadia II.

(2)MatchPoint1.3.scx. Sometimes compared to Benzine, because the main bases and expansions are laid out similarly. But the middle is not nearly so open.

(2)NeoChupungRyeong2.1.scx. Multiple narrow paths between bases. Played properly, I think the map leads to complicated and interesting games.

(2)RideofValkyries1.0.scx. The main bases are across from each other, relatively close with the naturals pointing toward each other, and expansions beyond the natural are away from the direct path.

(3)GreatBarrierReef1.0.scx (originally named El Niño, then revised). The map has blocking mineral lines in between bases. Humans can push units through the minerals, or drop behind them if you dare to mine them. Since the blocking mineral paths run around the edge of the map, all bots that I have tried ignore them, and they don’t cause a problem.

(3)NeoAztec2.1.scx. Low ground main and high ground natural (compare Jade). Bases beyond the natural are a little farther away than on some maps.

(3)Pathfinder1.0.scx. The looping layout of the bases seems intuitive when I look at the picture, but for some reason in following games I can’t get my head around it. Bots ought to pay more attention to attacking around the back way.

(4)ArcadiaII2.02.scx. The natural base and mineral-only are near each other, both inside the natural entrance. Compare Andromeda, where the mineral-only is above the ramp but can be attacked from outside.

(4)LunaTheFinal2.3.scx. A classic macro map, sometimes accused of making the game boring.

(4)NeoSniperRidge2.0.scx. Ridges all through the center of the map, somewhat like Heartbreak Ridge. Bots don’t really understand how to use the ridges, except that I think Locutus is starting to get the idea.

The remaining 4 maps have features that bots struggle with. I didn’t enjoy them as much. I vividly remember the struggle to play on Sparkle, and I did not adapt Steamhammer to play on any of these maps. Since they’re selecting 5 of the 20 maps, any given map is unlikely to end up in the tournament. I thought effort was best spent elsewhere.

(2)BlueStorm1.2.scx. The closest exit to the center is a narrow one that larger units can’t fit through. Steamhammer gets lurkers and ultralisks trapped behind it, not realizing it could take a longer path to the center. Iron breaks down severely, because vultures can’t fit through.

(2)Hitchhiker1.1.SCX. This map has a narrow direct path between the 2 mains, a ravine. It also has numerous destructible neutral buildings that open other paths. Steamhammer sometimes plays OK on this map, and sometimes gets a large army stuck trying to pass through neutral buildings.

(3)Alchemist1.0.scm. Each base has 2 entrances, and map is laid out in a loop so that the enemy might approach from either direction. Many bots cannot cope. Also, the map is poorly made and looks ugly.

(3)Plasma1.0.scx. An awesomely difficult map. The main bases are small, so not many buildings fit. The ramp down from each is narrow, so not all units can pass. The map is divided into sections which are separated by blocks of neutral zerg eggs. Workers can mineral walk through the eggs in either direction using handy minerals placed just beyond. Other units can be pushed through one at a time; otherwise, you have to destroy enough eggs to open a path. For the icing on the cake, the left-side egg block between the 2 left bases leaves an open path 1 walk tile wide, not wide enough for any unit to pass, but wide enough for Steamhammer to conclude that the bases are reachable from each other. “Oh, hey, this is not an island map!” it thinks. My hope is that Steamhammer will learn to go air and opponents will be even less able than it to come to grips with the map.

Arkanoid and BWTA

Regularly scheduled real world events are taking up some of my days.

I wanted to run a test on the map Arkanoid. It’s a concept map from 2006 with many destructible neutral buildings in blocking positions. Some of Steamhammer’s new code for the AIST maps should kick in, so I thought it would be a good test.

But the map crashed BWTA. I have to finish removing BWTA before I can test my own map code on Arkanoid. There is a disadvantage after all to my step by step replacement procedure.

how to specify island openings

By the way, I decided to implement this opening requires that map feature without defaults, like this: If the opening specifies a feature, like "island": "yes", then the feature value is required. If it doesn’t specify, then there is no default value; the map may have the feature or not, the opening doesn’t care. So far it’s as described before, and now I add one more idea: Island openings are playable on non-island maps. They are unlikely to be a good idea, but it will happen against some opponents (I proved it by test). Simply give them a low probability of being played. On an island map, everything else is disallowed, and you get an island opening. On a non-island map, you usually get a usual opening, but occasionally Steamhammer will try out an island opening to see if the opponent is weak to it.

Steamhammer and Sparkle

I’m still preparing for AIST, so expect Steamhammer to participate. The bot is going to struggle, though. There is not enough time to prepare it fully for the maps. Steamhammer will do well only if the other competitors are equally unprepared.

Sparkle is a genuinely difficult map. It requires specialized builds that are not right for any other map, which means that in the proper course of events I ought to delay work on it until Steamhammer can develop its own openings, which won’t be for a time yet. And the map has unique features that require special code. No matter how general I make the code, in practice it will apply to this map alone.

The high ground expansion on the island has zerg buildings that create creep. The creep is an issue for map analysis if you’re not zerg, because BWAPI doesn’t provide a way to find static creep on the map; you have to see it to know where it is, or figure out for yourself how it spreads. The high ground base also has a large crystal on top of the geyser. Any race can built a refinery of its type on the geyser, but the crystal blocks mining from anything other than a zerg extractor (well, you can mine if you glitch each worker through; a bot might be able to do it regularly, but it’s definitely not intended by the map design). Steamhammer is confused by the confusing features and isn’t able to take the base, even as zerg. The low ground expansion has a psi disruptor building on top of the geyser. To my surprise, on the AIST map version it’s also possible to build a refinery underneath the psi disruptor (I tested it by hand with the 3 races). I haven’t seen that in pro games, and assumed the building had to be torn down first. Steamhammer can build an extractor there. But no race can mine from the geyser until the psi disruptor is destroyed.

Yesterday I started on the skill of clearing the neutral buildings that clog up the second and third bases on each starting island. As matters stand, Steamhammer can mine only 1 of the 3 geysers that it should have access to, which leaves it ridiculously weak. The map analysis creates for each base a list of “blockers” that ought to be destroyed, which it outlines on the map in red if map info is turned on. Almost all maps have none. Fortunately the coding and testing only took a couple hours.

Only then did I think through the rest of the steps to implement the skill. There is updating the list of blockers as they are destroyed, of course. Before that is sending a squad to do the work... but hmm, the usual tactical getAttackLocation() only returns a location, not a unit to attack. In fact, Steamhammer doesn’t have any way to order a squad to destroy a unit! I have to create a new kind of squad order, implement it in the squad, and add the tactical analysis to decide when to use the order. It’s likely a day’s work to write and test and finish, more if I hit a snag.

Well, that’s too much effort to support a single map. On the other hand, most of the code is reusable for destroying buildings that block paths, a more common skill though low on my list. I’m still thinking about it. In the meantime, I’ll work on other skills. There’s not exactly a shortage.

ground connectivity code to share

Here is Steamhammer's new C++ MapPartitions class, which calculates ground connectivity. This is a donation to the community. Feel free to borrow it for your own bot, if you like. The download is a zip which contains 4 files: MapPartitions.cpp, MapPartitions.h, and 2 license files. The class contains some code derived from UAlbertaBot, so there is a UAlbertaBot license plus Steamhammer’s license. They are both MIT style licenses, which basically make no requirement beyond including the license file. (It’s irritating that the licensing considerations are as complex as the code, but that’s the world we live in.)

I’ll quote the comment describing it:

// Partition the map into connected walkable areas.
// The grain size is the walk tile, 8x8 pixels, the granularity the map provides.
// Unwalkable walk tiles are partition ID 0.
// Walkable partitions get partition IDs 1 and up.

// This class provides two features:
// 1. Walkability for all walk tiles, taking into account the immobile neutral
//    units at the start of the game.
// 2. Ground connectivity: What points are reachable by ground?

// If two walk tiles are in the same partition, it MIGHT be possible for a unit
// to walk between them. To know for sure, you have to find a path and verify
// that it is wide enough at every point for the unit to pass.
// If two walk tiles are not in the same partition, no unit can walk between them.

Concretely, the interface lets you directly test the walkability of a position, find the partition ID of a position, or check whether 2 positions are connected by ground. You can find out the total number of partitions (some maps have hundreds due to small holes), and you can draw partitions on the screen for debugging. There’s not that much to it.

A few notes:

  • There is a separate initialize() method that is not called by the constructor. You have to call it yourself, in or after your main onStart(). Depending on your use case, this is sometimes necessary to avoid making BWAPI calls before BWAPI is initialized itself.
  • Maps often have little side bits attached by a single walk tile. No unit is small enough to walk there, but this class doesn’t know it.
  • The little side bits are not important, at least not in Steamhammer’s play. Units don’t want to go there.
  • The class does not update when neutral units are destroyed, opening paths that used to be closed. But the walkability data structure is designed to be easy to update in that case.
  • This version is slightly different from Steamhammer’s code. I changed the error handling so that I could remove one last dependency and make it completely standalone (except for BWAPI, of course). Only a handful of lines are different.

I’ve suggested before that authors should package up reusable code as libraries. BWEM, BWEB, and FAP are great examples. MapPartitions is more modest. When I’ve looked at breaking out Steamhammer code, until now I’ve always felt that the parts were too integrated with each other, with too many dependencies. MapPartitions is the first exception. I hope some people find it useful.

this opening requires that map feature

Before the 1.4.x series is finished, Steamhammer will adapt its opening choices to the maps by experience, even when it faces an unknown opponent. In a tournament, it may also want to adapt immediately to an unfamiliar map, which means it will have to analyze the map for features that influence play, and it will need prior knowledge of which openings work for a map with those features. At first, hand coding will be the way to connect map features to opening choices. That will also make it reasonable to compete in AIST. It’s no fun to play on an island map like Sparkle without specialized island openings.

The topic came up in the comments to the post chokes and regions from February. Antiga proposed 3 map features he wanted to be able to take into account.

Here’s what I’m considering for the design.

  • Code the map feature preferences in the configuration file, where they are easy to change.
  • Attach preferences to the openings directly, not to the strategy mixes. The island openings will be marked good for islands on the opening, along with Race and OpeningGroup. Then they are included in the strategy mixes without further marks.
  • It needs to be kept simple. Something like “Require” : { “feature” : “value” }, where you can put any number of features between the braces. Each gets only one value, though, unless I make it possible for the value to be a list. Maybe “Avoid” instead of or in addition to “Require”.
  • Require would mean that all the given features are required. Avoid would mean that all the given features are to be avoided.
  • There should be at least one default value: Most openings are not suitable to play on an island map, and should be silently marked for no islands. Maybe there should be more defaults.

I may start with only a map feature, or only an island feature. Here are possible feature names and values for some features, including Antiga’s 3 features.

featurevaluesmeaning
map[map name]this string is in the map name
islandyes, nono 2 starting positions are connected by ground
main rampup, down, levelentrance to each main base
main choke width[number]main entrance must be no wider than this, in tiles
natural choke width[number]natural entrance must be no wider than this, in tiles

A lot more feature values might make sense. To cover all island maps, there should be features for the number of bases and the number of gases at each starting positition, and probably more features beyond that. There are a bunch of different kinds of semi-island maps, and maybe each kind should have its own value. Some are specialized: For example, Iron Curtain (designed as a 2v2 map) has 4 bases with a divider that (initially) separates it into 2 islands, each with 2 starting locations—in 1v1, you might start on the same island as your opponent, or you might not. The main ramp feature might have a value “multiple” for maps which have more than one entrance to the main. And of course there are always irregular Blizzard maps where each starting base may have entirely different features. These things are complications that should be minimized on a first pass.

To be concrete, you might declare an island opening like this. (Beware: I edited this up in less than a minute and didn’t test it. It is not a tuned opening.)

    "Island 2HatchMuta" : { "Race" : "Zerg", "Require" : { "island" : "yes" },
        "OpeningBuildOrder" : ["4 x drone", "overlord", "4 x drone", "hatchery", "spawning pool", "extractor", "7 x drone", "Lair", "drone", "metabolic boost", "2 x drone", "spire", "3 x drone", "hatchery", "drone", "extractor", "2 x overlord", "12 x mutalisk"] },

The 80-20 rule applies. Does this plan meet 80% of needs? What do you think?

AIST competition

Two big posts today! Antiga announced the AI Starcraft Tournament (AIST), Season 1, to be held next month. The tournament is to be played on the same professional maps as the ongoing Afreeca Starleague season 5, aka ASL5: The old map Gladiator and the new maps Sparkle, Third World, and Transistor.

I’m in favor of tournaments like this. The new maps present difficult challenges that Brood War bots have not faced before, and confronting them should force bots to become more robust and capable. The competition is labeled Season 1, so the intention is to hold more competitions in the same vein, with further tough maps. Over time, that should also impel bots to become more general and flexible. It’s good.

The deadline is soon! The submission deadline is 10 June, less than a month away. The new maps are ambitious targets for current bots, and I believe it will not be possible for authors to fully adapt their bots in time. I expect that participants will be taking shortcuts or accepting poor play.

trying out the maps

Should Steamhammer participate? The first part of the question is, can Steamhammer participate? Can it be adapted to the demanding professional maps before the deadline, or is the amount of work infeasible? I imagine I could do it if I rely on map-specific hacks (“if the map is named Sparkle, use this build order, kill this neutral building at this time, ...”), but I see hacks as wasted work that will have to be redone properly later. I want more general techniques to cope naturally with particular map features wherever they come up.

I tried the maps in test games to see what happens. In alphabetical order:

Gladiator was fine. Steamhammer played normally. It’s a classic map from 2010, and that is what I expected.

Sparkle, the island map, caused less trouble than I expected. Well, I expected a lot. I gave Steamhammer a game against the built-in AI (which can cope with islands), and made it ZvZ to be sure that it would go air. Drone scouting failed, obviously. The bot was unable to expand, even on its own island, and played the game with 1 base. It made a ton of zerglings (“it’s ZvZ, I know how to play this”) which had little use since they could not get off the island. The Recon squad is ground-only, so Steamhammer didn’t find enemy island expansions until after it reduced the enemy main. Steamhammer did finally win, though; the broken stuff was not absolutely essential. The problems are likely solvable by adding basic island skills, plus some map feature skills so it can recognize and take its own expansions.

Third World caused more trouble than I expected. I thought that play would ignore the “third world” upper left part of the map, since it is reachable only by drone mineral-walking tricks, and proceed normally on the resource-poor “first world” remainder. But no, again Steamhammer was unable to expand beyond its starting base. I don’t know why. Drone scouting again failed, apparently because BWTA failed to calculate regions, or did it in some way differently than Steamhammer expects (I didn’t dig into the cause). It’s hard to say how long it might take to debug and fix or work around the issues. Every use of BWTA has to be removed eventually, but this one was going to wait....

Transistor crashed Steamhammer’s new map analysis. I’ve tested the code on dozens of maps, from irregular Blizzard maps to intricate pro maps, and this is the first crash. The map doesn’t look technically difficult except for the weird crystals at the starting locations, and I had expected it would be OK. Likely it will turn out fine once I fix the crash.

My preliminary conclusion is that Steamhammer can play, but it will not be well adapted to the maps. I will have to spend time surviving tricky map features and won’t have much for thriving with the important play features like mineral-walking drones into the third world, or linking up island bases with nydus canals. The play features are what make it worthwhile, so I’m feeling hesitant. I’ll look into it more, though. This is only a first look, and there is more to find out.

How many participants will there be? How ready will they be? If people are saying “I suffer on these maps too, but it is still worth it” then it becomes self-fulfilling, it is still worth it.

some maps with special features

Some special map features and pro maps which display them. The examples are not exhaustive. There are more features and more maps with them!

This post is to point out how much knowledge a comprehensive Brood War bot needs. Every one of these maps calls for special knowledge to exploit the special feature, and often more knowledge to defend against exploitation of the feature. Hand-coding all this knowledge, if anybody ever does it, will be a long process. Gaining the knowlege by machine learning is tough too; that’s a research project. That is probably why, as far as I know, only 1 bot exploits 1 of these features—see “cliffable natural” below. The other map features are virgin ground.

I’m in favor of tournament organizers incorporating more maps with special features, as long as ignorant bots can still play on the maps without gross blunders. It will encourage bot authors to work on the hard problems. On the other hand, some of these maps are totally unplayable by current bots, which would be unfair to authors who can’t keep up, and makes year-over-year comparisons difficult.

cliffable natural - Lost Temple, Tau Cross
The natural can be attacked from above the cliff using drop. I’ve seen ICEbot take advantage on Tau Cross by dropping tanks on the cliff. I haven’t seen any other bot exploit the feature. Benzene has a similar feature: Tanks can be dropped outside the neutral buildings blocking the rear entrance, where they are in range of the natural mineral line and reachable by ground only by a long path (I’ve seen ICE do that too). No bot appears to know how to defend the cliff (use air units, or counterdrop, or place tanks below and do something to gain vision, such as float a building).

base exposed from outside - Jade, Moon Glaive
The edge of the main can be attacked from outside by ranged units over a barrier, without the need to bring an air unit or scan for vision. A bot with the right attack and defense skills would have an advantage. It is rare to see bots do that, and I’ve never seen one appear to intentionally seek an attack from outside.

back doors - Destination, Heartbreak Ridge
Your base has a rear entrance which the enemy can attack through with extra effort. On Destination, by a nearby mineral block that is easy to monitor. On Heartbreak Ridge, by a more distant mineral block. I have not seen any bot appear to intentionally take advantage of the rear entrances. Another map with a rear entrance is Bifrost, where nothing blocks the rear entrance but the path to reach it is long.

openable central paths - Detonation, Monty Hall
On Detonation, you can take a long path to the enemy, or you can mine out blocking minerals and take a direct path. Each side has a row of minerals (30 minerals per patch) that they can mine out to reach the center of the map. On Monty Hall, you have to mine out minerals to get a ground army to the enemy base at all, and there is a choice of 3 paths. Another example map is Arkanoid.

narrow entrances - 815, Blue Storm
Only small units can pass. 815 has a narrow ramp from the main; a dragoon or lurker or tank cannot go up or down. Blue Storm has a narrow entrance toward the center, and a wide entrance around the side with a longer path.

passable blocks - Gold Rush, Outsider, Plasma
Blocks which can be passed by pushing units through the minerals, or by mineral walking through. Generally, a player must do that to have a good chance. On Outsider, some of the mineral lines can be mined from either side, so there is a choice of where to place your base.

assimilator blocks - Gold Rush, Troy
Paths with double assimilators. Destroying the assimilators closes the path (except to ghosts, the narrowest unit).

no natural gas - Nostalgia, Korhal of Ceres
No vespene geyser in the natural expansion. Without a safe second gas, strategies are different. Korhal of Ceres includes other odd features, such as 2 entrances into the main.

neutral spells - Persona, Triathlon
Persona has permanent dark swarm spells cast over ramps and expansion mineral lines. Triathlon has neutral arbiters which cloak neutral zerg eggs which block the path to expansion bases (among other features).

maps with islands - 815, Namja Iyagi
These are regular maps with many islands. They’re playable by ignorant bots, but a bot with island skills would have an advantage. In the SSCAIT map pool, these maps have 2 islands each: Andromeda, Empire of the Sun, Python.

semi-island maps - Dream of Balhae, Indian Lament
Each player’s main is an island and the rest of the map is connected. You need to get drop quickly.

island maps - Charity, Paradoxxx
Strategies are very different from land maps.

new base placement code

Today I tested Steamhammer’s new base placement code, a major step in getting rid of BWTA2. There are still a couple of big bugs, but it works well most of the time. It’s getting close to ready.

As I mentioned when I first wrote about map analysis plans last June, Dave Churchill removed BWTA as a dependency from UAlbertaBot after Steamhammer forked from it. Newer UAlbertaBot versions do the necessary map analysis themselves, and when it comes to unnecessary map analysis, they simply delete some less important features that BWTA used to provide. I won’t delete features that add strength, but for the necessary features my plan has always been to borrow from UAlbertaBot.

Here’s how placing bases works in general. A base consists of a location for the resource depot, plus a set of minerals and vespene geysers belonging to the base (plus any other info you find useful). For starting positions that a player may begin the game in, the map specifies where the resource depot goes. BWAPI passes the information through. You still have to figure out which resources belong to the base. I had Steamhammer assign all the resources within a fixed distance to each starting base, and it works fine.

For other bases, software is on its own. First, group the resources on the map into clusters, expecting that each cluster will become a base location. You probably want to skip over blocking minerals and any clusters that don’t provide enough resources to be worth placing a base at, or at least handle them differently. Then, for each cluster, figure out the best place to put the resource depot so that mining will be efficient. Details matter, but it’s not complicated, at least if you ignore weird maps like Crystallis.

I wrote my own clustering, which is simpler than UAlbertaBot’s (though I wonder if I made it too simple and crude). For placing the resource depot, I followed UAlbertaBot’s way. UAlbertaBot provides 2 methods, one of which is commented out. The commented out method finds the center of the resources by averaging their locations. (Technically, it’s the centroid.) It then uses UAlbertaBot’s building placement code to find the nearest location to the center at which it is legal to build a resource depot—you have to be at a minimum distance from any minerals and gas. The building placement code calculates a spiral of tiles centered at the desired location and tries each one until it finds one that works.

The active method in UAlbertaBot, which I took for Steamhammer, is to find the center of the bounding box of the resources. That’s the desired location, and UAlbertaBot proceeds as above.

In practice, Steamhammer’s new code usually finds exactly the same base locations as BWTA. There are some exceptions. It finds 2 bases in the center base of Fighting Spirit (as some other bots do), which I think is due to a bug that assigns the same mineral patch to more than one base. I don’t expect it to be hard to fix.

Good progress so far.

the map Transistor

A few thoughts on the map Transistor after watching the ASL5 games today.

“Transistor” is a clever name for the map. On the one hand, the bases are laid out like the standard diagram of a transistor: Source, gate, drain. On the other hand, the middle “gate” base can act strategically as a gate that blocks or allows movement between the two other bases.

the map Transistor

The underlying idea of the map is to create strategic variety between games where both sides have corner bases and games where one side is in the middle base. If both sides have corner bases, the situation is symmetrical and balanced. If one player has the center base, the intent is that the 2 base positions will have offsetting advantages and disadvantages so that each player has different goals while neither has a big overall advantage. The center base is more vulnerable to harass, but is also in position to block access between the top and bottom halves of the map, achieving a favorable map split later in the game.

I’m not sure how successful the intent will turn out to be, but it is a sophisticated design. Map making has come a long way since Lost Temple.

Bots so far seem to be totally incapable of the strategic analysis or adaptation needed to play differently depending on the positions that the players end up in. Another map which is deliberately designed so that play varies depending on starting positions is Fantasy, a 4 player map in which each start location is laid out differently. When Fantasy was current, some pros played specialized strategies for specific starting positions.

Legionnaire’s analysis of Sparkle and Transistor

The planned post about strategy abstraction is delayed by a power outage at my house. Here’s a brief filler.

TeamLiquid has a post with analysis of new ASL maps Sparkle and Transistor by Australian protoss Legionnaire. Without drawing any strong conclusions about overall balance, Legionnaire points out how map features will affect play.

Current bots are poor at adapting to map features. More than that, it is beyond the state of the art for any AI system to adapt to maps with as few games as humans need. Humans reason out how map features affect play, and with experience they sharpen their reasoning. Machines, so far, mainly collect statistics about the course of events, and they need a vastly larger number of games to zero in on good strategy. Of course they may be able to play those many games faster, but we don’t know how to make a system that can combine reasoning with empirical learning like a human. I’m interested in Legionnaire’s expert analysis as an example that may offer clues.

adapting to the maps

Instead of configuring all of Steamhammer’s opening probabilities by hand, I want it to figure them out for itself. The starting point is data: For each matchup, keep overall statistics of all the openings in a file. Another goal is to have Steamhammer adapt its strategy to maps based on experience. So I thought, why not combine the two? For each matchup and map, keep a file with numbers for all the openings. Or for each matchup, keep a file for all the pairs (map, opening)—that way the bot has the data to generalize between maps.

Someday I also want Steamhammer to adapt its strategy reactions and its tactics to the map. At first it will analyze the map and decide what looks good (“look at that cliff over the mineral line—I should go air or drop”); later it will learn from experience what works well. I don’t expect to get to that for a long time, though.

Steamhammer has over 60 zerg openings (it doesn’t play all of them), and the count will increase. SSCAIT has 14 maps and other tournaments use fewer, so I think I should be ready for on the order of 1000 pairs (map, opening) if I keep them in one file. Each pair would be one line of data, something like “<opening> <map> <# games> <# wins>” and maybe a few more numbers like mean game length, or a statistical summary of evaluations once there is an evaluation function, or whatever else. If I want a cache of map data like number of starting positions and rush distances and so on, to use in generalizing across maps, that would be in a separate file.

In that case there would be 12 matchup files, including data for when the opponent went random: TvT TvP TvZ TvR, PvT PvP PvZ PvR, ZvT ZvP ZvZ ZvR. With up to 1000 lines per file, it seems like a reasonable amount of data. In every game, Steamhammer would read one file in onStart() and write it in onEnd(), which doesn’t seem excessive. There is one complication. If the opponent goes random, and after I give Steamhammer the ability to change its mind on the fly (which I will do), then when Steamhammer finds out the opponent’s race it may want to read that matchup file too. Reading and analyzing that much data may take more than one frame time, so it might have to go into a separate thread. Another solution for when the opponent goes random might be to read 4 matchup files during onStart() when we are allowed more time. Well, when it comes up I’ll figure out a plan. Maybe nothing special will be needed (seek time for a hard drive could exceed one frame time, but reading from SSD is faster).

That’s the data. How to use it? I haven’t decided on details. The opponent model keeps detailed records for each game against a given opponent, including the map. When we play the opponent for the first time, decisions have to be made without the opponent model, solely on the basis of the matchup+map+opening statistics. I’ll figure out a more-or-less sound way to turn the raw numbers into probability-to-play-this values, including an exploration policy. There are choices. After we’ve played an opponent many times, the opponent model will have more information (since it records more data, and it is specific to the opponent), so it can decide on its own. In between, I’ll need some kind of evidence combination procedure to blend the 2 sources of information together. I expect that a simple procedure would work fine, even weighted averaging of probabilities.

Steamhammer’s configuration file will become much shorter. I expect I’ll retain the manual configuration options for openings, for those bot authors who want to do it that way, but Steamhammer itself will rely on the data it collects. Once I have a good set, I’ll distribute it with the bot.

I’m not sure when I’ll get to all this stuff. Maybe or maybe not in the 1.4.x series.

Next: A tree of openings. It ties in.