bb4 / bb4-games Goto Github PK
View Code? Open in Web Editor NEWA game playing framework and a collection of two-player and multi-player games. In all games, one or more intelligent computer opponents are allowed to play.
License: MIT License
A game playing framework and a collection of two-player and multi-player games. In all games, one or more intelligent computer opponents are allowed to play.
License: MIT License
Chinese checkers is a variant of Halma.
See http://en.wikipedia.org/wiki/Halma
Use score caching. Update the groups, but only update the eyes, territory, and static score if not in cache.
Something wrong with the Zobrist hashing in that different positions are getting the same hash key.
I turned off score caching until I can fix this.
I started to add this, but it is not working yet.
Just do it for the first 2 levels, since after that, things are too cramped.
Something off about these classes and they need tests
This is a form of vietnamese poker that I play all the time with my wife's family.
See http://en.wikipedia.org/wiki/Tien_len
This is a pretty straightforward mechanical change. I already did it for bb4-common.
change dependency in gradle file.
remove "extends from TestCase" in test classes.
Add @test annotation to test methods.
Use static import for assertTrue etc.
The original game had 20 pieces each. It might be good to allow anywhere from 5 to 25 pieces each as a config option.
No matter where you move, it says its not a valid move, but it does not detenct checkmate and end the game.
A two player game.
See http://en.wikipedia.org/wiki/Nine_Men's_Morris
While the computer calculates its next move, the rendering (which is in a separate thread) often draws a game board reflecting what the computer is thinking about. I used to think this was sort of a feature, but it can be distracting and confusing.
This is traditionally a two player game, but multi-player variants may be possible.
See https://en.wikipedia.org/wiki/Battleship_(game)
We have been playing this a lot lately.
For several games like checkers, chess, and mancala, it is important to show some animation of the piece from the old position to the new one.
Caching of a groups eyes should help performance.
It is currently turned off due to a possible bug.
It's important that the scoring be accurate.
I'm thinking of something like Lord of the Rings, but with simpler graphics.
There will be troop units composed of archers, knights, cavalry, pikemen, catapults, etc. There will be a matrix of attributes and how one type of unit has advantages/disadvantages when battling a different sort (like rock paper scissors in a way).
Players will direct their troops in real time.
This could potentially be adapted to play on a mobile device. Players can push their troops in different directions, or touch and hold to select, and then touch the desired destination.
It might be interesting to run in a mode where the computer can off the player advice on what might constitute a good next move, and why.
See http://en.wikipedia.org/wiki/Snake_(video_game)
This could easily be a multiplayer game, but maybe a two player version would be better to start with.
I believe that a computer can learn to play monopoly by using a hidden Markov chain to learn how to make decisions. It would be interesting to add a version of the game with human players that competed with AI players that used that model.
See https://web.williams.edu/Mathematics/sjmiller/public_html/hudson/Li_Markov%20Chains%20in%20the%20Game%20of%20Monopoly.pdf
and https://faculty.math.illinois.edu/~bishop/monopoly.pdf
Connect 4 is like 4 in a row, but you can only drop in pieces from the top.
Connect 4 is like 4 in a row, but you can only drop in pieces from the top.
For years I have been calling GoMoku Pente. The real Pente game allows you to capture pieces when two opponent pieces get sandwiched by two of your own.
See http://www.itsyourturn.com/t_helptopic2080.html
See http://en.wikipedia.org/wiki/Boggle
A computer player should use a dictionary to find all possible words.
Simple multiplayer game with dice.
http://cs.gettysburg.edu/projects/pig/piggame.html
In Peter Norvig's design of computer programs he shows a way to find the optimal strategy in lesson 5.
See http://en.wikipedia.org/wiki/Mancala
I believe this may be a solvable nim game (i.e. the player who goes first can be guaranteed a win) but I am not sure.
I tried a 9 x 19 board, but got
done loading resources
Exception in thread "AWT-EventQueue-2" java.lang.ArrayIndexOutOfBoundsException: 9
at com.barrybecker4.game.twoplayer.go.board.analysis.PositionalScoreArray.getValue(PositionalScoreArray.java:47)
at com.barrybecker4.game.twoplayer.go.board.analysis.PositionalScoreAnalyzer.determineScoreForPosition(PositionalScoreAnalyzer.java:46)
at com.barrybecker4.game.twoplayer.go.board.analysis.WorthCalculator.calculateWorth(WorthCalculator.java:108)
at com.barrybecker4.game.twoplayer.go.board.analysis.WorthCalculator.worth(WorthCalculator.java:50)
at com.barrybecker4.game.twoplayer.go.board.analysis.BoardEvaluator.worth(BoardEvaluator.java:49)
at com.barrybecker4.game.twoplayer.go.board.GoSearchable.worth(GoSearchable.java:143)
at com.barrybecker4.game.twoplayer.go.board.GoSearchable.worth(GoSearchable.java:22)
at com.barrybecker4.game.twoplayer.common.TwoPlayerController.manMoves(TwoPlayerController.java:283)
at com.barrybecker4.game.twoplayer.common.ui.AbstractTwoPlayerBoardViewer.manMoves(AbstractTwoPlayerBoardViewer.java:171)
at com.barrybecker4.game.twoplayer.common.ui.AbstractTwoPlayerBoardViewer.continuePlay(AbstractTwoPlayerBoardViewer.java:308)
at com.barrybecker4.game.twoplayer.go.ui.GoViewerMouseListener.processStonePlacement(GoViewerMouseListener.java:99)
at com.barrybecker4.game.twoplayer.go.ui.GoViewerMouseListener.mousePressed(GoViewerMouseListener.java:69)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
A two player game.
See http://en.wikipedia.org/wiki/Backgammon
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.