예제 #1
0
파일: test.cs 프로젝트: Arakis/TamaniChess
			public override void onPieceChangedDelay(TSwitchChangeEvent e) {
				Console.WriteLine((e.state ? "" : "             ") + e.pos.ToString() + " " + e.state.ToString());
				//boardLeds.clear();
				//if (e.state)
				//	boardLeds[e.pos].state = e.state;
			}
예제 #2
0
		public override void onPieceChangedDelay(TSwitchChangeEvent e) {
			base.onPieceChangedDelay(e);

		}
예제 #3
0
		public override void onPieceChanged(TSwitchChangeEvent e) {
			base.onPieceChanged(e);
			disable();
		}
예제 #4
0
		public override void onPieceChanged(TSwitchChangeEvent e) {
			if (!e.state && e.pos != move.start && e.pos != move.target) {
				app.player.play("error");
			}

			Console.WriteLine(e.pos.ToString() + e.state.ToString());
			if (e.pos == move.start && !e.state) tmpMove.start = e.pos;
			if (e.pos == move.start && e.state) tmpMove.start = null;
			if (e.pos == move.target && e.state) tmpMove.target = e.pos;
			if (e.pos == move.target && !e.state) tmpMove.target = null;

			if (tmpMove.start == null) {
				foreach (var led in boardLeds.getAllFieldLeds(move.target)) led.off();
				foreach (var led in boardLeds.getAllFieldLeds(move.start)) led.on();
			}
			else {
				foreach (var led in boardLeds.getAllFieldLeds(move.start)) led.off();
				foreach (var led in boardLeds.getAllFieldLeds(move.target)) led.on();
			}

			if (tmpMove.start != null && tmpMove.target != null) {

				if (app.game.makeMove(move)) {
					if (app.game.board.checkState == ECheckState.check) {
						app.player.play("check");
					}
					else {
						app.player.play("moved");
					}

					Console.WriteLine("computer move done");
					uninstall();

					var handler = new TOwnMoveHandler();
					handler.install();
				}
				else {
					Console.WriteLine("INVALID MOVE");
				}

			}
		}
예제 #5
0
		public override void onPieceChangedDelay(TSwitchChangeEvent e) {
			base.onPieceChangedDelay(e);

			if (app.board[e.pos].isOpponent && !e.state) target = e.pos;
			if (app.board[e.pos].isEmtpy && e.state) target = e.pos;

			//Gegnerischer Stein wurde wieder abgesetzt
			if (app.board[e.pos].isOpponent && e.state && start == null) target = null;

			//Eigenen Stein wurde wieder abgesetzt
			if (app.board[e.pos].isOwn && e.state && target == null) start = null;

			if (app.board[e.pos].isOwn && !e.state) start = e.pos;

			//boardLeds.clear();
			//if (start != null) foreach (var led in boardLeds.getAllFieldLeds(start)) led.on();
			//if (target != null) foreach (var led in boardLeds.getAllFieldLeds(target)) led.on();
		}
예제 #6
0
		public override void onPieceChanged(TSwitchChangeEvent e) {
			showMove = tmpMove;
			Console.WriteLine(e.pos.ToString() + e.state.ToString());
			base.onPieceChanged(e);
			boardLeds.clear();
			if ((!e.state && !app.board[e.pos].isEmtpy) || (e.state && app.board[e.pos].isEmtpy))
				foreach (var led in boardLeds.getAllFieldLeds(e.pos)) led.on();

			//Weil der Schalter beim schlagen u.U. zu kurz offen ist
			if (start != null && app.board[e.pos].isOpponent) {
				target = e.pos;

				//moveDone();
			}
		}
예제 #7
0
		public override void onPieceChangedDelay(TSwitchChangeEvent e) {
			base.onPieceChangedDelay(e);
			if (e.state)
				app.board[e.pos].piece = piece;
			else {
				app.board[e.pos].piece = EPiece.none;
			}

			//if (app.board.canSendToEngine()) {
			//	string newFEN;
			//	bool isCheck;
			//if (app.engine.validate(app.board.toFEN(), out newFEN, out isCheck))
			app.game.setBoard(app.board.toFEN());
			//}
		}
예제 #8
0
		public override void onPieceChangedDelay(TSwitchChangeEvent e) {
			base.onPieceChangedDelay(e);
			if (!e.state) {
				app.board[e.pos].piece = EPiece.none;
			}

			if (app.board.canSendToEngine()) {
				app.engine.position(app.board.toFEN());
				engine.debug();
			}
		}