README
murygin / chess Goto Github PK
View Code? Open in Web Editor NEWAn online chessboard made with Spring, JSF 2 and Primefaces.
An online chessboard made with Spring, JSF 2 and Primefaces.
README
Add a documentation which is shown to users which are not logged in.
Use rule engine from Andreas Schildbach: http://code.google.com/p/de-schildbach-game/ to validate moves.
Currently email addresses with a '-' in domain name are not accepted.
Check if game is checkmate after a move. If so finish game and set state.
If the king is moving two squares towards a rook perform a castling.
Before performing the castling check if everything is valid:
king has never moved
rook involved has never moved
the squares between the king and the rook involved are not occupied
the king is not in check
the king does not cross over or end on a square in which it would be in check
See http://en.wikipedia.org/wiki/Castling for more details.
Add capability to finish games by resign or draw.
dm vs. Flux, game-id: 40, cloudbees DB
2013-11-21 08:09:33,465 DEBUG http-8677-10 - Next move: h5h8
2013-11-21 08:09:33,466 DEBUG http-8677-10 - Calculated next move: h5h8
2013-11-21 08:09:33,466 DEBUG http-8677-10 - Processing new move: Qh5xh8, FEN: r1bqk2r/2pp4/p1p3p1/5p1Q/4n3/2P5/PPP2PPP/R1B1R1K1 w kq - 0 23, game-id: 40
2013-11-21 08:09:33,821 ERROR http-8677-10 - Moving failed:
java.lang.IllegalStateException
at de.schildbach.game.chess.ChessRules.castle(ChessRules.java:581)
at de.schildbach.game.chess.ChessRules.potentialMovesForSource(ChessRules.java:503)
at de.schildbach.game.common.ChessLikeRules.allowedMoves(ChessLikeRules.java:133)
at org.n2.chess.beans.RuleService.parsePosition(RuleService.java:56)
at org.n2.chess.beans.BoardBean.move(BoardBean.java:154)
at org.n2.chess.beans.GameBean.doMove(GameBean.java:272)
at org.n2.chess.beans.GameBean.calculateMove(GameBean.java:250)
at sun.reflect.GeneratedMethodAccessor471.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at net.stax.appserver.webapp.RequestMonitorValve.invoke(RequestMonitorValve.java:35)
at net.stax.appserver.admin.StaxApplicationQueryValve.invoke(StaxApplicationQueryValve.java:49)
at net.stax.appserver.webapp.RequestSetupValve.invoke(RequestSetupValve.java:31)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:647)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Load login page automaticly after a session timeout.
Integrate flux engine to play with "computer".
Send a reminder when a game is finished. Don't send a reminder to player who finished the game himself.
dm vs. Flux, game-id: 40, cloudbees DB
2013-11-21 08:09:33,465 DEBUG http-8677-10 - Next move: h5h8
2013-11-21 08:09:33,466 DEBUG http-8677-10 - Calculated next move: h5h8
2013-11-21 08:09:33,466 DEBUG http-8677-10 - Processing new move: Qh5xh8, FEN: r1bqk2r/2pp4/p1p3p1/5p1Q/4n3/2P5/PPP2PPP/R1B1R1K1 w kq - 0 23, game-id: 40
2013-11-21 08:09:33,821 ERROR http-8677-10 - Moving failed:
java.lang.IllegalStateException
at de.schildbach.game.chess.ChessRules.castle(ChessRules.java:581)
at de.schildbach.game.chess.ChessRules.potentialMovesForSource(ChessRules.java:503)
at de.schildbach.game.common.ChessLikeRules.allowedMoves(ChessLikeRules.java:133)
at org.n2.chess.beans.RuleService.parsePosition(RuleService.java:56)
at org.n2.chess.beans.BoardBean.move(BoardBean.java:154)
at org.n2.chess.beans.GameBean.doMove(GameBean.java:272)
at org.n2.chess.beans.GameBean.calculateMove(GameBean.java:250)
at sun.reflect.GeneratedMethodAccessor471.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at net.stax.appserver.webapp.RequestMonitorValve.invoke(RequestMonitorValve.java:35)
at net.stax.appserver.admin.StaxApplicationQueryValve.invoke(StaxApplicationQueryValve.java:49)
at net.stax.appserver.webapp.RequestSetupValve.invoke(RequestSetupValve.java:31)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:647)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Add the capability to switch through the game history. Clicking on a move in the move list shows the position after the move.
When a user tries to create a game and enters an email address which does not exists show a notification.
Highlight last move on board with light green.
Show a notification when login failed.
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.