Giter Site home page Giter Site logo

correlation-one / c1gamesstarterkit Goto Github PK

View Code? Open in Web Editor NEW
215.0 215.0 453.0 80.76 MB

Starter kit for new players of Terminal. Contains starter-algo and a basic CLI for running/debugging algo's locally.

License: Other

Shell 0.12% Python 31.69% PowerShell 0.11% Java 22.23% Rust 15.98% HTML 29.88%
c1games

c1gamesstarterkit's People

Contributors

876584635678890 avatar akababa avatar ayushzenith avatar b-sourabh avatar boombador avatar deeeemo avatar demorf avatar draevmm avatar frequentlymisseddeadlines avatar giskeimel-c1 avatar gretchenfrage avatar idraper avatar jmusacchio avatar jsciscoc1 avatar junaid-nom avatar junaidnom avatar justinlynchc1 avatar justinmlynch avatar k3kaw8pnf7mkmdsmphz27 avatar naalit avatar pelincetin avatar ravindu-work avatar ryan-mcpartlan avatar ryandraves avatar user202729 avatar whymustihaveaname avatar wolfi3654 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

c1gamesstarterkit's Issues

Error when running run_match.ps1 on Windows

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?

`java.io.IOException: No such file or directory`

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

Refund of Firewalls

Sorry, but i cant seem to find anywhere how to remove already placed firewalls, mind telling me?
I mean in code of course

Error compiling algo crate for Rust

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."

Attempt upgrade has a delay in the update of the GameMap object, attribute of GameState

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.

py -3 errors in powershell. python does not

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

run.ps1.txt

Website Issue

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 ..."

Spelling mistake in docs

Line 44, Column 17 of algos/starter-algo-ZIPME/gamelib/navigation.py
Says "tha", should be "the"

Java version mismatch

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?

Running the game locally not working

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": [
    ]
  }
}

Java Algo Upload Issue

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).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.