production init
@@ -0,0 +1,84 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Reversi</title>
|
||||
<style type="text/css">
|
||||
body{font-family:Tahoma;font-size:8pt}
|
||||
table{font-family:Tahoma;font-size:8pt;border-style:solid;border-width:1px;border-color:buttonface;border-collapse:collapse}
|
||||
.btn{font-family:Tahoma;font-size:8pt;border-style:solid;border-width:1px;border-color:buttonface;background-color:white}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<b><font size="5">The Rules of Reversi</font></b>
|
||||
<br>
|
||||
<i>Written by bno
|
||||
<p>
|
||||
Well, let us start with giving the general idea of the game.</i>
|
||||
<p>
|
||||
The idea is to (well, win obviously) capture your friend's pieces by
|
||||
surrounding them.
|
||||
<p><br>
|
||||
<b>Claiming the opponent's pieces.</b>
|
||||
<p>
|
||||
You need to have two of your pieces in a straight line (horizontal or
|
||||
vertical). The opponent's pieces that are in the middle of the one you have
|
||||
just placed and a previously placed counter of yours will turn his/her
|
||||
counter(s) the same colour as yours.
|
||||
<p>
|
||||
<img src="reversi-help.png"><br>
|
||||
From the above you can see possible places (the ones marked yellow) of where to
|
||||
go if you were white. These would change the red counters in the line white
|
||||
too.
|
||||
<p>
|
||||
You must capture each time. If you are unable to capture any of your opponent's
|
||||
pieces, then your go will be passed, and it will be your opponent's turn again.
|
||||
<p>
|
||||
Be careful with the corners! Don't let your opponent put their counter into a
|
||||
corner. This could change the game around completely. Corner counters cannot be
|
||||
changed, as you cannot make straight lines. Try to get the corner pieces first.
|
||||
<p><br>
|
||||
<i>The scoreboard at the bottom...</i>
|
||||
<br>
|
||||
<table border="1">
|
||||
<tr bgcolor="buttonface">
|
||||
<td width="100"><b>Name</td>
|
||||
<td><b>Meaning</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Players</td>
|
||||
<td>You and your opponent's names.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Color</td>
|
||||
<td>Your colour, and your opponent's colour.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Game points</td>
|
||||
<td>The amount of points that player has this round (the amount of counters that
|
||||
this player owns).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Games won</td>
|
||||
<td>The amount of games this person has won.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total points</td>
|
||||
<td>The amount of points this player has had since the applet started.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p><br>
|
||||
<BR>
|
||||
<b>I hope this guide has made it easier for you to understand the game. Of course,
|
||||
another thing to help you get good at any game is to PRACTISE.
|
||||
<p>
|
||||
This guide has been brought to you by: bno
|
||||
<p>
|
||||
I would also like to thank everyone who has made this game possible with MSN. <font color="green">
|
||||
THANKYOU</font>
|
||||
</b>
|
||||
<p>
|
||||
<br>
|
||||
<BR>
|
||||
<hr>
|
||||
This guide was written for 'Reversi v1.0'
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 894 B |
|
After Width: | Height: | Size: 900 B |
|
After Width: | Height: | Size: 894 B |
|
After Width: | Height: | Size: 807 B |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 146 B |
|
After Width: | Height: | Size: 163 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 650 B |
|
After Width: | Height: | Size: 146 B |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 654 B |
|
After Width: | Height: | Size: 761 B |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 978 B |
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" ?>
|
||||
<words>
|
||||
<cmdHelp>Hilfe</cmdHelp>
|
||||
<cmdRestart>Neustart</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} möchte das Spiel neu starten, geht das in Ordnung?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>direkt</connectionDirect>
|
||||
<connectionDisconnected>getrennt</connectionDisconnected>
|
||||
<connectionIndirect>indirekt</connectionIndirect>
|
||||
<errorDataSend>Datenfehler; Die Daten können nicht gesendet werden. Spiel gestoppt.</errorDataSend>
|
||||
<errorDisconnected>Getrennt.</errorDisconnected>
|
||||
<errorUserLeft>{0} hat das Spiel verlassen. Das Spiel wurde beendet.</errorUserLeft>
|
||||
<infoRestartDenied>{0} möchte das Spiel nicht neu starten.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Klicken Sie auf 'Neustart' für ein neues Spiel.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Wird Ihnen präsentiert von {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Verbindungsart</lblConnectionType>
|
||||
<lblPlayers>Spieler</lblPlayers>
|
||||
<lblColor>Farbe</lblColor>
|
||||
<lblGamePoints>Spielpunkte</lblGamePoints>
|
||||
<lblGameTotalPoints>Gesamtpunkte</lblGameTotalPoints>
|
||||
<lblGamesWon>Spiele gewonnen</lblGamesWon>
|
||||
<lblRed>rot</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>weiß</lblWhite>
|
||||
<stateAnotherMyTurn>{0} kann nicht, Sie sind dran.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Sie können nicht, {0} ist wieder dran.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Starte Spiel...</stateInitializing>
|
||||
<stateGameOverDraw>Spiel beendet! Es ist ein Unentschieden.</stateGameOverDraw>
|
||||
<stateGameOverLost>Was für ein Pech! Sie haben verloren.</stateGameOverLost>
|
||||
<stateGameOverWon>Gratulation, Sie haben gewonnen!</stateGameOverWon>
|
||||
<stateMyTurn>Sie sind dran.</stateMyTurn>
|
||||
<stateRemoteTurn>Bitte warten Sie bis {0} einen Zug gemacht hat.</stateRemoteTurn>
|
||||
<stateStartMyTurn>Spiel gestartet. Sie sind dran.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>Spiel gestartet. Bitte warten Sie bis {0} einen Zug gemacht hat.</stateStartRemoteTurn>
|
||||
</words>
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<words>
|
||||
<cmdHelp>Help</cmdHelp>
|
||||
<cmdRestart>Restart</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} wants to restart this game, are you ok with that?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>direct</connectionDirect>
|
||||
<connectionDisconnected>disconnected</connectionDisconnected>
|
||||
<connectionIndirect>indirect</connectionIndirect>
|
||||
<errorDataSend>Data error; unable to send data. Game stopped.</errorDataSend>
|
||||
<errorDisconnected>Disconnected.</errorDisconnected>
|
||||
<errorUserLeft>{0} has left the game. The game is over.</errorUserLeft>
|
||||
<infoRestartDenied>{0} doesn't want to restart this game.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Click 'Restart' to play again.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Brought to you by {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Connection type</lblConnectionType>
|
||||
<lblPlayers>Players</lblPlayers>
|
||||
<lblColor>Color</lblColor>
|
||||
<lblGamePoints>Game points</lblGamePoints>
|
||||
<lblGameTotalPoints>Total points</lblGameTotalPoints>
|
||||
<lblGamesWon>Games won</lblGamesWon>
|
||||
<lblRed>red</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>white</lblWhite>
|
||||
<stateAnotherMyTurn>{0} can't move, it's your turn again.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>You are stuck, {0} gets to move again.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Initializing game...</stateInitializing>
|
||||
<stateGameOverDraw>Game over, it's a draw!</stateGameOverDraw>
|
||||
<stateGameOverLost>Game over, you have lost!</stateGameOverLost>
|
||||
<stateGameOverWon>Game over, you have won!</stateGameOverWon>
|
||||
<stateMyTurn>It's your turn.</stateMyTurn>
|
||||
<stateRemoteTurn>Waiting for {0} to make a move.</stateRemoteTurn>
|
||||
<stateStartMyTurn>Game started, it's your turn.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>Game started, waiting for {0} to make a move.</stateStartRemoteTurn>
|
||||
</words>
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<words>
|
||||
<cmdHelp>Ayuda</cmdHelp>
|
||||
<cmdRestart>Reiniciar</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} quiere reiniciar el juego, ¿estás de acuerdo?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>directa</connectionDirect>
|
||||
<connectionDisconnected>desconectado</connectionDisconnected>
|
||||
<connectionIndirect>indirecta</connectionIndirect>
|
||||
<errorDataSend>Error; Imposible enviar datos. Se ha parado el juego.</errorDataSend>
|
||||
<errorDisconnected>Desconectado.</errorDisconnected>
|
||||
<errorUserLeft>{0} ha dejado el juego. El juego ha acabado.</errorUserLeft>
|
||||
<infoRestartDenied>{0} no quiere reiniciar el juego.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Haz clic en 'Reiniciar' para jugar de nuevo.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Juego patrocinado por {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Tipo de conexión</lblConnectionType>
|
||||
<lblPlayers>Jugadores</lblPlayers>
|
||||
<lblColor>Color</lblColor>
|
||||
<lblGamePoints>Puntos en este juego</lblGamePoints>
|
||||
<lblGameTotalPoints>Puntos totales</lblGameTotalPoints>
|
||||
<lblGamesWon>Juegos ganados</lblGamesWon>
|
||||
<lblRed>rojo</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>blanco</lblWhite>
|
||||
<stateAnotherMyTurn>{0} no puede mover, es tu turno otra vez.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Estás bloqueado, {0} mueve otra vez.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Iniciando juego...</stateInitializing>
|
||||
<stateGameOverDraw>Juego acabado, Es un empate! </stateGameOverDraw>
|
||||
<stateGameOverLost>Juego acabado, Has perdido!</stateGameOverLost>
|
||||
<stateGameOverWon>Juego acabado, Has ganado!</stateGameOverWon>
|
||||
<stateMyTurn>Es tu turno.</stateMyTurn>
|
||||
<stateRemoteTurn>Esperando por {0} para realizar movimiento.</stateRemoteTurn>
|
||||
<stateStartMyTurn>El juego ha empezado, tu eres el color {0}. Es tu turno.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>El juego ha empezado, tu eres el color {0}. Esperando por {1} para completar su turno.</stateStartRemoteTurn>
|
||||
|
||||
</words>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" ?>
|
||||
<words>
|
||||
<cmdHelp>Aide</cmdHelp>
|
||||
<cmdRestart>Recommencer</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} désire recommencer la partie, êtes-vous d'accord?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>direct</connectionDirect>
|
||||
<connectionDisconnected>disconnected</connectionDisconnected>
|
||||
<connectionIndirect>indirect</connectionIndirect>
|
||||
<errorDataSend>Erreur de données; impossible d'envoyer les données. Jeu arrêté.</errorDataSend>
|
||||
<errorDisconnected>Déconnecté.</errorDisconnected>
|
||||
<errorUserLeft>{0} a quitté la partie. Le jeu est terminé.</errorUserLeft>
|
||||
<infoRestartDenied>{0} ne veut pas redémarrer la partie.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Cliquez sur "Redémarrer" pour rejouer.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Offert par {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Type de connexion</lblConnectionType>
|
||||
<lblPlayers>Joueurs</lblPlayers>
|
||||
<lblColor>Couleur</lblColor>
|
||||
<lblGamePoints>Points</lblGamePoints>
|
||||
<lblGameTotalPoints>Points Total</lblGameTotalPoints>
|
||||
<lblGamesWon>Parties Gagnées</lblGamesWon>
|
||||
<lblRed>rouge</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>blanc</lblWhite>
|
||||
<stateAnotherMyTurn>{0} ne peut bouger, c'est de nouveau votre tour.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Vous êtes bloqués, à {0} de bouger.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Initialisation du jeu en cours...</stateInitializing>
|
||||
<stateGameOverDraw>Partie terminée, c'ets un match nul!</stateGameOverDraw>
|
||||
<stateGameOverLost>Partie terminée, vous avez perdu!</stateGameOverLost>
|
||||
<stateGameOverWon>Partie terminée, vous avez gagné!</stateGameOverWon>
|
||||
<stateMyTurn>A vous de jouer.</stateMyTurn>
|
||||
<stateRemoteTurn>En attente d'un mouvement de {0}</stateRemoteTurn>
|
||||
<stateStartMyTurn>Début du jeu, à vous de jouer.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>Début du jeu, attente d'un mouvement de {0}</stateStartRemoteTurn>
|
||||
</words>
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" ?>
|
||||
<words>
|
||||
<cmdHelp>Súgó</cmdHelp>
|
||||
<cmdRestart>Újrakezdés</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} újra akarja kezdeni a játékot, eggyet ért ezzel?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>közvetlen</connectionDirect>
|
||||
<connectionDisconnected>megszakadt</connectionDisconnected>
|
||||
<connectionIndirect>közvetett</connectionIndirect>
|
||||
<errorDataSend>Adat hiba; nem lehet adatot küldeni. A játék megállt.</errorDataSend>
|
||||
<errorDisconnected>Lekapcsolva.</errorDisconnected>
|
||||
<errorUserLeft>{0} elhagyta a játékot. A játék véget ért.</errorUserLeft>
|
||||
<infoRestartDenied>{0} nem akarja újraindítani a játékot.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Kattints az 'Újrakezdés' gombra, az újabb játékért.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Kihívó: {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Kapcsolat típusa</lblConnectionType>
|
||||
<lblPlayers>Játékosok</lblPlayers>
|
||||
<lblColor>Szín</lblColor>
|
||||
<lblGamePoints>Pontos</lblGamePoints>
|
||||
<lblGameTotalPoints>Összes pont</lblGameTotalPoints>
|
||||
<lblGamesWon>Gyõzelmek</lblGamesWon>
|
||||
<lblRed>piros</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>fehér</lblWhite>
|
||||
<stateAnotherMyTurn>{0} nem tud lépni, újra te jössz.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Megakadtál, {0} jön újra.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Játék betöltése...</stateInitializing>
|
||||
<stateGameOverDraw>Vége, döntetlen!</stateGameOverDraw>
|
||||
<stateGameOverLost>Vége, vesztettél!</stateGameOverLost>
|
||||
<stateGameOverWon>Vége, nyertél!</stateGameOverWon>
|
||||
<stateMyTurn>Te jössz.</stateMyTurn>
|
||||
<stateRemoteTurn>Várakozás {0} lépésére.</stateRemoteTurn>
|
||||
<stateStartMyTurn>A játék elindult, te jössz.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>A játék elindult, várakozás {0} lépésére.</stateStartRemoteTurn>
|
||||
</words>
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<words>
|
||||
<cmdHelp>Help</cmdHelp>
|
||||
<cmdRestart>Herstart</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} wil het spel opnieuw beginnen. Vind je dat goed?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>direkt</connectionDirect>
|
||||
<connectionDisconnected>verbroken</connectionDisconnected>
|
||||
<connectionIndirect>indirekt</connectionIndirect>
|
||||
<errorDataSend>Data fout; kan geen gegevens versturen. Het spel is gestopt.</errorDataSend>
|
||||
<errorDisconnected>Verbroken.</errorDisconnected>
|
||||
<errorUserLeft>{0} heeft het spel verlaten. Het spel is gestopt.</errorUserLeft>
|
||||
<infoRestartDenied>{0} wil dit spel niet opnieuw beginnen.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Druk op 'Herstart' om opnieuw te spelen.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Aangeboden door {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Connectie type</lblConnectionType>
|
||||
<lblPlayers>Spelers</lblPlayers>
|
||||
<lblColor>Kleur</lblColor>
|
||||
<lblGamePoints>Punten</lblGamePoints>
|
||||
<lblGameTotalPoints>Puntentotaal</lblGameTotalPoints>
|
||||
<lblGamesWon>Gewonnen</lblGamesWon>
|
||||
<lblRed>rood</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>wit</lblWhite>
|
||||
<stateAnotherMyTurn>{0} zit vast, het is weer jouw beurt.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Je zit vast, {0} mag nog een keer.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Spel wordt geïnitialiseerd...</stateInitializing>
|
||||
<stateGameOverDraw>Spel over, het is een gelijkspel!</stateGameOverDraw>
|
||||
<stateGameOverLost>Spel over, je hebt verloren!</stateGameOverLost>
|
||||
<stateGameOverWon>Spel over, je hebt gewonnen!</stateGameOverWon>
|
||||
<stateMyTurn>Het is jouw beurt</stateMyTurn>
|
||||
<stateRemoteTurn>Wacht op de beurt van {0}.</stateRemoteTurn>
|
||||
<stateStartMyTurn>Spel gestart, het is jouw beurt.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>Spel gestart, wacht op de beurt van {0}.</stateStartRemoteTurn>
|
||||
</words>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" ?>
|
||||
<words>
|
||||
<cmdHelp>Ajuda</cmdHelp>
|
||||
<cmdRestart>Recomeçar</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} quer recomeçar o jogo, está de acordo?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>directo</connectionDirect>
|
||||
<connectionDisconnected>desconectar</connectionDisconnected>
|
||||
<connectionIndirect>indirecto</connectionIndirect>
|
||||
<errorDataSend>Erro de comunicação. Jogo parado.</errorDataSend>
|
||||
<errorDisconnected>Desconectar.</errorDisconnected>
|
||||
<errorUserLeft>{0} saiu. O jogo acabou.</errorUserLeft>
|
||||
<infoRestartDenied>{0} não quer recomeçar o jogo.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Clique em 'Recomeçar' para jogar de novo.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Produzido por {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Tipo de ligação</lblConnectionType>
|
||||
<lblPlayers>Jogadores</lblPlayers>
|
||||
<lblColor>Cores</lblColor>
|
||||
<lblGamePoints>Pontos no Jogo</lblGamePoints>
|
||||
<lblGameTotalPoints>Pontos Totais</lblGameTotalPoints>
|
||||
<lblGamesWon>Jogos ganhos</lblGamesWon>
|
||||
<lblRed>vermelho</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>branco</lblWhite>
|
||||
<stateAnotherMyTurn>{0} não pode mover-se, é a sua vez de novo.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Você está preso, {0} vai jogar de novo.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Iniciando o jogo...</stateInitializing>
|
||||
<stateGameOverDraw>Jogo terminado, é um empate!</stateGameOverDraw>
|
||||
<stateGameOverLost>Jogo terminado, você perceu!</stateGameOverLost>
|
||||
<stateGameOverWon>Jogo terminado, você ganhou!</stateGameOverWon>
|
||||
<stateMyTurn>É a sua vez.</stateMyTurn>
|
||||
<stateRemoteTurn>À espera que {0} jogue.</stateRemoteTurn>
|
||||
<stateStartMyTurn>Jogo começado, é a sua vez.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>Jogo começado, à espera que {0} jogue.</stateStartRemoteTurn>
|
||||
</words>
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<words>
|
||||
<cmdHelp>Pomoč</cmdHelp>
|
||||
<cmdRestart>Reset</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} želi resetirati igro, se strinjaš?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>posredno</connectionDirect>
|
||||
<connectionDisconnected>prekinjeno</connectionDisconnected>
|
||||
<connectionIndirect>neposredno</connectionIndirect>
|
||||
<errorDataSend>Podatkovna napaka; pošiljanje podatkov ni možno. Igra ustavljena.</errorDataSend>
|
||||
<errorDisconnected>Prekinjeno.</errorDisconnected>
|
||||
<errorUserLeft>{0} je zapustil igro. Igra je končana.</errorUserLeft>
|
||||
<infoRestartDenied>{0} ne želi resetirati te igre.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Klikni 'Reset' za novo igro.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Vam na uslugo: {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Vrsta povezave</lblConnectionType>
|
||||
<lblPlayers>Igralci</lblPlayers>
|
||||
<lblColor>Barva</lblColor>
|
||||
<lblGamePoints>Točke v igri</lblGamePoints>
|
||||
<lblGameTotalPoints>Skupne točke</lblGameTotalPoints>
|
||||
<lblGamesWon>Zmage</lblGamesWon>
|
||||
<lblRed>rdeč</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>bel</lblWhite>
|
||||
<stateAnotherMyTurn>{0} ne more napraviti poteze, ponovno si ti na potezi.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Obtičal si, {0} je ponovno na potezi.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Nalagam igro...</stateInitializing>
|
||||
<stateGameOverDraw>Igra je končana, neodločeno je!</stateGameOverDraw>
|
||||
<stateGameOverLost>Igra je končana, izgubil si!</stateGameOverLost>
|
||||
<stateGameOverWon>Igra je končana, zmagal si!</stateGameOverWon>
|
||||
<stateMyTurn>Ti si na potezi.</stateMyTurn>
|
||||
<stateRemoteTurn>Čakaš, da {0} naredi potezo.</stateRemoteTurn>
|
||||
<stateStartMyTurn>Igra se je pričela, ti si na potezi.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>Igra se je pričela, čakaš, da {0} naredi potezo.</stateStartRemoteTurn>
|
||||
</words>
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" ?>
|
||||
<words>
|
||||
<cmdHelp>Hjälp</cmdHelp>
|
||||
<cmdRestart>Starta om</cmdRestart>
|
||||
<confirmRemoteWantsRestart>{0} vill starta om omgången, är det okej med dig?</confirmRemoteWantsRestart>
|
||||
<connectionDirect>direkt</connectionDirect>
|
||||
<connectionDisconnected>anslutning bruten</connectionDisconnected>
|
||||
<connectionIndirect>indirekt</connectionIndirect>
|
||||
<errorDataSend>Data fel; omöjligt att skicka data. Spelet har stoppats.</errorDataSend>
|
||||
<errorDisconnected>Anslutning bruten.</errorDisconnected>
|
||||
<errorUserLeft>{0} har lämnat spelet. Spelet är över.</errorUserLeft>
|
||||
<infoRestartDenied>{0} vill inte starta om spelet.</infoRestartDenied>
|
||||
<infoClickToPlayAgain>Klicka på 'Starta om' för att spela igen.</infoClickToPlayAgain>
|
||||
<lblBroughtToYouBy>Framtaget till dig av {0}</lblBroughtToYouBy>
|
||||
<lblConnectionType>Anslutnings typ</lblConnectionType>
|
||||
<lblPlayers>Spelare</lblPlayers>
|
||||
<lblColor>Färg</lblColor>
|
||||
<lblGamePoints>Antal Spel poäng</lblGamePoints>
|
||||
<lblGameTotalPoints>Antal Poäng totalt</lblGameTotalPoints>
|
||||
<lblGamesWon>Antal vunna spel</lblGamesWon>
|
||||
<lblRed>röd</lblRed>
|
||||
<lblVersion>Reversi {0}</lblVersion>
|
||||
<lblWhite>vit</lblWhite>
|
||||
<stateAnotherMyTurn>{0} kan inte flytta, det är din tur igen.</stateAnotherMyTurn>
|
||||
<stateAnotherRemoteTurn>Du kan inte flytta, {0} får flytta igen.</stateAnotherRemoteTurn>
|
||||
<stateInitializing>Påbörjar spel...</stateInitializing>
|
||||
<stateGameOverDraw>Spelet över, det blev lika!</stateGameOverDraw>
|
||||
<stateGameOverLost>Spelet över, du har förlorat!</stateGameOverLost>
|
||||
<stateGameOverWon>Spelet över, du har vunnit!</stateGameOverWon>
|
||||
<stateMyTurn>Det är din tur.</stateMyTurn>
|
||||
<stateRemoteTurn>Väntar på att {0} ska göra sitt drag.</stateRemoteTurn>
|
||||
<stateStartMyTurn>Spelet har börjat, det är din tur.</stateStartMyTurn>
|
||||
<stateStartRemoteTurn>Spelet har startat, väntar på att {0} ska göra sitt drag.</stateStartRemoteTurn>
|
||||
</words>
|
||||
|
||||
|
||||
@@ -0,0 +1,729 @@
|
||||
<html>
|
||||
<!--
|
||||
Copyright by Koen, 2003,2004,2005
|
||||
http://games.mess.be
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
|
||||
<title>Reversi</title>
|
||||
<style type="text/css">
|
||||
table{font-family:Tahoma;font-size:8pt}
|
||||
</style>
|
||||
<script language="javascript" src="../common/common.js"></script>
|
||||
<script language="javascript">
|
||||
var VERSION = "v2.0";
|
||||
/// GAME_STATE
|
||||
var GS_INITIALIZING = 0;
|
||||
var GS_MYTURN = 1;
|
||||
var GS_REMOTETURN = 2;
|
||||
var GS_GAMEOVER = 3;
|
||||
var GS_ERROR = 4;
|
||||
|
||||
var m_remoteUserName;
|
||||
var m_gameState = GS_INITIALIZING;
|
||||
var m_isInitialized = false;
|
||||
|
||||
/// Game specific variables
|
||||
var PC_EMPTY = 0;
|
||||
var PC_WHITE = 1;
|
||||
var PC_RED = 2;
|
||||
|
||||
/// Data commands
|
||||
var CMD_RESTART = "res";
|
||||
var CMD_NORESTART = "nor";
|
||||
var CMD_HINT = "hint";
|
||||
|
||||
var m_gamesWon = 0;
|
||||
var m_totalPoints = 0;
|
||||
var m_remoteGames = 0;
|
||||
var m_remoteTotal = 0;
|
||||
var m_iStart;
|
||||
var m_fields;
|
||||
var m_myColor;
|
||||
var m_remoteColor;
|
||||
var m_myValidMoves;
|
||||
var m_remoteValidMoves;
|
||||
var m_requestRestart = false;
|
||||
var m_firstMove;
|
||||
var m_preloadDone = false;
|
||||
var m_remoteLoaded = false;
|
||||
var m_lastYellowField = null;
|
||||
|
||||
///
|
||||
/// Global event handlers
|
||||
///
|
||||
function OnLoad(){
|
||||
// load language
|
||||
loadLanguage("reversi");
|
||||
applyLanguage();
|
||||
|
||||
m_remoteUserName = getRemoteUserName();
|
||||
|
||||
updateGameState(GS_INITIALIZING, getWord("stateInitializing"));
|
||||
updateConnectionType();
|
||||
|
||||
nameMe.innerText = getDisplayName(window.external.Users.Me.Name);
|
||||
nameRemote.innerText = getDisplayName(m_remoteUserName);
|
||||
|
||||
m_iStart = iAmInviter();
|
||||
m_myColor = m_iStart ? PC_WHITE : PC_RED;
|
||||
m_remoteColor = getOppositeColor(m_myColor);
|
||||
|
||||
colorMe.innerText = getWord(m_myColor == PC_WHITE ? "lblWhite" : "lblRed")
|
||||
colorRemote.innerText = getWord(m_remoteColor == PC_WHITE ? "lblWhite" : "lblRed")
|
||||
|
||||
m_isInitialized = true;
|
||||
window.external.Channel.Initialize();
|
||||
|
||||
preloadImages(new Array("ct_direct.gif", "ct_disconnected.gif", "ct_indirect.gif",
|
||||
"empty.gif", "gameboard.jpg", "gameover.gif", "headerbg.gif", "help.gif", "leftcorner.jpg",
|
||||
"playerbg.gif", "rc.jpg", "rc_yellow.jpg", "rightcorner.jpg", "star.jpg", "wc.jpg", "wc_yellow.jpg"), OnPreloadProgress, OnPreloadComplete);
|
||||
}
|
||||
|
||||
function OnUnload(){
|
||||
}
|
||||
|
||||
///
|
||||
/// Preloading stuff
|
||||
///
|
||||
function OnPreloadProgress(progress){
|
||||
divProgress.style.width = progress + "%";
|
||||
}
|
||||
|
||||
function OnPreloadComplete(){
|
||||
m_preloadDone = true;
|
||||
initialize();
|
||||
}
|
||||
|
||||
function initialize(){
|
||||
if (m_preloadDone && m_remoteLoaded){
|
||||
tblPreload.style.display = "none";
|
||||
tblGame.style.display = "";
|
||||
|
||||
startGame();
|
||||
}
|
||||
}
|
||||
|
||||
function applyLanguage(){
|
||||
lblBy.innerHTML = getWord("lblBroughtToYouBy", "<b>games.mess.be</b>");
|
||||
lblVersion.innerText = getWord("lblVersion", VERSION);
|
||||
btnHelp.title = getWord("cmdHelp");
|
||||
btnRestart.innerText = getWord("cmdRestart");
|
||||
|
||||
lblPlayers.innerText = getWord("lblPlayers");
|
||||
lblColor.innerText = getWord("lblColor");
|
||||
lblGamePoints.innerText = getWord("lblGamePoints");
|
||||
lblGamesWon.innerText = getWord("lblGamesWon");
|
||||
lblGameTotalPoints.innerText = getWord("lblGameTotalPoints");
|
||||
|
||||
colorMe.innerText = getWord(m_myColor == PC_WHITE ? "lblWhite" : "lblRed")
|
||||
colorRemote.innerText = getWord(m_remoteColor == PC_WHITE ? "lblWhite" : "lblRed")
|
||||
}
|
||||
|
||||
///
|
||||
/// Channel event handlers
|
||||
///
|
||||
|
||||
///
|
||||
/// Occurs when the remote user closes the application, the conversation window or signs out of Messenger.
|
||||
///
|
||||
function Channel_OnAppClose(){
|
||||
m_remoteLoaded = false;
|
||||
updateGameState(GS_ERROR, getWord("errorUserLeft", getDisplayName(m_remoteUserName)));
|
||||
}
|
||||
|
||||
///
|
||||
/// Occurs when a data send has failed, inspect Channel.Error for details.
|
||||
///
|
||||
function Channel_OnDataError(){
|
||||
updateGameState(GS_ERROR, getWord("errorDataSend"));
|
||||
}
|
||||
|
||||
///
|
||||
/// Occurs when new data has been received. The data is available in window.external.Channel.Data.
|
||||
///
|
||||
function Channel_OnDataReceived(){
|
||||
var data = window.external.Channel.Data;
|
||||
|
||||
if (data == CMD_RESTART){
|
||||
if (m_gameState == GS_MYTURN || m_gameState == GS_REMOTETURN){
|
||||
if (m_requestRestart){
|
||||
m_requestRestart = false;
|
||||
|
||||
startGame();
|
||||
}
|
||||
else{
|
||||
var restart = confirm(getWord("confirmRemoteWantsRestart", getDisplayName(m_remoteUserName)));
|
||||
var cmd = restart ? CMD_RESTART : CMD_NORESTART;
|
||||
window.external.Channel.SendData(cmd);
|
||||
|
||||
if (restart)
|
||||
startGame();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (data == CMD_NORESTART){
|
||||
if (m_gameState == GS_MYTURN || m_gameState == GS_REMOTETURN){
|
||||
m_requestRestart = false;
|
||||
|
||||
alert(getWord("infoRestartDenied", getDisplayName(m_remoteUserName)));
|
||||
}
|
||||
}
|
||||
else if (data.startsWith(CMD_HINT)){
|
||||
if (m_gameState == GS_MYTURN){
|
||||
var f = new field(data.substr(4));
|
||||
setYellow(f);
|
||||
}
|
||||
}
|
||||
else if (m_gameState == GS_REMOTETURN)
|
||||
doMove(new field(data), m_remoteColor);
|
||||
else if (m_gameState == GS_GAMEOVER)
|
||||
m_firstMove = new field(data);
|
||||
}
|
||||
|
||||
///
|
||||
/// Occurs when the remote user closes the window that contains the app.
|
||||
///
|
||||
function Channel_OnRemoteAppClosed(){
|
||||
m_remoteLoaded = false;
|
||||
updateGameState(GS_ERROR, getWord("errorUserLeft", getDisplayName(m_remoteUserName)));
|
||||
}
|
||||
|
||||
///
|
||||
/// Occurs when the remote app has been initialized. Both apps are now initialized.
|
||||
///
|
||||
function Channel_OnRemoteAppLoaded(){
|
||||
m_remoteLoaded = true;
|
||||
initialize();
|
||||
}
|
||||
|
||||
///
|
||||
/// Occurs when the connection between conversants changes from direct to indirect or disconnected.
|
||||
/// The type is available in window.external.Channel.Type
|
||||
///
|
||||
function Channel_OnTypeChanged(){
|
||||
updateConnectionType();
|
||||
}
|
||||
|
||||
///
|
||||
/// Helpers functions
|
||||
///
|
||||
function updateConnectionType(){
|
||||
var icon, descr;
|
||||
|
||||
switch(window.external.Channel.Type){
|
||||
case CT_DIRECT:
|
||||
icon = "ct_direct.gif"
|
||||
descr = getWord("connectionDirect");
|
||||
break;
|
||||
case CT_DISCONNECTED:
|
||||
icon = "ct_disconnected.gif"
|
||||
descr = getWord("connectionDisconnected");
|
||||
|
||||
if (m_isInitialized)
|
||||
updateGameState(GS_ERROR, getWord("errorDisconnected"));
|
||||
else
|
||||
updateGameState(GS_INITIALIZING, getWord("stateInitializing"));
|
||||
|
||||
break;
|
||||
case CT_INDIRECT:
|
||||
icon = "ct_indirect.gif"
|
||||
descr = getWord("connectionIndirect");
|
||||
break;
|
||||
}
|
||||
|
||||
statusIcon.src = "images/" + icon;
|
||||
statusIcon.title = getWord("lblConnectionType") + ": " + descr;
|
||||
}
|
||||
|
||||
///
|
||||
/// Game specific objects
|
||||
///
|
||||
function field(){
|
||||
if (arguments.length == 1){
|
||||
var args = arguments[0].split(",");
|
||||
this.x = parseInt(args[0]);
|
||||
this.y = parseInt(args[1]);
|
||||
}
|
||||
else{
|
||||
this.x = arguments[0];
|
||||
this.y = arguments[1];
|
||||
}
|
||||
}
|
||||
field.prototype.toString = function(){
|
||||
return this.x + "," + this.y;
|
||||
}
|
||||
|
||||
function score(me, remote){
|
||||
this.me = me;
|
||||
this.remote = remote;
|
||||
}
|
||||
|
||||
///
|
||||
/// Game specific functions
|
||||
///
|
||||
function startGame(){
|
||||
m_fields = new Array(8);
|
||||
for(var i = 0; i < 8; i++){
|
||||
m_fields[i] = new Array(8);
|
||||
for(var j = 0; j < 8; j++)
|
||||
setField(new field(i, j), PC_EMPTY);
|
||||
}
|
||||
document.body.disabled = false;
|
||||
pnlGameover.style.display = "none";
|
||||
|
||||
setField(new field(3, 3), PC_RED);
|
||||
setField(new field(3, 4), PC_WHITE);
|
||||
setField(new field(4, 3), PC_WHITE);
|
||||
setField(new field(4, 4), PC_RED);
|
||||
|
||||
updateScore();
|
||||
calcValidMoves();
|
||||
|
||||
if (m_iStart || (!m_iStart && m_firstMove)){
|
||||
if (m_firstMove){
|
||||
doMove(m_firstMove, m_remoteColor);
|
||||
m_firstMove = null;
|
||||
}
|
||||
updateGameState(GS_MYTURN, getWord("stateStartMyTurn"));
|
||||
}
|
||||
else
|
||||
updateGameState(GS_REMOTETURN, getWord("stateStartRemoteTurn", getDisplayName(m_remoteUserName)));
|
||||
}
|
||||
|
||||
function updateGameState(gameState, msg){
|
||||
if (gameState == GS_ERROR && m_gameState != GS_ERROR){
|
||||
m_fields = new Array(8);
|
||||
for(var i = 0; i < 8; i++){
|
||||
m_fields[i] = new Array(8);
|
||||
for(var j = 0; j < 8; j++)
|
||||
setField(new field(i, j), PC_EMPTY);
|
||||
}
|
||||
document.body.disabled = true;
|
||||
}
|
||||
|
||||
m_gameState = gameState;
|
||||
statusText.innerText = msg;
|
||||
}
|
||||
|
||||
function setField(f, value, useYellow){
|
||||
m_fields[f.x][f.y] = value;
|
||||
var img = useYellow ? "yellow.jpg" : "empty.gif";
|
||||
if (value == PC_WHITE)
|
||||
img = (useYellow) ? "wc_yellow.jpg" : "wc.jpg";
|
||||
else if (value == PC_RED)
|
||||
img = (useYellow) ? "rc_yellow.jpg" : "rc.jpg";
|
||||
|
||||
if (useYellow){
|
||||
m_lastYellowField = f;
|
||||
}
|
||||
|
||||
tblBoard.rows[f.x].cells[f.y].firstChild.src = "images/" + img;
|
||||
}
|
||||
|
||||
function fieldFromElement(element){
|
||||
var td;
|
||||
if (element.tagName == "TD")
|
||||
td = event.srcElement;
|
||||
else if (element.tagName == "IMG")
|
||||
td = event.srcElement.parentElement;
|
||||
else
|
||||
return null;
|
||||
|
||||
var y = td.cellIndex;
|
||||
var x = td.parentElement.rowIndex;
|
||||
|
||||
return new field(x, y);
|
||||
}
|
||||
|
||||
function calcValidMove(f, color){
|
||||
var oppositeColor = getOppositeColor(color);
|
||||
var neighbors = getNeighbors(f.x, f.y, oppositeColor);
|
||||
for(var i = 0; i < neighbors.length; i++){
|
||||
var neighbor = neighbors[i];
|
||||
var deltaX = neighbor.x - f.x;
|
||||
var deltaY = neighbor.y - f.y;
|
||||
|
||||
var nextX = f.x + deltaX;
|
||||
var nextY = f.y + deltaY;
|
||||
|
||||
while (nextX > -1 && nextX < 8 && nextY > -1 && nextY < 8){
|
||||
if (m_fields[nextX][nextY] == PC_EMPTY)
|
||||
break;
|
||||
if (m_fields[nextX][nextY] == oppositeColor){
|
||||
nextX = nextX + deltaX;
|
||||
nextY = nextY + deltaY;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function calcValidMoves(){
|
||||
m_myValidMoves = new Array();
|
||||
m_remoteValidMoves = new Array();
|
||||
|
||||
for(var x = 0; x < 8; x++){
|
||||
for(var y = 0; y < 8; y++){
|
||||
// tblBoard.rows[x].cells[y].style.backgroundColor = "";
|
||||
|
||||
if (m_fields[x][y] == PC_EMPTY){
|
||||
var f = new field(x, y);
|
||||
|
||||
if (calcValidMove(f, m_myColor)){
|
||||
// tblBoard.rows[f.x].cells[f.y].style.backgroundColor = (m_myColor == PC_WHITE) ? "white" : "red";
|
||||
m_myValidMoves.push(f);
|
||||
}
|
||||
if (calcValidMove(f, m_remoteColor))
|
||||
m_remoteValidMoves.push(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function isGameOver(){
|
||||
return (m_myValidMoves.length == 0 && m_remoteValidMoves.length == 0);
|
||||
}
|
||||
|
||||
function getNeighbors(x, y, color){
|
||||
var neighbors = new Array();
|
||||
for(i = x - 1; i < x + 2; i++){
|
||||
for(j = y - 1; j < y + 2; j++){
|
||||
if (i > -1 && i < 8 && j > -1 && j < 8 && !(i == x && j == y)){
|
||||
if (m_fields[i][j] == color)
|
||||
neighbors.push(new field(i, j));
|
||||
}
|
||||
}
|
||||
}
|
||||
return neighbors;
|
||||
}
|
||||
|
||||
function getOppositeColor(color){
|
||||
return (color == PC_RED) ? PC_WHITE : PC_RED;
|
||||
}
|
||||
|
||||
function isValidMove(f){
|
||||
if (f){
|
||||
for(var i = 0; i < m_myValidMoves.length; i++){
|
||||
var validMove = m_myValidMoves[i];
|
||||
if (validMove.x == f.x && validMove.y == f.y)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function setFieldMove(f, color){
|
||||
var oppositeColor = getOppositeColor(color);
|
||||
var neighbors = getNeighbors(f.x, f.y, oppositeColor);
|
||||
for(var i = 0; i < neighbors.length; i++){
|
||||
var neighbor = neighbors[i];
|
||||
var deltaX = neighbor.x - f.x;
|
||||
var deltaY = neighbor.y - f.y;
|
||||
var newFields = new Array();
|
||||
|
||||
var nextX = f.x + deltaX;
|
||||
var nextY = f.y + deltaY;
|
||||
|
||||
while (nextX > -1 && nextX < 8 && nextY > -1 && nextY < 8){
|
||||
if (m_fields[nextX][nextY] == PC_EMPTY)
|
||||
break;
|
||||
if (m_fields[nextX][nextY] == oppositeColor){
|
||||
newFields.push(new field(nextX, nextY));
|
||||
nextX = nextX + deltaX;
|
||||
nextY = nextY + deltaY;
|
||||
}
|
||||
else{
|
||||
for(j = 0; j < newFields.length; j++)
|
||||
setField(newFields[j], color);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
setField(f, color, color == m_remoteColor);
|
||||
updateScore();
|
||||
}
|
||||
|
||||
function setYellow(f){
|
||||
if (f){
|
||||
setYellow(null);
|
||||
setField(f, m_fields[f.x][f.y], true);
|
||||
}
|
||||
else if (m_lastYellowField != null){
|
||||
setField(m_lastYellowField, m_fields[m_lastYellowField.x][m_lastYellowField.y], false);
|
||||
m_lastYellowField = null;
|
||||
}
|
||||
}
|
||||
|
||||
function doMove(f, color){
|
||||
setYellow(null);
|
||||
setFieldMove(f, color);
|
||||
calcValidMoves();
|
||||
|
||||
if (isGameOver()){
|
||||
var s = getScore();
|
||||
var msg;
|
||||
|
||||
if (s.me > s.remote){
|
||||
msg = getWord("stateGameOverWon");
|
||||
m_iStart = true;
|
||||
m_gamesWon++;
|
||||
}
|
||||
else if (s.me < s.remote){
|
||||
msg = getWord("stateGameOverLost");
|
||||
m_iStart = false;
|
||||
m_remoteGames++;
|
||||
}
|
||||
else
|
||||
msg = getWord("stateGameOverDraw");
|
||||
|
||||
updateScore();
|
||||
m_totalPoints += s.me;
|
||||
m_remoteTotal += s.remote;
|
||||
|
||||
pnlGameover.style.display = "";
|
||||
|
||||
updateGameState(GS_GAMEOVER, msg + " " + getWord("infoClickToPlayAgain"));
|
||||
}
|
||||
else if (m_gameState == GS_MYTURN){
|
||||
if (m_remoteValidMoves.length > 0)
|
||||
updateGameState(GS_REMOTETURN, getWord("stateRemoteTurn", getDisplayName(m_remoteUserName)));
|
||||
else
|
||||
updateGameState(GS_MYTURN, getWord("stateAnotherMyTurn", getDisplayName(m_remoteUserName)));
|
||||
|
||||
tblBoard.style.cursor = (m_isIE55) ? "default" : "not-allowed";
|
||||
}
|
||||
else if (m_gameState == GS_REMOTETURN){
|
||||
if (m_myValidMoves.length > 0)
|
||||
updateGameState(GS_MYTURN, getWord("stateMyTurn"));
|
||||
else
|
||||
updateGameState(GS_REMOTETURN, getWord("stateAnotherRemoteTurn", getDisplayName(m_remoteUserName)));
|
||||
}
|
||||
}
|
||||
|
||||
function getScore(){
|
||||
var me = 0;
|
||||
var remote = 0;
|
||||
for(var i = 0; i < 8; i++){
|
||||
for(var j = 0; j < 8; j++){
|
||||
var c = m_fields[i][j];
|
||||
if (m_fields[i][j] == m_myColor)
|
||||
me++;
|
||||
else if (m_fields[i][j] == m_remoteColor)
|
||||
remote++;
|
||||
}
|
||||
}
|
||||
|
||||
return new score(me, remote);
|
||||
}
|
||||
|
||||
function updateScore(){
|
||||
var s = getScore();
|
||||
|
||||
scoreMe.innerText = s.me;
|
||||
scoreRemote.innerText = s.remote;
|
||||
|
||||
gamesMe.innerText = m_gamesWon;
|
||||
gamesRemote.innerText = m_remoteGames;
|
||||
|
||||
totalMe.innerText = m_totalPoints + s.me;
|
||||
totalRemote.innerText = m_remoteTotal + s.remote;
|
||||
}
|
||||
|
||||
///
|
||||
/// GUI event handlers
|
||||
///
|
||||
function tblBoard_onmouseover(){
|
||||
var newCursor = (m_isIE55) ? "default" : "not-allowed";
|
||||
|
||||
if (m_gameState == GS_MYTURN){
|
||||
var f = fieldFromElement(event.srcElement);
|
||||
|
||||
if (isValidMove(f))
|
||||
newCursor = "hand";
|
||||
}
|
||||
if (tblBoard.style.cursor != newCursor){
|
||||
tblBoard.style.cursor = newCursor;
|
||||
}
|
||||
}
|
||||
|
||||
function tblBoard_onclick(){
|
||||
if (m_gameState == GS_MYTURN){
|
||||
var f = fieldFromElement(event.srcElement);
|
||||
if (isValidMove(f)){
|
||||
window.external.Channel.SendData(f.toString());
|
||||
doMove(f, m_myColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function btnRestart_onclick(){
|
||||
if (m_gameState == GS_GAMEOVER){
|
||||
startGame();
|
||||
}
|
||||
else if ((m_gameState == GS_MYTURN || m_gameState == GS_REMOTETURN) && !m_requestRestart){
|
||||
m_requestRestart = true;
|
||||
window.external.Channel.SendData(CMD_RESTART);
|
||||
}
|
||||
}
|
||||
function help_onclick(){
|
||||
showHelpFile("help/reversi-help.htm");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="OnLoad();" onunload="OnUnload();" style="margin:0" scroll="no" bgcolor="#516CA1">
|
||||
<xml id="words"></xml>
|
||||
<table id="tblPreload" width="100%" height="100%">
|
||||
<tr height="15%">
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr height="60%">
|
||||
<td align="center"><img src="images/reversi-logo.jpg"><div id="lblBy" style="color:#D4DEF4"></div></td>
|
||||
</tr>
|
||||
<tr valign="top" height="25%">
|
||||
<td align="center"><div align="left" style="width:100px;height:16px;color:#D4DEF4;border-style:solid;border-width:1px"><div id="divProgress" style="background-color:#D4DEF4;width:0%;height:100%"></div></div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table id="tblGame" width="100%" height="100%" style="font-family:Tahoma;font-size:8pt">
|
||||
<tr valign="top">
|
||||
<td align="center" width="100%" colspan="3">
|
||||
<span id="pnlGameover" style="display:none;position:absolute;left:expression(document.body.clientWidth/2 - this.offsetWidth/2);
|
||||
top:expression(document.body.clientHeight/2 - this.offsetHeight)">
|
||||
<img src="images/gameover.gif" style="border-style:outset;border-width:2"></span>
|
||||
<table id="tblBoard" onmouseover="tblBoard_onmouseover();" onclick="tblBoard_onclick();" border="0" cellpadding="0" cellspacing="0" style="background-image:url(images/gameboard.jpg)">
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
<td><img width="43" height="43"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="33%"> </td>
|
||||
<td width="33%" align="center">
|
||||
<button id="btnRestart" onclick="btnRestart_onclick();" style="font-family:Tahoma;font-size:8pt;border-style:none;background-image:url(images/playerbg.gif);height:17px"></button>
|
||||
</td>
|
||||
<td width="33%" align="right" style="font-size:7pt"><a id="lblVersion" href="http://games.mess.be" target="_blank" style="color:white"></a> <a href="javascript:help_onclick();"><img id="btnHelp" align="absmiddle" border="0" src="images/help.gif"></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<div style="height:30px">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" style="font-family:Tahoma;font-size:8pt;background-color:white">
|
||||
<tr height="17" style="font-weight:bold;background-image:url(images/headerbg.gif)">
|
||||
<td><img src="images/leftcorner.jpg"></td>
|
||||
<td id="lblPlayers" colspan="2"> </td>
|
||||
<td id="lblColor"> </td>
|
||||
<td id="lblGamePoints" align="center"> </td>
|
||||
<td id="lblGamesWon" align="center"> </td>
|
||||
<td id="lblGameTotalPoints" align="center"> </td>
|
||||
<td align="right"><img src="images/rightcorner.jpg"></td>
|
||||
</tr>
|
||||
<tr height="17" style="background-image:url(images/playerbg.gif)">
|
||||
<td width="17" colspan="2"><img src="images/star.jpg"</td>
|
||||
<td id="nameMe"> </td>
|
||||
<td id="colorMe"> </td>
|
||||
<td id="scoreMe" align="center">0</td>
|
||||
<td id="gamesMe" align="center">0</td>
|
||||
<td id="totalMe" align="center" colspan="2">0</td>
|
||||
</tr>
|
||||
<tr height="17" style="background-image:url(images/playerbg.gif)">
|
||||
<td width="17" colspan="2"> </td>
|
||||
<td id="nameRemote"> </td>
|
||||
<td id="colorRemote"> </td>
|
||||
<td id="scoreRemote" align="center">0</td>
|
||||
<td id="gamesRemote" align="center">0</td>
|
||||
<td id="totalRemote" align="center" colspan="2">0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="bottom" height="17px">
|
||||
<td colspan="3">
|
||||
<div id="statusBar" style="height:17px;background-color:white;background-image:url(images/playerbg.gif)">
|
||||
<img id="statusIcon" width="16" height="16" align="absmiddle" style="unselectable;margin:0px 5px" src="images/empty.gif">
|
||||
<span id="statusText" unselectable style="cursor:default"></span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||