| <html> | |
| <head> | |
| <title>Start a game</title> | |
| <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> | |
| <link rel="stylesheet" type="text/css" href="./style.css"> | |
| </head> | |
| <body> | |
| <h1>Pawns Game</h1> | |
| <div class="start"> | |
| <a class="start" href="http://www.org.eclipse.swt.examples.browser.demos.pawns/actionstart1player">1 player</a> | |
| <a class="start" href="http://www.org.eclipse.swt.examples.browser.demos.pawns/actionstart2players">2 players</a> | |
| </div> | |
| <h2>How to play</h2> | |
| This board game is a variant of Reversi and Tic Tac Toe. Each one of the two players sets a pawn on an empty cell of the board. | |
| <h3>Pawns</h3> | |
| <ul> | |
| <li class="white">Player 1</li> | |
| <li class="black">Player 2</li> | |
| <li class="wall">Wall. Cannot be reversed.</li> | |
| </ul> | |
| <div class="theme"> | |
| Different themes are supported. Theme is configured through a Cascading Style Sheet (CSS) that determines how the HTML content is rendered by the SWT Browser widget. | |
| <ul class="theme"> | |
| <li><a href="http://www.org.eclipse.swt.examples.browser.demos.pawns/actiontheme/css1">Theme 1</a></li> | |
| <li><a href="http://www.org.eclipse.swt.examples.browser.demos.pawns/actiontheme/css2">Theme 2</a></li> | |
| <li><a href="http://www.org.eclipse.swt.examples.browser.demos.pawns/actiontheme/css3">Theme 3</a></li> | |
| <li><a href="http://www.org.eclipse.swt.examples.browser.demos.pawns/actiontheme/css4">Theme 4</a></li> | |
| </ul> | |
| </div> | |
| <h2>How to win</h2> | |
| The game ends when all cells are filled. The winner is the one with most pawns of their colour. | |
| <h2>Java and HTML integrated through the SWT Browser widget</h2> | |
| <p> | |
| Rendering is based on HTML and CSS techniques. Computer moves are programmed in regular | |
| Java code in the Eclipse plug-in. The SWT Browser widget is used for rendering and reacting | |
| to user input. | |
| </p> | |
| <h3>Implementation</h3> | |
| <p> | |
| The board is a table filled with hyperlinks. Cascading Style Sheets | |
| provide various themes and control the table aesthetic appearance. | |
| <br>The API <code>org.eclipse.swt.browser.Browser.setText(java.lang.String)</code> draws | |
| the board game from HTML generated in memory. | |
| <br>Player moves are captured by implementing the interface <code>org.eclipse.swt.browser.LocationListener</code>. | |
| e.g the player clicks on a cell that may generate a hyperlink with a URL similar to | |
| <code>http://www.org.eclipse.swt.examples.browser.demos/xx1yy2</code>. That hyperlink identifies | |
| the position of the cell selected by the player (column 1, row 2). The move is completed by generating | |
| new HTML content and invoking <code>Browser.setText</code> to update the board game. | |
| </p> | |
| </body> | |
| </html> |