greerviau / snakeai Goto Github PK
View Code? Open in Web Editor NEWTrain a Neural Network to play Snake using a Genetic Algorithm
License: MIT License
Train a Neural Network to play Snake using a Genetic Algorithm
License: MIT License
Test
This issue was autogenerated by the Google Form for Features
testing
This issue was autogenerated by the Google Form for Features
test
This issue was autogenerated by the Google Form for Features
Thanks for sharing the great code!
I am working most of the time with PyTorch. My question is
How can I plug my PyTorch model
to your snake's brain?
test
This issue was autogenerated by the Google Form for Features
I wonder what will happen if there is added a input for 'hunger' ie. the longer after last apple, the hungrier the snake gets
Loading the saved .csv model file failed if we trained model with more generations than are weights in level L0.
Method in SnakeAI.pde:
void fileSelectedIn(File selection)
157:
while(genscore != 0)
it should be
while((genscore != 0) & (g<modelTable.getRowCount()-1))
E.g. For topology 1x4 we have 25x4 L0 weights => rows in saved output .csv file
If the simulation is performed for more than 100 generations (101) than 100th row in saved .csv file it will have in Graph column genscore<>0 and 101st row will not exist. An error exception will be thrown and the model will not be loaded.
It's just work around. In case we need a Graph of progress, the results of the score per generation should be saved in a separate file.
I was wondering what is the value of input when food is not found in specific direction? Is is 0 by default?
Windows 10
A file is created but its size is 0 Kb and the error bellow appears in console
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at processing.core.PApplet.selectCallback(PApplet.java:6719)
at processing.core.PApplet.access$1(PApplet.java:6712)
at processing.core.PApplet$4.run(PApplet.java:6623)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.IllegalArgumentException: No extension specified for saving this Table
at processing.data.Table.save(Table.java:1184)
at processing.data.Table.save(Table.java:1175)
at processing.core.PApplet.saveTable(PApplet.java:6299)
at processing.core.PApplet.saveTable(PApplet.java:6276)
at SnakeAI.fileSelectedOut(SnakeAI.java:226)
... 21 more
The "save as" dialog should automatically add the .csv extension
Test
This issue was autogenerated by the Google Form for Features
Build a snake bot and compete with other developers
https://github.com/battlesnakeio
I really wonder what happens if you add one more input neuron that represents size of the snake. If the size also be taken into account, better strategies will be developed, i hope.
Testing
This issue was autogenerated by the Google Form for Features
For the diagonal directions, it seems your distance calculation is wrong, it might be the correct distance as the crow flies, but you cannot walk like that in Manhattan (nor in Snake). The distance is the sum of the absolute differences of the x's and the y's (whether you go zig-zag or not makes no difference).
boolean foodCollide(float x, float y) { //check if a position collides with the food
if(x == food.pos.x && y == food.pos.y) {
return true;
}
return false;
}
What about:
boolean foodCollide(float x, float y) { //check if a position collides with the food
return x == food.pos.x && y == food.pos.y;
}
Otherwise cool!
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.