correlation-one / c1gamesstarterkit Goto Github PK
View Code? Open in Web Editor NEWStarter kit for new players of Terminal. Contains starter-algo and a basic CLI for running/debugging algo's locally.
License: Other
Starter kit for new players of Terminal. Contains starter-algo and a basic CLI for running/debugging algo's locally.
License: Other
The readme of the java starterkit has no syntax highliting.
I have Windows 7 64bit with JRE and JDK both 10.0.2 and Python 3.6.6. When i try to run scripts\run_match.ps1 algos\starter-algo algos\starter-algo in PowerShell i get this output:
p1:
algos\starter-algo\run.ps1
p2:
algos\starter-algo\run.ps1
Starting Engine
Starting single worker game.
algos\starter-algo\run.ps1
algos\starter-algo\run.ps1
Saving replay: D:\NICU\C1GamesStarterKit-master\replays\p1-04-10-2018-22-46-49-1538682409900-60714274.replay
P1 Name: starter-algo
P2 Name: starter-algo
Starting turn: 0
SAPlayer 1 starter-algo: Split-Path : Cannot bind argument to parameter 'Path' because it is null.
SAPlayer 1 starter-algo: At D:\NICU\C1GamesStarterKit-master\algos\starter-algo\run.ps1:1 char:25
SAPlayer 1 starter-algo: + $scriptPath = Split-Path <<<< -parent $PSCommandPath;
SAPlayer 1 starter-algo: + CategoryInfo : InvalidData: (:) [Split-Path], ParameterBindingV
SAPlayer 1 starter-algo: alidationException
SAPlayer 1 starter-algo: + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,M
SAPlayer 1 starter-algo: icrosoft.PowerShell.Commands.SplitPathCommand
SAPlayer 1 starter-algo:
SAPlayer 2 starter-algo: Split-Path : Cannot bind argument to parameter 'Path' because it is null.
SAPlayer 2 starter-algo: At D:\NICU\C1GamesStarterKit-master\algos\starter-algo\run.ps1:1 char:25
SAPlayer 2 starter-algo: + $scriptPath = Split-Path <<<< -parent $PSCommandPath;
SAPlayer 2 starter-algo: + CategoryInfo : InvalidData: (:) [Split-Path], ParameterBindingV
SAPlayer 2 starter-algo: alidationException
SAPlayer 2 starter-algo: + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,M
SAPlayer 2 starter-algo: icrosoft.PowerShell.Commands.SplitPathCommand
SAPlayer 2 starter-algo:
timed out
timed out
Last state:
Last state:
{"p2Units":[[],[],[],[],[],[],[]],"turnInfo":[0,0,-1],"p1Stats":[30.0,25.0,5.0,0],"p1Units":[[],[],[],[],[],[],[]],"p2St
ats":[30.0,25.0,5.0,0],"events":{"selfDestruct":[],"breach":[],"damage":[],"shield":[],"move":[],"spawn":[],"death":[],"
attack":[],"melee":[]}}
{"p2Units":[[],[],[],[],[],[],[]],"turnInfo":[0,0,-1],"p1Stats":[30.0,25.0,5.0,0],"p1Units":[[],[],[],[],[],[],[]],"p2St
ats":[30.0,25.0,5.0,0],"events":{"selfDestruct":[],"breach":[],"damage":[],"shield":[],"move":[],"spawn":[],"death":[],"
attack":[],"melee":[]}}
Player0 punished because took too long. Time (ms): 51519 Dmg: 31
Player1 punished because took too long. Time (ms): 51440 Dmg: 31
Winner (p1 perspective, 1 = p1 2 = p2): 2
PLAYER 2 WINS!
Waiting to exit finished game.
sent game end playerIndex: 0
sent game end playerIndex: 1
sent game end playerIndex: 0
SAPlayer 2 starter-algo: C:\Program Files\Python36\python.exe: can't open file '\algo_strategy.py': [Errno 2] No such fi
le or directory
sent game end playerIndex: 1
Done waiting now exiting finished game.
Hard Exiting Now
Closing stream
freeze 3644java.io.IOException: Cannot run program "kill": CreateProcess error=2, Sistemul nu poate găsi fi?ierul specif
icat
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at util.ProcessUtil.freezeProcessTree(ProcessUtil.java:23)
at util.ProcessUtil.killRecursive(ProcessUtil.java:11)
at towergame.gamecore.player.SimpleAlgoPlayer.close(SimpleAlgoPlayer.java:201)
at towergame.gamecore.player.PlayerManager.closeAllPlayers(PlayerManager.java:36)
at towergame.GameMain.processEndGame(GameMain.java:547)
at towergame.GameMain.runLoop(GameMain.java:401)
at towergame.GameMain.startGame(GameMain.java:202)
at towergame.GameMain.main(GameMain.java:175)
at towerworker.TowerWorker.main(TowerWorker.java:78)
Caused by: java.io.IOException: CreateProcess error=2, Sistemul nu poate găsi fi?ierul specificat
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
at java.base/java.lang.ProcessImpl.start(Unknown Source)
... 14 more
kill 3644
Closing playerIndex: 0
Closing stream
freeze 3244java.io.IOException: Cannot run program "kill": CreateProcess error=2, Sistemul nu poate găsi fi?ierul specif
icat
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at util.ProcessUtil.freezeProcessTree(ProcessUtil.java:23)
at util.ProcessUtil.killRecursive(ProcessUtil.java:11)
at towergame.gamecore.player.SimpleAlgoPlayer.close(SimpleAlgoPlayer.java:201)
at towergame.gamecore.player.PlayerManager.closeAllPlayers(PlayerManager.java:36)
at towergame.GameMain.processEndGame(GameMain.java:547)
at towergame.GameMain.runLoop(GameMain.java:401)
at towergame.GameMain.startGame(GameMain.java:202)
at towergame.GameMain.main(GameMain.java:175)
at towerworker.TowerWorker.main(TowerWorker.java:78)
Caused by: java.io.IOException: CreateProcess error=2, Sistemul nu poate găsi fi?ierul specificat
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
at java.base/java.lang.ProcessImpl.start(Unknown Source)
... 14 more
kill 3244
Closing playerIndex: 1
Exited for loop
End of main
Closing stream
freeze 3644java.io.IOException: Cannot run program "kill": CreateProcess error=2, Sistemul nu poate găsi fi?ierul specif
icat
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at util.ProcessUtil.freezeProcessTree(ProcessUtil.java:23)
at util.ProcessUtil.killRecursive(ProcessUtil.java:11)
at towergame.gamecore.player.SimpleAlgoPlayer.close(SimpleAlgoPlayer.java:201)
at towergame.GameMain.main(GameMain.java:177)
at towerworker.TowerWorker.main(TowerWorker.java:78)
Caused by: java.io.IOException: CreateProcess error=2, Sistemul nu poate găsi fi?ierul specificat
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
at java.base/java.lang.ProcessImpl.start(Unknown Source)
... 10 more
kill 3644
Closing stream
freeze 3244java.io.IOException: Cannot run program "kill": CreateProcess error=2, Sistemul nu poate găsi fi?ierul specif
icat
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at util.ProcessUtil.freezeProcessTree(ProcessUtil.java:23)
at util.ProcessUtil.killRecursive(ProcessUtil.java:11)
at towergame.gamecore.player.SimpleAlgoPlayer.close(SimpleAlgoPlayer.java:201)
at towergame.GameMain.main(GameMain.java:178)
at towerworker.TowerWorker.main(TowerWorker.java:78)
Caused by: java.io.IOException: CreateProcess error=2, Sistemul nu poate găsi fi?ierul specificat
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
at java.base/java.lang.ProcessImpl.start(Unknown Source)
... 10 more
kill 3244
How can i fix this so i can run tests on my machine?
I am encountering the following error
❯ python3 ./scripts/run_match.py python-algo/algo-target python-algo/algo-target
Is windows: False
Algo 1: python-algo/algo-target/run.sh
Algo 2: python-algo/algo-target/run.sh
Start run a match
Starting Engine: August_17_2020
Starting single worker game.
Looking for Config file at:
/Users/matteosantamaria/C1GamesStarterKit/game-configs.json
python-algo/algo-target/run.sh
python-algo/algo-target/run.sh
Error on simple algo process creation
java.io.IOException: No such file or directory
at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.base/java.io.File.createNewFile(File.java:1035)
at com.c1games.terminal.game.player.SimpleAlgoPlayer.<init>(SimpleAlgoPlayer.java:63)
at com.c1games.terminal.game.player.PlayerManager.setupPlayerFromCommandString(PlayerManager.java:101)
at com.c1games.terminal.game.GameMain.main(GameMain.java:124)
at com.c1games.terminal.Terminal.main(Terminal.java:141)
Algo Crashed. Crash: true !processIsAlive: null
AlgoIndex 0 crashed bootup: python-algo/algo-target/run.sh
Error on simple algo process creation
java.io.IOException: No such file or directory
at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.base/java.io.File.createNewFile(File.java:1035)
at com.c1games.terminal.game.player.SimpleAlgoPlayer.<init>(SimpleAlgoPlayer.java:63)
at com.c1games.terminal.game.player.PlayerManager.setupPlayerFromCommandString(PlayerManager.java:101)
at com.c1games.terminal.game.GameMain.main(GameMain.java:125)
at com.c1games.terminal.Terminal.main(Terminal.java:141)
Algo Crashed. Crash: true !processIsAlive: null
AlgoIndex 1 crashed bootup: python-algo/algo-target/run.sh
Saving replay: /Users/matteosantamaria/C1GamesStarterKit/replays/p1-19-01-2023-09-56-30-1674150990680-260374981.replay
P1 Name: FailedToLoad seasonMode:5
P2 Name: FailedToLoad seasonMode:5
Waiting for: 3000 before starting first turn.
Done waiting starting first turn.
Winner (p1 perspective, 1 = p1 2 = p2): 2
Waiting to exit finished game.
sent game end playerIndex: 0
sent game end playerIndex: 1
sent game end playerIndex: 0
sent game end playerIndex: 1
Done waiting now exiting finished game.
Hard Exiting Now
Closing playerIndex: 0
Closing playerIndex: 1
Exited for loop
End of main
Finished running match
Sorry, but i cant seem to find anywhere how to remove already placed firewalls, mind telling me?
I mean in code of course
When ever I try to build my algo using build_local.py. I get these errors from the compiler. From my understanding. This seems to be in the algo library it's self (correct me if I'm wrong).
OS: Linux
Excepted: Compiled binary
" Compiling algo v0.1.0 (/home/kittytechno/Downloads/C1GamesStarterKit-master/rust-algo/algo)
error[E0599]: no function or associated item named info_units
found for struct map::MapTileInner
in the current scope
--> algo/src/map/mod.rs:281:25
|
78 | pub struct MapTileInner {
| ----------------------- function or associated item info_units
not found for this
...
281 | } else if Self::info_units(c, map).len() > 0 {
| ^^^^^^^^^^ function or associated item not found in map::MapTileInner
error[E0599]: no method named into_info
found for enum units::SpawnableUnitType
in the current scope
--> algo/src/map/mod.rs:377:42
|
377 | unit_type: unit_type.into_info().unwrap(),
| ^^^^^^^^^ method not found in units::SpawnableUnitType
|
::: algo/src/units.rs:143:1
|
143 | pub enum SpawnableUnitType {
| -------------------------- method into_info
not found for this
error[E0609]: no field Demolisher
on type &PlayerUnits
--> algo/src/map/parse.rs:30:54
|
30 | MobileUnitType::Demolisher => &units.Demolisher,
| ^^^^^^^^^^ help: a field with a similar name exists: demolisher
error: aborting due to 3 previous errors
Some errors have detailed explanations: E0599, E0609.
For more information about an error, try rustc --explain E0599
.
error: could not compile algo
To learn more, run the command again with --verbose.
Traceback (most recent call last):
File "/home/kittytechno/Downloads/C1GamesStarterKit-master/rust-algo/build_local.py", line 88, in
result = compile_rust()
File "/home/kittytechno/Downloads/C1GamesStarterKit-master/rust-algo/build_local.py", line 57, in compile_rust
subprocess.check_output(command)
File "/usr/lib/python3.9/subprocess.py", line 420, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.9/subprocess.py", line 524, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['cargo', 'build', '--package', 'starter-algo', '--bin', 'starter-algo']' returned non-zero exit status 101."
Minimal Reproducible Example:
game_state.attempt_spawn(WALL, [3, 12])
gamelib.debug_write(game_state.game_map[3, 12])
game_state.attempt_upgrade([3, 12])
gamelib.debug_write(game_state.game_map[3, 12])
We would expect:
SAPlayer 1 python-algo-romain-2: ---------------- Starting Your Algo --------------------
SAPlayer 1 python-algo-romain-2: [Friendly FF, health: 60.0 location: [3, 12] removal: upgrade: False ]
SAPlayer 1 python-algo-romain-2: [Friendly FF, health: 120.0 location: [3, 12] removal: upgrade: True ]
But we get:
SAPlayer 1 python-algo-romain-2: ---------------- Starting Your Algo --------------------
SAPlayer 1 python-algo-romain-2: [Friendly FF, health: 60.0 location: [3, 12] removal: upgrade: False ]
SAPlayer 1 python-algo-romain-2: [Friendly FF, health: 60.0 location: [3, 12] removal: upgrade: True ]
Boolean upgrade
is updated but not health
. However, if you wait for one turn, the health
attribute of the GameUnit
object stored in the _GameMap__map
list
of list
of list
of GameUnit
does get updated.
Description: I've had to modify all my run.ps1
files in my algos so that instead of saying py -3 $algoPath
they say python $algoPath
. This is because powershell runs python as python and not py -3. I installed it using powershell (although I have anaconda set up elsewhere), without modifying anything.
If this is reproducable (or at least, switching to python
it continues to work) then it might be worth updating the run.ps1
files.
Expected Result: py -3
starts python as expected.
Actual Result: Error crashes the program.
py : The term 'py' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ py -3
+ ~~
+ CategoryInfo : ObjectNotFound: (py:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggested Solution: switch py -3
to python
no other changes necessary.
Steps to reproduce: As described above. Easiest test is attempt to run py -3
in powershell. Then run python
.
OS: Windows 10
For the [Rules & Docs] website, following the figure under 'Game Start' depicting Player resources and Health (which should be 'Player resources and Health'), the next bit of text starts with 'Your can see each ...", which should be 'You can see each ..."
Make a open-source playground. So we can view the replay file offline. Thanks
Line 44, Column 17 of algos/starter-algo-ZIPME/gamelib/navigation.py
Says "tha", should be "the"
I am getting the error
❯ python3 ./scripts/run_match.py python-algo/algo-target python-algo/algo-target
Is windows: False
Algo 1: python-algo/algo-target/run.sh
Algo 2: python-algo/algo-target/run.sh
Start run a match
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/c1games/terminal/Terminal has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:620)
Finished running match
I am running on Mac M1, how can I fix this?
EDIT: I'm using the latest version of the JDK.
EDIT: I see that this is likely a GSON error to do with the way it reads the JSON file. I've never used GSON before so I don't really know where to start looking. Again, any and all help appreciated.
I'm writing my algorithm in python on windows.
p1-20-10-2020-13-23-49-1603196629720-2003786728.txt
Above is the replay file of the game (converted from .replay
to .txt
).
I hope above and below is enough detail for you to help. If any additional detail is required please do say.
I'm running my algos from run_match.py
here is a normal console out until we start just getting errors the error (I haven't yet been able to make it run correctly):
C:\Users\nopeyoudontgettoseemyname\AppData\Local\Continuum\anaconda3\python.exe C:/Users/nopeyoudontgettoseemyname/PycharmProjects/C1GamesStarterKit-master/scripts/run_match.py
Is windows: True
Algo 1: C:\Users\nopeyoudontgettoseemyname\PycharmProjects\C1GamesStarterKit-master\python-algo\run.ps1
Algo 2: C:\Users\nopeyoudontgettoseemyname\PycharmProjects\C1GamesStarterKit-master\python-algo\run.ps1
Start run a match
Starting Engine: August_17_2020
Starting single worker game.
Looking for Config file at:
C:\Users\nopeyoudontgettoseemyname\PycharmProjects\C1GamesStarterKit-master/game-configs.json
C:\Users\nopeyoudontgettoseemyname\PycharmProjects\C1GamesStarterKit-master\python-algo\run.ps1
C:\Users\nopeyoudontgettoseemyname\PycharmProjects\C1GamesStarterKit-master\python-algo\run.ps1
Saving replay: C:\Users\nopeyoudontgettoseemyname\PycharmProjects\C1GamesStarterKit-master\replays\p1-20-10-2020-13-23-49-1603196629720-2003786728.replay
P1 Name: python-algo seasonMode:7
P2 Name: python-algo seasonMode:7
Waiting for: 3000 before starting first turn.
Done waiting starting first turn.
Here's the first error. The rest are in a similar style. I'm not familiar with java so I don't really know how to fix this, any and all help appreciated:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
at com.google.gson.Gson.fromJson(Gson.java:899)
at com.google.gson.Gson.fromJson(Gson.java:852)
at com.google.gson.Gson.fromJson(Gson.java:801)
at com.c1games.terminal.game.Parser.processInputForPlayer(Parser.java:131)
at com.c1games.terminal.game.Parser.processInputBuild(Parser.java:115)
at com.c1games.terminal.game.GameMain.runLoop(GameMain.java:318)
at com.c1games.terminal.game.GameMain.startGame(GameMain.java:175)
at com.c1games.terminal.game.GameMain.main(GameMain.java:150)
at com.c1games.terminal.Terminal.main(Terminal.java:141)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:350)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
at com.google.gson.Gson.fromJson(Gson.java:887)
... 8 more
Invalid command, couldn't json for player 1 : {"p2Units":[[],[],[],[],[],[],[],[]],"turnInfo":[0,99,-1,198],"p1Stats":[40.0,515.0,55.8,12],"p1Units":[[],[],[],[],[],[],[],[]],"p2Stats":[40.0,515.0,55.8,13],"events":{"selfDestruct":[],"breach":[],"damage":[],"shield":[],"move":[],"spawn":[],"death":[],"attack":[],"melee":[]}}
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
at com.google.gson.Gson.fromJson(Gson.java:899)
at com.google.gson.Gson.fromJson(Gson.java:852)
at com.google.gson.Gson.fromJson(Gson.java:801)
at com.c1games.terminal.game.Parser.processInputForPlayer(Parser.java:131)
at com.c1games.terminal.game.Parser.processInputDeploy(Parser.java:239)
at com.c1games.terminal.game.GameMain.runLoop(GameMain.java:324)
at com.c1games.terminal.game.GameMain.startGame(GameMain.java:175)
at com.c1games.terminal.game.GameMain.main(GameMain.java:150)
at com.c1games.terminal.Terminal.main(Terminal.java:141)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:350)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
at com.google.gson.Gson.fromJson(Gson.java:887)
... 8 more
Winner (p1 perspective, 1 = p1 2 = p2): 2
Waiting to exit finished game.
sent game end playerIndex: 0
sent game end playerIndex: 1
sent game end playerIndex: 0
sent game end playerIndex: 1
Done waiting now exiting finished game.
Hard Exiting Now
Closing stream
Closing playerIndex: 0
Closing stream
Closing playerIndex: 1
Exited for loop
End of main
Closing stream
Closing stream
Finished running match
Process finished with exit code 0
I'm also using a modified game-configs.json
(modified to do what I hope is make it compatible with season 7 (rather than season 3 which it came with)) file. I thought changing it might fix the issue, but the error was the same before and after the changes (if any of the changes I've made here are going to cause problems please do say.):
{
"seasonCompatibilityModeP1": 7,
"seasonCompatibilityModeP2": 7,
"debug":{
"printMapString":false,
"printTStrings":false,
"printActStrings":false,
"printHitStrings":false,
"printPlayerInputStrings":false,
"printBotErrors":true,
"printPlayerGetHitStrings":false
},
"unitInformation": [
{
"icon": "S7_wall",
"iconxScale": 0.4,
"iconyScale": 0.4,
"cost1": 1.0,
"getHitRadius":0.01,
"display":"wall",
"shorthand":"WALL",
"startHealth":75.0,
"unitCategory": 0,
"refundPercentage": 0.75,
"turnsRequiredToRemove": 1,
"upgrade": {
"startHealth": 150.0
}
},
{
"icon": "S7_factory",
"iconxScale": 0.5,
"iconyScale": 0.5,
"cost1":4.0,
"getHitRadius":0.01,
"display":"factory",
"shieldRange":0,
"shorthand":"FACTORY",
"startHealth":30.0,
"unitCategory": 0,
"refundPercentage": 0.75,
"turnsRequiredToRemove": 1,
"generatesResource1": 1,
"upgrade": {
"generatesResource2": 1
}
},
{
"icon": "S7_turret",
"iconxScale": 0.5,
"iconyScale": 0.5,
"attackDamageWalker":5.0,
"cost1":2.0,
"getHitRadius":0.01,
"display":"turret",
"attackRange":2.5,
"shorthand":"TURRET",
"startHealth":90.0,
"unitCategory": 0,
"refundPercentage": 0.75,
"turnsRequiredToRemove": 1,
"upgrade": {
"cost1": 4.0,
"attackRange":3.5,
"attackDamageWalker":15.0
}
},
{
"icon": "S7_scout",
"iconxScale": 0.7,
"iconyScale": 0.7,
"attackDamageTower":2.0,
"attackDamageWalker":2.0,
"playerBreachDamage":1.0,
"cost2":1.0,
"getHitRadius":0.01,
"display":"scout",
"attackRange":3.5,
"shorthand":"SCOUT",
"startHealth":15.0,
"speed":1,
"unitCategory": 1,
"selfDestructDamageWalker": 15.0,
"selfDestructDamageTower": 15.0,
"metalForBreach": 1.0,
"selfDestructRange": 1.5,
"selfDestructStepsRequired": 5
},
{
"icon": "S7_demolisher",
"iconxScale": 0.47,
"iconyScale": 0.47,
"attackDamageWalker":6.0,
"attackDamageTower":6.0,
"playerBreachDamage":1.0,
"cost2":3.0,
"getHitRadius":0.01,
"display":"interceptor",
"attackRange":4.5,
"shorthand":"INTERCEPTOR",
"startHealth":5.0,
"speed":0.5,
"unitCategory": 1,
"selfDestructDamageWalker": 5.0,
"selfDestructDamageTower": 5.0,
"metalForBreach": 1.0,
"selfDestructRange": 1.5,
"selfDestructStepsRequired": 5
},
{
"icon": "S7_interceptor",
"iconxScale": 0.5,
"iconyScale": 0.5,
"attackDamageWalker":20.0,
"playerBreachDamage":1.0,
"cost2":1.0,
"getHitRadius":0.01,
"display":"interceptor",
"attackRange":3.5,
"shorthand":"INTERCEPTOR",
"startHealth":40.0,
"speed":0.25,
"unitCategory": 1,
"selfDestructDamageWalker": 40.0,
"selfDestructDamageTower": 40.0,
"metalForBreach": 1.0,
"selfDestructRange": 1.5,
"selfDestructStepsRequired": 5
},
{
"display":"Remove",
"shorthand":"RM",
"icon": "S7_removal",
"iconxScale": 0.4,
"iconyScale": 0.4
},
{
"display":"Upgrade",
"shorthand":"UP",
"icon": "S7_upgrade",
"iconxScale": 0.4,
"iconyScale": 0.4
}
],
"timingAndReplay":{
"waitTimeBotMax":35000,
"playWaitTimeBotMax":40000,
"waitTimeManual":1820000,
"waitForever":false,
"waitTimeBotSoft":5000,
"playWaitTimeBotSoft":10000,
"replaySave":1,
"playReplaySave":0,
"storeBotTimes":true,
"waitTimeStartGame":3000,
"waitTimeEndGame":3000
},
"resources":{
"turnIntervalForBitCapSchedule":10,
"turnIntervalForBitSchedule":10,
"bitRampBitCapGrowthRate":5.0,
"roundStartBitRamp":10,
"bitGrowthRate":1.0,
"startingHP":40.0,
"maxBits":150.0,
"bitsPerRound":5.0,
"coresPerRound":5.0,
"coresForPlayerDamage":1.0,
"startingBits":5.0,
"bitDecayPerRound":0.25,
"startingCores":20.0
},
"misc":{
"numBlockedLocations": 0,
"blockedLocations": [
]
}
}
We can only use BY HAND
vs BY HAND
in the playground. Playing with BOSSES
or our algo will make the webpage crash as indicated by the following figure.
The same problem was mentioned on Jan 9th on the forum.
Everywhere else spaces are used, so this is a syntax error.
The first line to add in java-algo should be move.attemptSpawnMultiple(Arrays.asList(new Coords[]{new Coords(24,10), new Coords(24,10), new Coords(24,10)}), UnitType.Demolisher); (there's a typo with Demolisher being DEMOLISHER). Doesn't work (might help someone).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.