rest van de tutorials toegevoegd

This commit is contained in:
michiel
2025-11-27 11:42:38 +01:00
parent 8c69453506
commit c14b66e892
28 changed files with 314 additions and 52 deletions

View File

@@ -5,6 +5,7 @@
<w>clid</w> <w>clid</w>
<w>dcompile</w> <w>dcompile</w>
<w>errorprone</w> <w>errorprone</w>
<w>español</w>
<w>flushnl</w> <w>flushnl</w>
<w>gaaf</w> <w>gaaf</w>
<w>gamelist</w> <w>gamelist</w>

View File

@@ -22,6 +22,17 @@ public class GameInformation {
public int getMaxDepth() { public int getMaxDepth() {
return maxDepth; return maxDepth;
} }
public String getTypeToString() {
String name = this.name();
return switch (name) {
case "TICTACTOE" -> "TicTacToe";
case "REVERSI" -> "Reversi";
case "CONNECT4" -> "Connect4";
case "BATTLESHIP" -> "Battleship";
default -> name;
};
}
} }
public static class Player { public static class Player {

View File

@@ -47,16 +47,17 @@ public abstract class BaseGameThread<TGame extends Game, TAI, TCanvas> {
this.game = gameSupplier.get(); this.game = gameSupplier.get();
this.ai = aiSupplier.get(); this.ai = aiSupplier.get();
String type = information.type.getTypeToString();
if (onForfeit == null || onExit == null) { if (onForfeit == null || onExit == null) {
primary = new GameView(null, () -> { primary = new GameView(null, () -> {
isRunning.set(false); isRunning.set(false);
WidgetContainer.getCurrentView().transitionPrevious(); WidgetContainer.getCurrentView().transitionPrevious();
}, null); }, null, type);
} else { } else {
primary = new GameView(onForfeit, () -> { primary = new GameView(onForfeit, () -> {
isRunning.set(false); isRunning.set(false);
onExit.run(); onExit.run();
}, onMessage); }, onMessage, type);
} }
this.canvas = canvasFactory.apply(this::onCellClicked); this.canvas = canvasFactory.apply(this::onCellClicked);

View File

@@ -5,9 +5,8 @@ import javafx.scene.paint.Color;
import org.toop.app.App; import org.toop.app.App;
import org.toop.app.GameInformation; import org.toop.app.GameInformation;
import org.toop.app.canvas.Connect4Canvas; import org.toop.app.canvas.Connect4Canvas;
import org.toop.app.view.ViewStack; import org.toop.app.widget.view.GameView;
import org.toop.app.view.views.GameView; import org.toop.app.widget.WidgetContainer;
import org.toop.app.view.views.LocalMultiplayerView;
import org.toop.framework.eventbus.EventFlow; import org.toop.framework.eventbus.EventFlow;
import org.toop.framework.networking.events.NetworkEvents; import org.toop.framework.networking.events.NetworkEvents;
import org.toop.game.Connect4.Connect4; import org.toop.game.Connect4.Connect4;
@@ -31,7 +30,7 @@ public class Connect4Game {
private final int columnSize = 7; private final int columnSize = 7;
private final int rowSize = 6; private final int rowSize = 6;
private final GameView view; private final GameView primary;
private final Connect4Canvas canvas; private final Connect4Canvas canvas;
private final AtomicBoolean isRunning; private final AtomicBoolean isRunning;
@@ -49,15 +48,15 @@ public class Connect4Game {
isRunning = new AtomicBoolean(true); isRunning = new AtomicBoolean(true);
if (onForfeit == null || onExit == null) { if (onForfeit == null || onExit == null) {
view = new GameView(null, () -> { primary = new GameView(null, () -> {
isRunning.set(false); isRunning.set(false);
ViewStack.push(new LocalMultiplayerView(information)); WidgetContainer.getCurrentView().transitionPrevious();
}, null); }, null, "Connect4");
} else { } else {
view = new GameView(onForfeit, () -> { primary = new GameView(onForfeit, () -> {
isRunning.set(false); isRunning.set(false);
onExit.run(); onExit.run();
}, onMessage); }, onMessage, "Connect4");
} }
canvas = new Connect4Canvas(Color.GRAY, canvas = new Connect4Canvas(Color.GRAY,
@@ -82,8 +81,8 @@ public class Connect4Game {
} }
}); });
view.add(Pos.CENTER, canvas.getCanvas()); primary.add(Pos.CENTER, canvas.getCanvas());
ViewStack.push(view); WidgetContainer.getCurrentView().transitionNext(primary);
if (onForfeit == null || onExit == null) { if (onForfeit == null || onExit == null) {
new Thread(this::localGameThread).start(); new Thread(this::localGameThread).start();
@@ -91,8 +90,7 @@ public class Connect4Game {
} else { } else {
new EventFlow() new EventFlow()
.listen(NetworkEvents.GameMoveResponse.class, this::onMoveResponse) .listen(NetworkEvents.GameMoveResponse.class, this::onMoveResponse)
.listen(NetworkEvents.YourTurnResponse.class, this::onYourTurnResponse) .listen(NetworkEvents.YourTurnResponse.class, this::onYourTurnResponse);
.listen(NetworkEvents.ReceivedMessage.class, this::onReceivedMessage);
setGameLabels(myTurn == 0); setGameLabels(myTurn == 0);
} }
@@ -108,7 +106,7 @@ public class Connect4Game {
final String currentValue = currentTurn == 0? "RED" : "BLUE"; final String currentValue = currentTurn == 0? "RED" : "BLUE";
final int nextTurn = (currentTurn + 1) % information.type.getPlayerCount(); final int nextTurn = (currentTurn + 1) % information.type.getPlayerCount();
view.nextPlayer(information.players[currentTurn].isHuman, primary.nextPlayer(information.players[currentTurn].isHuman,
information.players[currentTurn].name, information.players[currentTurn].name,
currentValue, currentValue,
information.players[nextTurn].name); information.players[nextTurn].name);
@@ -158,9 +156,9 @@ public class Connect4Game {
*/ */
if (state != Game.State.NORMAL) { if (state != Game.State.NORMAL) {
if (state == Game.State.WIN) { if (state == Game.State.WIN) {
view.gameOver(true, information.players[currentTurn].name); primary.gameOver(true, information.players[currentTurn].name);
} else if (state == Game.State.DRAW) { } else if (state == Game.State.DRAW) {
view.gameOver(false, ""); primary.gameOver(false, "");
} }
isRunning.set(false); isRunning.set(false);
@@ -187,14 +185,14 @@ public class Connect4Game {
if (state != Game.State.NORMAL) { if (state != Game.State.NORMAL) {
if (state == Game.State.WIN) { if (state == Game.State.WIN) {
if (response.player().equalsIgnoreCase(information.players[0].name)) { if (response.player().equalsIgnoreCase(information.players[0].name)) {
view.gameOver(true, information.players[0].name); primary.gameOver(true, information.players[0].name);
gameOver(); gameOver();
} else { } else {
view.gameOver(false, information.players[1].name); primary.gameOver(false, information.players[1].name);
gameOver(); gameOver();
} }
} else if (state == Game.State.DRAW) { } else if (state == Game.State.DRAW) {
view.gameOver(false, ""); primary.gameOver(false, "");
gameOver(); gameOver();
} }
} }
@@ -242,14 +240,6 @@ public class Connect4Game {
.postEvent(); .postEvent();
} }
private void onReceivedMessage(NetworkEvents.ReceivedMessage msg) {
if (!isRunning.get()) {
return;
}
view.updateChat(msg.message());
}
private void updateCanvas() { private void updateCanvas() {
canvas.clearAll(); canvas.clearAll();
@@ -266,7 +256,7 @@ public class Connect4Game {
final int currentTurn = game.getCurrentTurn(); final int currentTurn = game.getCurrentTurn();
final String currentValue = currentTurn == 0? "RED" : "BLUE"; final String currentValue = currentTurn == 0? "RED" : "BLUE";
view.nextPlayer(isMe, primary.nextPlayer(isMe,
information.players[isMe? 0 : 1].name, information.players[isMe? 0 : 1].name,
currentValue, currentValue,
information.players[isMe? 1 : 0].name); information.players[isMe? 1 : 0].name);

View File

@@ -53,12 +53,12 @@ public final class ReversiGame {
primary = new GameView(null, () -> { primary = new GameView(null, () -> {
isRunning.set(false); isRunning.set(false);
WidgetContainer.getCurrentView().transitionPrevious(); WidgetContainer.getCurrentView().transitionPrevious();
}, null); }, null, "Reversi");
} else { } else {
primary = new GameView(onForfeit, () -> { primary = new GameView(onForfeit, () -> {
isRunning.set(false); isRunning.set(false);
onExit.run(); onExit.run();
}, onMessage); }, onMessage, "Reversi");
} }
canvas = new ReversiCanvas(Color.BLACK, canvas = new ReversiCanvas(Color.BLACK,

View File

@@ -50,12 +50,12 @@ public final class TicTacToeGame {
primary = new GameView(null, () -> { primary = new GameView(null, () -> {
isRunning.set(false); isRunning.set(false);
WidgetContainer.getCurrentView().transitionPrevious(); WidgetContainer.getCurrentView().transitionPrevious();
}, null); }, null, "TicTacToe");
} else { } else {
primary = new GameView(onForfeit, () -> { primary = new GameView(onForfeit, () -> {
isRunning.set(false); isRunning.set(false);
onExit.run(); onExit.run();
}, onMessage); }, onMessage, "TicTacToe");
} }
canvas = new TicTacToeCanvas(Color.GRAY, canvas = new TicTacToeCanvas(Color.GRAY,

View File

@@ -0,0 +1,39 @@
package org.toop.app.widget.tutorial;
import javafx.geometry.Pos;
import org.toop.app.widget.complex.ViewWidget;
import java.io.File;
public class Connect4TutorialWidget extends ViewWidget {
private TState state;
private String[] keys = {"connect4.1", "connect4.2"};
private File[] images = {new File("app/src/main/resources/assets/images/connect41.png"), new File("app/src/main/resources/assets/images/connect42.png")};
private BaseTutorialWidget tutorialWidget;
public Connect4TutorialWidget() {
this.state = new TState(keys.length);
tutorialWidget = new BaseTutorialWidget(
state,
keys[state.getCurrent()],
images[state.getCurrent()],
() -> {
if (state.hasPrevious()) {
state.previous();
update();
}
},
() -> {
if (state.hasNext()) {
state.next();
update();
}
}
);
add(Pos.CENTER, tutorialWidget);
}
private void update() {
tutorialWidget.update(keys[state.getCurrent()], images[state.getCurrent()]);
}
}

View File

@@ -0,0 +1,39 @@
package org.toop.app.widget.tutorial;
import javafx.geometry.Pos;
import org.toop.app.widget.complex.ViewWidget;
import java.io.File;
public class ReversiTutorialWidget extends ViewWidget {
private TState state;
private String[] keys = {"reversi1", "reversi2", "reversi3", "reversi4"};
private File[] images = {new File("app/src/main/resources/assets/images/reversi1.png"), new File("app/src/main/resources/assets/images/reversi2.png"), new File("app/src/main/resources/assets/images/cat.jpg"), new File("app/src/main/resources/assets/images/cat.jpg")};
private BaseTutorialWidget tutorialWidget;
public ReversiTutorialWidget() {
this.state = new TState(keys.length);
tutorialWidget = new BaseTutorialWidget(
state,
keys[state.getCurrent()],
images[state.getCurrent()],
() -> {
if (state.hasPrevious()) {
state.previous();
update();
}
},
() -> {
if (state.hasNext()) {
state.next();
update();
}
}
);
add(Pos.CENTER, tutorialWidget);
}
private void update() {
tutorialWidget.update(keys[state.getCurrent()], images[state.getCurrent()]);
}
}

View File

@@ -15,7 +15,6 @@ public class TicTacToeTutorialWidget extends ViewWidget {
private BaseTutorialWidget tutorialWidget; private BaseTutorialWidget tutorialWidget;
public TicTacToeTutorialWidget() { public TicTacToeTutorialWidget() {
System.out.println("Hi, I got here!");
this.state = new TState(keys.length); this.state = new TState(keys.length);
tutorialWidget = new BaseTutorialWidget( tutorialWidget = new BaseTutorialWidget(
state, state,
@@ -34,7 +33,6 @@ public class TicTacToeTutorialWidget extends ViewWidget {
} }
} }
); );
System.out.println("Hi, I got to the end!");
add(Pos.CENTER, tutorialWidget); add(Pos.CENTER, tutorialWidget);
} }

View File

@@ -11,6 +11,10 @@ import javafx.geometry.Pos;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import org.toop.app.widget.tutorial.BaseTutorialWidget;
import org.toop.app.widget.tutorial.Connect4TutorialWidget;
import org.toop.app.widget.tutorial.ReversiTutorialWidget;
import org.toop.app.widget.tutorial.TicTacToeTutorialWidget;
public final class GameView extends ViewWidget { public final class GameView extends ViewWidget {
private final Text currentPlayerHeader; private final Text currentPlayerHeader;
@@ -18,10 +22,10 @@ public final class GameView extends ViewWidget {
private final Text nextPlayerHeader; private final Text nextPlayerHeader;
private final Button forfeitButton; private final Button forfeitButton;
private final Button exitButton; private final Button exitButton;
private final Button tutorialButton;
private final TextField chatInput; private final TextField chatInput;
public GameView(Runnable onForfeit, Runnable onExit, Consumer<String> onMessage) { public GameView(Runnable onForfeit, Runnable onExit, Consumer<String> onMessage, String gameType) {
currentPlayerHeader = Primitive.header(""); currentPlayerHeader = Primitive.header("");
currentMoveHeader = Primitive.header(""); currentMoveHeader = Primitive.header("");
nextPlayerHeader = Primitive.header(""); nextPlayerHeader = Primitive.header("");
@@ -47,6 +51,27 @@ public final class GameView extends ViewWidget {
chatInput = null; chatInput = null;
} }
switch(gameType) {
case "TicTacToe":
this.tutorialButton = Primitive.button("tutorialstring", () -> {
transitionNext(new TicTacToeTutorialWidget());
});
break;
case "Reversi":
this.tutorialButton = Primitive.button("tutorialstring", () -> {
transitionNext(new ReversiTutorialWidget());
});
break;
case "Connect4":
this.tutorialButton = Primitive.button("tutorialstring", () -> {
transitionNext(new Connect4TutorialWidget());
});
break;
default:
this.tutorialButton = null;
break;
}
setupLayout(); setupLayout();
} }
@@ -73,6 +98,10 @@ public final class GameView extends ViewWidget {
if (chatInput != null) { if (chatInput != null) {
add(Pos.BOTTOM_RIGHT, Primitive.vbox(chatInput)); add(Pos.BOTTOM_RIGHT, Primitive.vbox(chatInput));
} }
if (tutorialButton != null) {
add(Pos.TOP_LEFT, tutorialButton);
}
} }
public void nextPlayer(boolean isMe, String currentPlayer, String currentMove, String nextPlayer) { public void nextPlayer(boolean isMe, String currentPlayer, String currentMove, String nextPlayer) {

View File

@@ -11,6 +11,8 @@ import org.toop.app.widget.complex.PlayerInfoWidget;
import org.toop.app.widget.complex.ViewWidget; import org.toop.app.widget.complex.ViewWidget;
import org.toop.app.widget.popup.ErrorPopup; import org.toop.app.widget.popup.ErrorPopup;
import org.toop.app.widget.tutorial.BaseTutorialWidget; import org.toop.app.widget.tutorial.BaseTutorialWidget;
import org.toop.app.widget.tutorial.Connect4TutorialWidget;
import org.toop.app.widget.tutorial.ReversiTutorialWidget;
import org.toop.app.widget.tutorial.TicTacToeTutorialWidget; import org.toop.app.widget.tutorial.TicTacToeTutorialWidget;
import org.toop.local.AppContext; import org.toop.local.AppContext;
@@ -37,8 +39,6 @@ public class LocalMultiplayerView extends ViewWidget {
switch (information.type) { switch (information.type) {
case TICTACTOE: case TICTACTOE:
System.out.println(AppSettings.getSettings().getTutorialFlag());
System.out.println(AppSettings.getSettings().getFirstTTT());
if (AppSettings.getSettings().getTutorialFlag() && AppSettings.getSettings().getFirstTTT()) { if (AppSettings.getSettings().getTutorialFlag() && AppSettings.getSettings().getFirstTTT()) {
BaseTutorialWidget a = new BaseTutorialWidget( BaseTutorialWidget a = new BaseTutorialWidget(
"tutorial", "tutorial",
@@ -49,11 +49,10 @@ public class LocalMultiplayerView extends ViewWidget {
}); });
}, },
() -> { () -> {
Platform.runLater(() -> {
ViewWidget c = new TicTacToeTutorialWidget(); ViewWidget c = new TicTacToeTutorialWidget();
transitionNext(c); transitionNext(c);
WidgetContainer.setCurrentView(c); WidgetContainer.setCurrentView(c);
}); AppSettings.getSettings().setFirstTTT(false);
}, },
() -> { () -> {
AppSettings.getSettings().setTutorialFlag(false); AppSettings.getSettings().setTutorialFlag(false);
@@ -67,10 +66,64 @@ public class LocalMultiplayerView extends ViewWidget {
} }
new TicTacToeGameThread(information); new TicTacToeGameThread(information);
break; break;
case REVERSI: new ReversiGame(information); case REVERSI:
case CONNECT4: new Connect4Game(information); if (AppSettings.getSettings().getTutorialFlag() && AppSettings.getSettings().getFirstReversi()) {
// case BATTLESHIP -> new BattleshipGame(information); BaseTutorialWidget a = new BaseTutorialWidget(
"tutorial",
() -> { Platform.runLater(() -> {
AppSettings.getSettings().setFirstReversi(false);
new ReversiGame(information);
});
},
() -> {
Platform.runLater(() -> {
ViewWidget c = new ReversiTutorialWidget();
transitionNext(c);
WidgetContainer.setCurrentView(c);
AppSettings.getSettings().setFirstReversi(false);
});
},
() -> {
Platform.runLater(() -> {
AppSettings.getSettings().setTutorialFlag(false);
new ReversiGame(information);
});
});
transitionNext(a);
break;
} }
new ReversiGame(information);
break;
case CONNECT4:
if (AppSettings.getSettings().getTutorialFlag() && AppSettings.getSettings().getFirstConnect4()) {
BaseTutorialWidget a = new BaseTutorialWidget(
"tutorial",
() -> { Platform.runLater(() -> {
AppSettings.getSettings().setFirstConnect4(false);
new Connect4Game(information);
});
},
() -> {
Platform.runLater(() -> {
ViewWidget c = new Connect4TutorialWidget();
transitionNext(c);
WidgetContainer.setCurrentView(c);
AppSettings.getSettings().setFirstConnect4(false);
});
},
() -> {
Platform.runLater(() -> {
AppSettings.getSettings().setTutorialFlag(false);
new Connect4Game(information);
});
});
transitionNext(a);
break;
}
new Connect4Game(information);
break;
}
// case BATTLESHIP -> new BattleshipGame(information);
}); });
var playerSection = setupPlayerSections(); var playerSection = setupPlayerSections();

View File

@@ -21,7 +21,7 @@ public class AppSettings {
settingsAsset.load(); settingsAsset.load();
} }
doDefaultSettings(); checkSettings();
Settings settingsData = settingsAsset.getContent(); Settings settingsData = settingsAsset.getContent();

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -5,6 +5,7 @@ are-you-sure=\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f?
back=\u0627\u0644\u0631\u062c\u0648\u0639 back=\u0627\u0644\u0631\u062c\u0648\u0639
cancel=\u0625\u0644\u063a\u0627\u0621 cancel=\u0625\u0644\u063a\u0627\u0621
challenge=\u062a\u062d\u062f\u064a challenge=\u062a\u062d\u062f\u064a
connect4=Connect 4
computer-difficulty=\u0635\u0639\u0648\u0628 \u0627\u0644\u0643\u0645\u0628\u064a\u0648\u062a\u0631 computer-difficulty=\u0635\u0639\u0648\u0628 \u0627\u0644\u0643\u0645\u0628\u064a\u0648\u062a\u0631
computer-think-time=\u0648\u0642\u062a \u062a\u0641\u0643\u064a\u0631 \u0627\u0644\u0643\u0645\u0628\u064a\u0648\u062a\u0631 computer-think-time=\u0648\u0642\u062a \u062a\u0641\u0643\u064a\u0631 \u0627\u0644\u0643\u0645\u0628\u064a\u0648\u062a\u0631
computer=\u0643\u0645\u0628\u064a\u0648\u062a\u0631 computer=\u0643\u0645\u0628\u064a\u0648\u062a\u0631
@@ -75,6 +76,13 @@ you-were-challenged-by=\u062a\u062d\u062f\u064a\u062a \u0645\u0646
you-win=\u0623\u0646\u062a \u062a\u0641\u0648\u0632 you-win=\u0623\u0646\u062a \u062a\u0641\u0648\u0632
>=> >=>
<=< <=<
connect4.1=\u0645\u0631\u062d\u0628\u0627 \u0628\u0643 \u0641\u064a \u0644\u0639\u0628\u0629 Connect 4! \u064a\u0645\u0643\u0646\u0643 \u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u0644\u0639\u0628 \u0645\u0646 \u0637\u0631\u0641 \u0645\u0646 \u0627\u0644\u0639\u0645\u0648\u062f\u0627\u062a. \u0633\u064a\u062a\u0645 \u0648\u0636\u0639 \u0627\u0644\u0644\u062d\u0629 \u0627\u0644\u0623\u0642\u0644 \u0641\u064a \u062a\u0644\u0643 \u0627\u0644\u0639\u0645\u0648\u062f\u0629 \u0627\u0644\u0645\u0644\u0623\u0629 \u0627\u0644\u062a\u064a \u0644\u064a\u0633\u062a\u0645\u0644\u0623 \u0627\u0644\u0645\u0644\u0623\u0629.
connect4.2=\u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0641\u0648\u0632 \u0628\u0647\u0632\u0645 \u0623\u0631\u062c\u0639 \u0645\u0646 \u0627\u0644\u0642\u0637\u0639 \u0627\u0644\u0641\u064a \u0627\u0644\u0623\u0641\u0642 \u0623\u0648 \u0627\u0644\u0645\u064a\u0646 \u0623\u0648 \u0623\u0641\u0642 \u0639\u0644\u0649 \u0627\u0644\u0645\u0644\u0623\u0629!
reversi1=\u0645\u0631\u062d\u0628\u0627 \u0628\u0643 \u0641\u064a \u0644\u0639\u0628\u0629 Reversi! \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0644\u0639\u0628 \u0628\u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0623\u064a \u0646\u0642\u0637\u0629 \u0645\u0634\u0631\u0641\u0629.
reversi2=\u0639\u0646\u062f\u0645\u0627 \u062a\u0646\u0642\u0631 \u0639\u0644\u0649 \u0646\u0642\u0637\u0629 \u0633\u064a\u062a\u063a\u064a\u0631 \u062c\u0645\u064a\u0639 \u0627\u0644\u0644\u0648\u0639\u0627\u0628 \u0628\u064a\u0646 \u0645\u0643\u0627\u0646 \u062a\u0636\u0639 \u0627\u0644\u0646\u0642\u0637\u0629 \u0648\u0646\u0642\u0637\u0629 \u0627\u0644\u0644\u0648\u0639 \u0627\u0644\u062a\u0627\u0644\u064a \u0627\u0644\u0645\u0648\u062c\u0648\u062f.
reversi3=\u0645\u0631\u062a\u0643 \u0642\u062f \u064a\u062a\u063a\u0627\u0637 \u0625\u0630\u0627 \u0644\u0645 \u064a\u0643\u0646 \u0647\u0646\u0627\u0643 \u062d\u0631\u0643 \u0642\u0627\u0646\u0648\u0646\u064a.
reversi4=\u0627\u0644\u0644\u0627\u0639\u0628 \u0627\u0644\u0630\u064a \u064a\u0641\u0648\u0632 \u0641\u064a \u0646\u0647\u0627\u064a\u0629 \u0627\u0644\u0644\u0639\u0628 \u0647\u0648 \u0627\u0644\u0630\u064a \u064a\u0643\u0648\u0646 \u0644\u062f\u064a\u0647 \u0627\u0644\u0623\u0643\u062b\u0631 \u0645\u0646 \u0627\u0644\u0644\u0648\u0639\u0627\u0628 \u0639\u0644\u0649 \u0627\u0644\u0644\u0648\u062d\u0629.
tutorialstring=\u0627\u0644\u062f\u0631\u0633 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629
chinese=\u4e2d\u6587 (\u0627\u0644\u0635\u064a\u0646\u064a\u0629) chinese=\u4e2d\u6587 (\u0627\u0644\u0635\u064a\u0646\u064a\u0629)

View File

@@ -9,6 +9,8 @@ computer-difficulty=Computer Schwierigkeit
computer-think-time=Computer Denkzeit computer-think-time=Computer Denkzeit
computer=Computer computer=Computer
connect=Verbinden connect=Verbinden
connect4=Connect 4
credits=Credits credits=Credits
dark=Dunkel dark=Dunkel
deny=Ablehnen deny=Ablehnen
@@ -76,6 +78,13 @@ you-were-challenged-by=Sie wurden herausgefordert von ...
you-win=Sie gewinnen you-win=Sie gewinnen
>=> >=>
<=< <=<
connect4.1=Willkommen beim Spiel Connect 4! Du kannst einen Zug machen, indem du auf eine der Spalten klickst. Der Zug wird in der niedrigsten noch freien Reihe dieser Spalte platziert.
connect4.2=Du kannst gewinnen, indem du 4 Spielsteine deiner Farbe horizontal, diagonal oder vertikal verbindest! Siehe das obige Beispiel.
reversi1=Willkommen beim Spiel Reversi! Du kannst einen Zug machen, indem du auf einen der leicht transparenten Punkte klickst.
reversi2=Wenn du auf einen Punkt klickst, werden alle Spielsteine dazwischen umgedreht, bis zum n<>chsten Punkt. Siehe das Beispiel oben, wo Gelb die zu drehenden Steine ist.
reversi3=Dein Zug kann <20>bersprungen werden, wenn es keinen legalen Zug gibt. Dein Gegner spielt dann weiter, bis du einen legalen Zug machen kannst.
reversi4=Der Spieler, der am Ende die meisten Steine auf dem Brett hat, gewinnt.
tutorialstring=Tutorial
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabisch) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabisch)
chinese=\u4e2d\u6587 (Chinesisch) chinese=\u4e2d\u6587 (Chinesisch)

View File

@@ -42,7 +42,7 @@ moral-support=Moral Support
music-volume=Music Volume music-volume=Music Volume
name=Name name=Name
no=No no=No
never=No, I never wanna see any tutorials never=No, I never want to see any tutorials
ok=Ok ok=Ok
online=Online online=Online
opengl=OpenGL opengl=OpenGL
@@ -76,6 +76,15 @@ you-were-challenged-by=You were challenged by
you-win=You win you-win=You win
>=> >=>
<=< <=<
// tutorial
connect4.1=Welcome to the game of Connect 4! You can make a move by clicking one of the columns. The move will be placed in the lowest row of that column that is not filled yet.
connect4.2=You can win by getting 4 pieces of your row horizontally, diagonally or vertically! For an example, see above.
reversi1=Welcome to the game of Reversi! You can make a move by clicking on one of the slightly transparent dots.
reversi2=Clicking on a dot will flip all the moves between where you place the dot and the next dot it finds. See the example above, where yellow is the moves to be flipped.
reversi3=Your turn may be skipped if there is no legal move. This will let your opponent play again until you get an opportunity at a legal move.
reversi4=The player who wins at the end of the game is the one who has the most pieces on the board.
tutorialstring=Tutorial
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabic) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabic)
chinese=\u4e2d\u6587 (Chinese) chinese=\u4e2d\u6587 (Chinese)

View File

@@ -9,6 +9,8 @@ computer-difficulty=Dificultad del ordenador
computer-think-time=Tiempo de pensamiento del ordenador computer-think-time=Tiempo de pensamiento del ordenador
computer=Ordenador computer=Ordenador
connect=Conectar connect=Conectar
connect4=Connect 4
credits=Cr\u00e9ditos credits=Cr\u00e9ditos
dark=Oscuro dark=Oscuro
deny=Denegar deny=Denegar
@@ -75,6 +77,14 @@ you-were-challenged-by=Fuiste desafiado por
you-win=Ganaste you-win=Ganaste
>=> >=>
<=< <=<
connect4.1=\u00a1Bienvenido al juego de Connect 4! Puedes hacer un movimiento haciendo clic en una de las columnas. El movimiento se colocar<61> en la fila m<>s baja de esa columna que no est<73> llena.
connect4.2=\u00a1Puedes ganar consiguiendo 4 fichas de tu color horizontal, diagonal o verticalmente! Mira el ejemplo de arriba.
reversi1=\u00a1Bienvenido al juego de Reversi! Puedes hacer un movimiento haciendo clic en uno de los puntos ligeramente transparentes.
reversi2=Al hacer clic en un punto, se voltear<61>n todas las fichas entre donde colocas el punto y el siguiente punto que encuentre. Mira el ejemplo de arriba, donde amarillo son las fichas a voltear.
reversi3=Tu turno puede ser saltado si no hay un movimiento legal. Esto permitir<69> que tu oponente juegue nuevamente hasta que tengas una oportunidad legal.
reversi4=El jugador que gane al final del juego es quien tenga m<>s fichas en el tablero.
tutorialstring=Tutorial
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Ar\u00e1bigo) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Ar\u00e1bigo)
chinese=\u4e2d\u6587 (Chino) chinese=\u4e2d\u6587 (Chino)

View File

@@ -9,6 +9,8 @@ computer-difficulty=Difficult\u00e9 de l'ordinateur
computer-think-time=Temps de r\u00e9flexion de l'ordinateur computer-think-time=Temps de r\u00e9flexion de l'ordinateur
computer=Ordinateur computer=Ordinateur
connect=Connexion connect=Connexion
connect4=Connect 4
credits=Cr\u00e9dits credits=Cr\u00e9dits
dark=Sombre dark=Sombre
deny=Refuser deny=Refuser
@@ -75,6 +77,13 @@ you-were-challenged-by=Vous avez \u00e9t\u00e9 d\u00e9fi\u00e9 par
you-win=Vous avez gagn\u00e9 you-win=Vous avez gagn\u00e9
>=> >=>
<=< <=<
connect4.1=Bienvenue dans le jeu Connect 4 ! Vous pouvez effectuer un mouvement en cliquant sur l'une des colonnes. Le mouvement sera plac<61> dans la ligne la plus basse de cette colonne qui n'est pas encore remplie.
connect4.2=Vous pouvez gagner en alignant 4 pions de votre couleur horizontalement, diagonalement ou verticalement ! Voir l'exemple ci-dessus.
reversi1=Bienvenue dans le jeu Reversi ! Vous pouvez jouer en cliquant sur l'un des points l<>g<EFBFBD>rement transparents.
reversi2=Cliquer sur un point retournera tous les pions entre le point plac<61> et le prochain point trouv<75>. Voir l'exemple ci-dessus, o<> le jaune indique les pions <20> retourner.
reversi3=Votre tour peut <20>tre saut<75> s'il n'y a pas de coup l<>gal. Cela permettra <20> votre adversaire de jouer jusqu'<27> ce que vous ayez un coup l<>gal.
reversi4=Le joueur qui a le plus de pions <20> la fin du jeu gagne.
tutorialstring=Tutoriel
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabe) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabe)
chinese=\u4e2d\u6587 (Chinois) chinese=\u4e2d\u6587 (Chinois)

View File

@@ -9,6 +9,8 @@ computer-difficulty=\u0915\u0902\u092a\u094d\u092f\u0942\u091f\u0930 \u0915\u094
computer-think-time=\u0915\u0902\u092a\u094d\u092f\u0942\u091f\u0930 \u091a\u093f\u0902\u0924\u0928 \u0938\u092e\u092f computer-think-time=\u0915\u0902\u092a\u094d\u092f\u0942\u091f\u0930 \u091a\u093f\u0902\u0924\u0928 \u0938\u092e\u092f
computer=\u0915\u0902\u092a\u094d\u092f\u0942\u091f\u0930 computer=\u0915\u0902\u092a\u094d\u092f\u0942\u091f\u0930
connect=\u091c\u094b\u095c\u0947\u0902 connect=\u091c\u094b\u095c\u0947\u0902
connect4=Connect 4
credits=\u0915\u094d\u0930\u0947\u0921\u093f\u091f\u094d\u0938 credits=\u0915\u094d\u0930\u0947\u0921\u093f\u091f\u094d\u0938
dark=\u0917\u0939\u0930\u093e dark=\u0917\u0939\u0930\u093e
deny=\u0907\u0902\u0915\u093e\u0930 deny=\u0907\u0902\u0915\u093e\u0930
@@ -75,6 +77,13 @@ you-were-challenged-by=\u0906\u092a\u0915\u094b \u091a\u0941\u0928\u094c\u0924\u
you-win=\u0906\u092a \u091c\u0940\u0924 \u0917\u090f you-win=\u0906\u092a \u091c\u0940\u0924 \u0917\u090f
>=> >=>
<=< <=<
connect4.1=\u0915\u0928\u094d\u0928\u0947 \u0915\u0940 \u091c\u0948 \u0915\u0947 \u091c\u094c\u0915 \u0915\u0928\u0947\u0915\u094d\u091f 4 \u092e\u0947\u0902! \u0906\u092a \u0915\u0940 \u091a\u0948\u0928 \u092a\u0932\u0938 \u092a\u0928\u094d\u0928 \u0928\u093e\u092e\u094d\u092c\u0921\u093e\u0928\u0947 \u0915\u0940 \u092f\u094b\u0917\u0924\u0940 \u092e\u0947\u0902 \u0915\u0940 \u0928\u093f\u091a\u094d\u091a\u0942\u0928 \u0915\u0940 \u0924\u0939 \u091a\u093f\u0928 \u092a\u0924\u093f \u0928\u0939\u0940\u0902 \u0926\u0947 \u092c\u0924\u0940.
connect4.2=\u092a\u093e\u0902\u091a \u092e\u0946\u092c\u0921 \u0915\u0940 \u092a\u0930\u092a\u0930\u092f\u094d\u0928 \u092d\u093e\u0935\u0940 \u0938\u0947 4 \u092a\u093f\u0938 \u0924\u093e\u0924\u093e \u0915\u0940 \u0930\u094f\u0936\u0942 \u0938\u0940\u0926\u094d\u0927 \u092e\u0947\u0902 \u092a\u0940\u0928\u094d\u0928\u094b\u0902 \u0915\u0940 \u092e\u093e\u0928\u094d\u0926\u0930 \u0939\u0940.
reversi1=\u0915\u0928\u094d\u0928\u0947 \u0915\u0940 \u091c\u0948 \u0910 \u0930\u0947\u0935\u0930\u094d\u0938\u0940 \u092e\u0947\u0902 \u0926\u0948\u091a \u092c\u0922\u093e\u0928 \u0915\u0940 \u092a\u0924\u094d\u0928 \u092a\u0930 \u092a\u094d\u0932\u0947 \u0916\u0942\u0928\u0947 \u0915\u0940 \u092a\u094d\u0930\u092f\u0948\u0915\u0944 \u0915\u0930\u0948\u0902.
reversi2=\u0915\u093f\u0938 \u092a\u0930 \u092a\u093f\u0938 \u092a\u0948\u0918 \u0915\u0940 \u091a\u0928 \u092e\u0947\u0902 \u0938\u092e\u093e\u0930\u094e \u092a\u093f\u0938 \u092a\u0940\u0918 \u092e\u0947\u0902 \u092a\u0930\u093f\u0923\u0924 \u0915\u093e \u092a\u0930\u093f\u0928\u0942\u0924\u0940 \u0915\u0940 \u092a\u094d\u0930\u0924\u093f \u092a\u0941\u0928\u0940 \u092a\u0930\u093f\u0928\u094d\u0924 \u0915\u0940 \u092a\u0940\u0938 \u092a\u0930\u094d\u092f\u0928\u0947 \u091c\u093e\u0902\u0918\u0942.
reversi3=\u092f\u0939 \u092a\u0930\u094d\u092f \u0938\u0947 \u0938\u0947\u091a \u0915\u0940 \u091c\u093e\u0902\u091c \u0928\u0939\u0940\u0902 \u0939\u0948 \u0914\u0938\u0924\u0947 \u0915\u0948 \u092a\u0948\u0928 \u092a\u0930\u094d\u092f \u0939\u0948 \u0914\u092a\u0915\u0940 \u0915\u0940 \u092a\u0932\u0947 \u092d\u0942\u0924 \u0915\u0940 \u0906\u0927\u093e \u092a\u0948\u0928 \u091c\u093e\u0902\u091c \u0915\u0930 \u0938\u0915\u0924\u0947 \u0939\u0948\u0902.
reversi4=\u0916\u0941\u092f \u0915\u093f \u0915\u0940 \u0928\u093f\u092e\u0940 \u092e\u0947\u0902 \u091a\u093e\u0932 \u0938\u092c\u0938\u0947 \u091a\u0942\u0928\u094d\u0928\u0947 \u0939\u0948, \u0935\u0949 \u0915\u0947 \u092e\u093e\u0924\u094d\u0930 \u091c\u0940\u0924\u0947 \u0939\u0948.
tutorialstring=\u0924\u0942\u091f\u0949\u0930\u093f\u092f\u0932
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0905\u0930\u092c\u0940) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0905\u0930\u092c\u0940)
chinese=\u4e2d\u6587 (\u091a\u0940\u0928\u0940) chinese=\u4e2d\u6587 (\u091a\u0940\u0928\u0940)

View File

@@ -9,6 +9,7 @@ computer-difficulty=Difficolt\u00e0 del computer
computer-think-time=Tempo di riflessione del computer computer-think-time=Tempo di riflessione del computer
computer=Computer computer=Computer
connect=Connetti connect=Connetti
connect4=Connect 4
credits=Crediti credits=Crediti
dark=Scuro dark=Scuro
deny=Nega deny=Nega
@@ -75,6 +76,13 @@ you-were-challenged-by=Sei stato sfidato da
you-win=Hai vinto you-win=Hai vinto
>=> >=>
<=< <=<
connect4.1=Benvenuto nel gioco Connect 4! Puoi fare una mossa cliccando su una delle colonne. La mossa sar<61> posizionata nella riga pi<70> bassa di quella colonna che non <20> ancora piena.
connect4.2=Puoi vincere ottenendo 4 pedine del tuo colore in orizzontale, diagonale o verticale! Guarda l'esempio sopra.
reversi1=Benvenuto nel gioco Reversi! Puoi fare una mossa cliccando su uno dei punti leggermente trasparenti.
reversi2=Cliccando su un punto, tutti i pezzi tra dove metti il punto e il prossimo punto trovato verranno girati. Guarda l'esempio sopra, dove il giallo indica i pezzi da girare.
reversi3=Il tuo turno pu<70> essere saltato se non ci sono mosse legali. Questo permetter<65> al tuo avversario di giocare fino a quando non avrai un'opportunit<69> legale.
reversi4=Il giocatore che alla fine del gioco ha pi<70> pezzi sulla scacchiera vince.
tutorialstring=Tutorial
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabo) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabo)
chinese=\u4e2d\u6587 (Cinese) chinese=\u4e2d\u6587 (Cinese)

View File

@@ -9,6 +9,7 @@ computer-difficulty=\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e\u96e3\u6613\u5ea6
computer-think-time=\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e\u601d\u8003\u6642\u9593 computer-think-time=\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e\u601d\u8003\u6642\u9593
computer=\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf computer=\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf
connect=\u63a5\u7d9a connect=\u63a5\u7d9a
connect4=Connect 4
credits=\u30af\u30ec\u30b8\u30c3\u30c8 credits=\u30af\u30ec\u30b8\u30c3\u30c8
dark=\u30c0\u30fc\u30af dark=\u30c0\u30fc\u30af
deny=\u62d2\u5426 deny=\u62d2\u5426
@@ -75,6 +76,13 @@ you-were-challenged-by=\u3042\u306a\u305f\u306f ... \u304b\u3089\u6311\u6226\u30
you-win=\u52dd\u5229\u3067\u3059 you-win=\u52dd\u5229\u3067\u3059
>=> >=>
<=< <=<
connect4.1=\u30b3\u30cd\u30af\u30c84\u306e\u30b2\u30fc\u30e0\u3078\u3088\u3046\u3053\u305d! \u30ab\u30e9\u30e0\u306e\u4e0a\u306e\u30ab\u30e9\u30e0\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u52d5\u304b\u3057\u3092\u884c\u3048\u307e\u3059\u3002\u52d5\u304b\u3057\u306f\u3001\u3060\u307e\u308a\u306f\u307e\u3067\u5869\u3067\u306a\u3044\u884c\u306b\u8a2d\u7f6e\u3055\u308c\u307e\u3059\u3002
connect4.2=\u6a2a\u7dda\u3001\u65b9\u5411\u306e\u307f\u3082\u306a\u3057\u3067\u30014\u3064\u306e\u8ca0\u3051\u3092\u7d50\u5408\u3055\u305b\u308b\u3068\u52dd\u3061\u307e\u3059! \u4e0a\u306e\u4f8b\u3092\u898b\u3066\u304f\u3060\u3055\u3044\u3002
reversi1=\u30ea\u30d0\u30fc\u30b7\u30fb\u30b2\u30fc\u30e0\u3078\u3088\u3046\u3053\u305d! \u30ab\u30e9\u30e0\u306e\u30b9\u30dd\u30c3\u30c8\u30c9\u30c3\u30c8\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u52d5\u304b\u3057\u306e\u30d7\u30ec\u30a4\u304c\u3067\u304d\u307e\u3059\u3002
reversi2=\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u3064\u306a\u304c\u308a\u3092\u542b\u3081\u305f\u8ca0\u3051\u304c\u307e\u3067\u306e\u8ca0\u3051\u304c\u5909\u308f\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
reversi3=\u6b21\u306e\u52d5\u304b\u3057\u304c\u306a\u3044\u5834\u5408\u3001\u8a8d\u5b9a\u3055\u308c\u305f\u52d5\u304b\u3057\u306e\u6642\u9593\u306f\u62d2\u7d76\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002
reversi4=\u672c\u6b21\u306b\u30dc\u30fc\u30c9\u4e0a\u3067\u6700\u591a\u306e\u8ca0\u3051\u3092\u6301\u3064\u30d7\u30ec\u30a4\u30e4\u30fc\u304c\u52dd\u3061\u307e\u3059\u3002
tutorialstring=\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u30a2\u30e9\u30d3\u30a2\u8a9e) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u30a2\u30e9\u30d3\u30a2\u8a9e)
chinese=\u4e2d\u6587 (\u4e2d\u6587) chinese=\u4e2d\u6587 (\u4e2d\u6587)

View File

@@ -9,6 +9,7 @@ computer-difficulty=\uCEF4\uD4E8\uD130 \uC5B4\uB9AC\uAE30
computer-think-time=\uCEF4\uD4E8\uD130 \uC0DD\uAC01 \uC2DC\uAC04 computer-think-time=\uCEF4\uD4E8\uD130 \uC0DD\uAC01 \uC2DC\uAC04
computer=\uCEF4\uD4E8\uD130 computer=\uCEF4\uD4E8\uD130
connect=\uC5F0\uACB0 connect=\uC5F0\uACB0
connect4=Connect 4
credits=\uD06C\uB808\uB527 credits=\uD06C\uB808\uB527
dark=\uC5B4\uB460 dark=\uC5B4\uB460
deny=\uAC70\uBD80 deny=\uAC70\uBD80
@@ -75,6 +76,13 @@ you-were-challenged-by=... \uB85C\uBD80\uD130 \uCC38\uC5EC \uC694\uCCAD\uC744 \u
you-win=\uC774\uACBC\uC2B5\uB2C8\uB2E4 you-win=\uC774\uACBC\uC2B5\uB2C8\uB2E4
>=> >=>
<=< <=<
connect4.1=Connect 4 \uacbd\uc6b0\uc5d0 \uc81c\uc2dc\ud569\ub2c8\ub2e4! \ud648\ub825\uc744 \ub2e4\ub978 \uc0c1\uc704\ub85c \ud074\ub9ad\ud558\uc2dc\uba70 \ub2e4\uc74c \uc815\uc758 \ud648\ub825\uc744 \ub610\ub294 \uc704\ub85c \uc0ac\uc6a9\ud558\uc2dc\uba70 \ud648\ub825\uc744 \uc124\uc815\ud569\ub2c8\ub2e4.
connect4.2=\uc0ac\uc6a9\uc790\uc758 \ud648\uc744 \uc54c\ub824 \ud574\uc8fc\uba70 \ud574\ub2f9 \ud648\uc758 4\uae38\uc744 \ud574\uc8fc\uba70 \ud655\uc9c0, \ub354\ub7ec \ubc29\uacfc \ub610\ub294 \uc0ac\uc6a9\uc790 \ud648\uc758 \uc5f4\ub9b0 \ucd5c\ub300 \ubc29\ud574\uc5d0 \uc5c6\uc74c\uc774\ub2e4!
reversi1=Reversi \uacbd\uc6b0\uc5d0 \uc81c\uc2dc\ud569\ub2c8\ub2e4! \ub2e4\ub978 \ud615\uc2dd\uc758 \ud648\uc744 \ud074\ub9ad\ud558\uc2dc\uba70 \ub2e4\uc74c \uc815\uc758 \ud648\uc744 \uc124\uc815\ud569\ub2c8\ub2e4.
reversi2=\ud074\ub9ad \ud558\uba70, \ub2e4\ub978 \ud648 \uc704\ub85c \ucd5c\uc2e0 \ubc1b\ub294 \ud648\uc5d0 \ub300\ud574 \ub2e4\uc774\ubc84\ub77c\uc758 \ud648\uc744 \ubcc0\uacbd\ud569\ub2c8\ub2e4.
reversi3=\uc0ac\uc6a9\uc790\uc758 \ud648\uc744 \ud074 \uc218 \uc5c6\uc2b5\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\uc790 \ub2f5\uc5d0 \ub300\ud574 \uc811\ub2c8\ub2e4.
reversi4=\uacbd\uc6b0 \uc5d0\uc11c \ucd5c\ub300 \ud648\uc744 \uac00\uc838\ub294 \uc0ac\uc6a9\uc790\uc774 \uc52c\uc544\uc624\uba70 \uc0ac\uc6a9\uc790\uc758 \ud648\uc744 \uc54c\ub824\ud569\ub2c8\ub2e4.
tutorialstring=\ud14c\ud2b8\ub9ad
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0639\u0631\u0628\u064a\u0629) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0639\u0631\u0628\u064a\u0629)
chinese=\u4e2d\u6587 (\u4e2d\u6587) chinese=\u4e2d\u6587 (\u4e2d\u6587)

View File

@@ -76,6 +76,13 @@ you-were-challenged-by=Je bent uitgedaagd door
you-win=Je wint you-win=Je wint
>=> >=>
<=< <=<
connect4.1=Welkom bij het spel Connect 4! Je kunt een zet doen door op een van de kolommen te klikken. De zet wordt geplaatst in de laagste nog lege rij van die kolom.
connect4.2=Je kunt winnen door 4 van je stukken horizontaal, diagonaal of verticaal op een rij te krijgen! Zie het voorbeeld hierboven.
reversi1=Welkom bij het spel Reversi! Je kunt een zet doen door op een van de licht transparante stippen te klikken.
reversi2=Door op een stip te klikken draai je alle stukken om tussen de plaats waar je de stip zet en de volgende stip die wordt gevonden. Zie het voorbeeld hierboven, waar geel de stukken zijn die omgedraaid worden.
reversi3=Je beurt kan worden overgeslagen als er geen legale zet is. Hierdoor kan je tegenstander doorgaan tot jij een legale zet kunt doen.
reversi4=De speler die aan het einde van het spel de meeste stukken op het bord heeft, wint.
tutorialstring=Tutorial
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabisch) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (Arabisch)
chinese=\u4e2d\u6587 (Chinees) chinese=\u4e2d\u6587 (Chinees)

View File

@@ -5,6 +5,7 @@ are-you-sure=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?
back=\u041d\u0430\u0437\u0430\u0434 back=\u041d\u0430\u0437\u0430\u0434
cancel=\u041e\u0442\u043c\u0435\u043d\u0430 cancel=\u041e\u0442\u043c\u0435\u043d\u0430
challenge=\u0412\u044b\u0437\u043e\u0432 challenge=\u0412\u044b\u0437\u043e\u0432
connect4=Connect 4
computer-difficulty=\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 computer-difficulty=\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430
computer-think-time=\u0412\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 computer-think-time=\u0412\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430
computer=\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 computer=\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440
@@ -75,6 +76,13 @@ you-were-challenged-by=\u0412\u0430\u0441 \u0432\u044b\u0437\u0432\u0430\u043b \
you-win=\u0412\u044b \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442\u0435 you-win=\u0412\u044b \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442\u0435
>=> >=>
<=< <=<
connect4.1=\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0438\u0433\u0440\u0443 Connect 4! \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0445\u043e\u0434, \u043a\u043b\u0438\u043a\u043d\u0443\u044f \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432. \u0425\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u0432 \u043d\u0438\u0436\u0430\u0439 \u043d\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u044d\u0442\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435.
connect4.2=\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0438\u0433\u0440\u0430\u0442\u044c, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0432 4 \u0444\u0438\u0448\u043a\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e, \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0438\u043b\u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e!
reversi1=\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0438\u0433\u0440\u0443 Reversi! \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0445\u043e\u0434, \u043a\u043b\u0438\u043a\u043d\u0443\u044f \u043f043 \u043f043 \u043d043 \u043e043 \u043d043 \u043e043 \u043a043 \u0430043 \u043a043 \u0430043.
reversi2=\u041d043 \u043d043 \u0430043 \u043a043 \u0430043 \u043a043 \u043e043 \u043c043 \u0435043 \u0436043 \u0435043 \u0434043 \u0435043 \u043d043 \u0430043.
reversi3=\u0412043 \u0430043 \u0436043 \u0434043 \u0430043 \u043d043 \u0438043 \u043d043 \u0435043 \u0435043 \u0432043 \u0430043.
reversi4=\u0418043 \u0433043 \u0440043 \u043e043 \u043a043 \u043e043 \u0442043 \u043e043 \u0442043 \u043e043 \u0435043 \u0435043 \u0430043 \u0435043 \u043d043 \u0438043 \u0435043 \u0435043 \u043c043 \u0430043.
tutorialstring=\u0423\u0447\u0435\u0431\u043d\u0438\u043a
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0410\u0440\u0430\u0431\u0441\u043a\u0438\u0439) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0410\u0440\u0430\u0431\u0441\u043a\u0438\u0439)
chinese=\u4e2d\u6587 (\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439) chinese=\u4e2d\u6587 (\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439)

View File

@@ -9,6 +9,7 @@ computer-difficulty=\u8ba1\u7b97\u673a\u96be\u5ea6
computer-think-time=\u8ba1\u7b97\u673a\u601d\u8003\u65f6\u95f4 computer-think-time=\u8ba1\u7b97\u673a\u601d\u8003\u65f6\u95f4
computer=\u8ba1\u7b97\u673a computer=\u8ba1\u7b97\u673a
connect=\u8fde\u63a5 connect=\u8fde\u63a5
connect4=Connect 4
credits=\u81f4\u8c22 credits=\u81f4\u8c22
dark=\u6697\u8272 dark=\u6697\u8272
deny=\u62d2\u7edd deny=\u62d2\u7edd
@@ -75,6 +76,13 @@ you-were-challenged-by=\u60a8\u88ab\u6311\u6218\u81ea
you-win=\u60a8\u83b7\u80dc\u4e86 you-win=\u60a8\u83b7\u80dc\u4e86
>=> >=>
<=< <=<
connect4.1=\u6b22\u8fce\u6765\u5230 Connect 4 \u6e38\u620f! \u4f60\u53ef\u4ee5\u70b9\u51fb\u4e00\u5217\u6761\u76ee\u64cd\u4f5c. \u64cd\u4f5c\u5c06\u88c5\u7f6e\u5728\u672a\u88c5\u5165\u7684\u6700\u4f4e\u884c.
connect4.2=\u5982\u679c\u5f97\u52304\u4e2a\u5bf9\u5e94\u7684\u4ee3\u7406\u7ec4\u6210\u6c34\u5e73\u3001\u5347\u5e26\u6216\u5782\u76f4\u5373\u53ef\u80dc. \u770b\u4e0a\u65b9\u793a\u4f8b.
reversi1=\u6b22\u8fce\u6765\u5230 Reversi \u6e38\u620f! \u4f60\u53ef\u4ee5\u70b9\u51fb\u4e00\u4e2a\u9ed8\u8272\u5149\u900f\u7a7a\u70b9\u64cd\u4f5c.
reversi2=\u70b9\u51fb\u4e00\u4e2a\u70b9\u65f6\u5c06\u5c06\u6240\u6709\u4e2d\u95f4\u7684\u4ee3\u7406\u7ffb\u8f6c\u3002 \u770b\u4e0a\u65b9\u793a\u4f8b\uff0c\u9ec4\u8272\u662f\u5bf9\u4ee3\u7406\u9700\u64ad\u7684\u4ee3\u7406.
reversi3=\u5982\u679c\u6ca1\u6709\u5408\u6cd5\u64cd\u4f5c\u4f60\u7684\u8fdb\u6b65\u53ef\u80fd\u88ab\u5ffd\u7565. \u8fd9\u4f1a\u8ba9\u5bf9\u624b\u518d\u6b21\u64cd\u4f5c\u5230\u4f60\u6709\u5408\u6cd5\u64cd\u4f5c\u65f6.
reversi4=\u672c\u6e38\u620f\u7ed3\u675f\u65f6\u8d62\u5f97\u6ee1\u8fc7\u76d8\u9762\u7684\u4ee3\u7406\u6570\u6700\u591a\u7684\u4eba\u5c31\u80dc.
tutorialstring=\u6559\u7a0b
arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u963f\u62c9\u4f2f\u8bed) arabic=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u963f\u62c9\u4f2f\u8bed)
chinese=\u4e2d\u6587 chinese=\u4e2d\u6587