Files
dartsunfish/lib/src/ui.dart
2021-08-01 21:13:25 +03:00

48 lines
1.4 KiB
Dart

import 'package:dartsunfish/index.dart';
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// User interface
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class UI {
static int parse(String? c) {
var fil = c![0].codeUnits.first - 'a'.codeUnits.first;
var rank = int.parse(c[1]) - 1;
return A1 + fil - 10 * rank;
}
static String render(int i) {
var rank = (i - A1) ~/ 10;
var fil = (i - A1) % 10;
return String.fromCharCodes([fil + 'a'.codeUnits.first]) + (-rank + 1).toString();
}
static void printBoard(Position pos) {
final uni_pieces = {
'R': '',
'N': '',
'B': '',
'Q': '',
'K': '',
'P': '',
'r': '',
'n': '',
'b': '',
'q': '',
'k': '',
'p': '',
'.': '·',
// ' ': ' '
};
print('');
final bordChars = pos.board.split('\n');
for (var i = 0; i < bordChars.length; i++) {
var row = bordChars[i];
if (!row.isSpace) {
var pieces = row.split('').map((e) => e = e.isSpace ? '' : uni_pieces[e]!);
print('${(10 - i)}${pieces.join(' ')}');
}
}
print(' a b c d e f g h \n\n');
}
}