Functioning chess game with an AI you can play against.
wood101 / chessaitiralab Goto Github PK
View Code? Open in Web Editor NEWChess AI for a Helsinki University course
Chess AI for a Helsinki University course
Functioning chess game with an AI you can play against.
Projekti ladattu 1.10 n. klo 13.15
Pitäisikö projektiin lisätä tasapelin mahdollisuus. Ainakin kolminkertainen toisto-tasapeli ei mahdollinen. Entäpä muut tasapelin tapaukset?
TestFoolsMate testi epäonnistuu (ainakin minulla ajaessa). Varmaankin virhe assertEqualsin syntaksien kanssa. (Failed tests: testFoolsMate(AITest): expected: but was:fi.helsinki.chessai.board.MoveTransition@6bd61f98)
Mielestäni koodi on erittäin selkeästi ja johdonmukaisesti kirjoitettu sekä dokumentoitu. Siihen en osaa antaa parannusehdotuksia. Todella hieno työ.
Yritin pelata AI:ta vastaan. 6 vuoron jälkeen antoi NullPointerExceptionin pelattuani vuoroni ja AI lakkasi pelaamasta, eikä pysty manuaalisestikaan pelata vihollisen/AI:n vuoroa? Lopussa pikku pätkä lokista. En mielestäni tehnyt mitään ihmeellistä/laitonta/rikkovaa peliä. En valitettavasti saanut replikoitua tilannetta kunnolla. (En oikein tämän asian kanssa osaa valitettavasti auttaa vaan tämä oli pikemminkin vain huomio.) Toisessakin tapauksessa tuli ensimmäisen vuoron jälkeen nullpointerexception ja peli jää jumiin. En tiedä oletko tietoinen juuri näistä bugeista, mutta kuitenkin tiedoksi varmuuden varalta.
Pelatessa valkoisella (vs Depth lvl 6 AI. Suluissa mustan vuorot) vuorot: e2->e4, (e7->e5,) e1->e2, (d8->h4,) e2->e4, (h4->f4) tilanteessa. Nyt jos kuninkaalla yrittää 'syödä' (rämpätä) mustan kuningatarta, niin peli saattaa mennä tilttiin siten, että kuningatar syö kuninkaan, ilman että valkoinen tekee validia vuoroa ollenkaan. (ja vuoro vain jotenkin mystisesti katoaa?) Tämän bugin onnistuin toistamaan.
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at javax.swing.SwingWorker.get(SwingWorker.java:602)
at fi.helsinki.chessai.gui.Table$AIThinkTank.done(Table.java:230)
at javax.swing.SwingWorker$5.run(SwingWorker.java:737)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832)
at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842)
at javax.swing.Timer.fireActionPerformed(Timer.java:313)
at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
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)
Exception in thread "main" java.lang.ExceptionInInitializerError
at fi.helsinki.chessai.Chess.main(Chess.java:15)
Caused by: java.lang.NullPointerException
at fi.helsinki.chessai.gui.Table$TilePanel.assignTilePieceIcon(Table.java:439)
at fi.helsinki.chessai.gui.Table$TilePanel.<init>(Table.java:329)
at fi.helsinki.chessai.gui.Table$BoardPanel.<init>(Table.java:288)
at fi.helsinki.chessai.gui.Table.<init>(Table.java:71)
at fi.helsinki.chessai.gui.Table.<clinit>(Table.java:58)
... 1 more
Unfortunately I am not familiar enough with the code or with Java to debug this, so I had to stop there. Due to this problem, all of my tests are failing too.
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.