Обеспечение всемирной трансляции спортивных шахматных соревнований с применением разработанного в ходе проекта законченного программного продукта
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
this.current_move.forward();
}
}
// Перейти к началу
function go_begin() {
}
// Перейти к концу
function go_end() {
}
// Следующий ход
function go_next() {
}
// Предыдущий ход
function go_preview() {
}
// Перейти к произвольному ходу
function go_custom(number, color) {
}
// сделать ход
function do_move(from_field, to_field) {
}
// Возвращает поле
function get_field(vertical, horizontal) {
}
// Установить фигуру на поле
function set_field(field_to_set) {
this.last_field = field_to_set;
field_to_set.figure = this;
field_to_set.repaint();
}
// Возвращает ход по номеру и цвету
function get_move(number, color) {
}
// Возвращает текуший ход
function get_current_move() {
return this.current_move;
}
// Возвращает true если есть ход который нужно совершить
function exists_move() {
}
function repaint() {
$(this.id).innerHTML = ;
if(this.figure != null) {
$(this.id).appendChild(this.figure.img);
}
}
function reload() {
this.img.src = images + this.color[0] + this.type[0] + .gif;
//trace(reload figure [ + this.id + ].src = \" + this.img.src + \");
}
// Ход вперед !! предыдущую фигуру удалить
function forward(){
if(this.to_field.figure != null) {
}
this.figure.do_move(this.from_field, this.to_field);
}
// Ход назад
function backward() {
this.figure.do_move(this.to_field, this.from_field);
this.alive_figure.set_field(this.to_field);
}
function trace(message) {
$("debug").innerHTML += message + ;
}
window.onload=function() {
// Запуск
var main_board = new board();
main_board.init();
// setBeginingPosition();
// refreshGame();
// new PeriodicalExecuter(refreshGame, periodicalDelay);
// new PeriodicalExecuter(refreshBoard, 1);
}
Приложение Г
Листинг программы-регистратора шахматных партий
rdgtChess.java
---
public class rdgtChess implements Runnable
static boolean debug = false;
String comport = "COM1";
public static void main(String[] args) {
rdgtChess t;
0)">if(args.length > 0)
t = new rdgtChess(args[0]);
else
t = new rdgtChess();
}
public rdgtChess() {
(new Thread(this)).start();
}
public rdgtChess(String comport) {
this.comport = comport;
(new Thread(this)).start();
}
// Destructor
public void finalize()
{
rdgtMysql.disconnect();
}
// This is the main loop. It samples all boards and tries at regular intervals
// to find new boards and to mark non-answering boards as, well, non-answering.
Это головная часть. Она опрашивает все доски с регулярным интервалом времени,
чтобы найти новые доски и отметить неотвечающие доски как неотвечающие
public void run() {
rdgtController c = new rdgtController();
if (c.connect(comport) == false) return;
System.out.println(rdgtMysql.connect());
int i = 0;
while (true) {
if ((i==0) || (c.db.count_alive()==0)) {
while (c.find_all_boards()==0) {} c.dump_all_active_boards();
i = 15;
} else {
try {Thread.sleep(1000);} catch(Throwable t) {}}
c.poll_all_active_boards();
i--;
}
}
}
rdgtChessboard.java
---
class rdgtChessboard {
Integer address;
rdgtHistory history = new rdgtHistory(this);
rdgtSnapshot snapshot = new rdgtSnapshot(this);
rdgtFenhax myFenhax = new rdgtFenhax();
boolean alive;
boolean dumped;
boolean updated;
rdgtDatabase db;
rdgtChessBoardForm board = null;
public rdgtChessboard(Integer _address, rdgtDatabase _db) {
address = _address;
db = _db;
alive = true;
dumped = false;
updated = false;
update_html();
board = new rdgtChessBoardForm();
new Thread(new Runnable() {
public void run() {
board.setVisible(true);
}
}).start();
}
rdgtSnapshot get_snapshot() {
return snapshot;
}
int get_address() {
return address.intValue();
}
public void print_position() {
board.printPosition(snapshot.debugprint());
board.printClock(snapshot.debugprint_clock());
}
String print_figure(int figure) {
if(figure == rdgtProtocol.EMPTY) {
return " ";
} else if (figure == rdgtProtocol.WPAWN) {
return "P";
} else if(figure == rdgtProtocol.WROOK) {
return "R";
} else if(figure == rdgtProtocol.WKNIGHT) {
return "N";
} else if(figure == rdgtProtocol.WBISHOP) {
return "B";
} else if(figure == rdgtProtocol.WQUEEN) {
return "Q";
} else if(figure == rdgtProtocol.WKING) {
return "K";
} else if (figure == rdgtProtocol.BPAWN) {
return "p";
} else if(figure == rdgtProtocol.BROOK) {
return "r";
} else if(figure == rdgtProtocol.BKNIGHT) {
return "n";
} else if(figure == rdgtProtocol.BBISHOP) {
return "b";
} else if(figure == rdgtProtocol.BQUEEN) {
return "q";
} else if(figure == rdgtProtocol.BKING) {
return "k";
} else {
return " ";
}
}
void set_alive(boolean x) {
alive = x;
update_html();
}
void set_dumped(boolean x) {
dumped = x;
}
void set_updated(boolean x) {
updated = x;
history.append(snapshot);
}
boolean get_alive() {
return alive;
}
boolean get_dumped() {
return dumped;
}
boolean get_updated() {
return updated;
}
void set_clockdata(boolean running, boolean batteryLow, boolean frontViewLeftSideHigh, boolean blacksTurn, boolean whitesTurn, int secW, int secB) {
snapshot.set_clockdata(running, batteryLow, frontViewLeftSideHigh, blacksTurn, whitesTurn, secW, secB);
snapshot.debugprint_clock();
}
void update_html() {
rdgtMysql.update_snapshot(snapshot);
String fen = rdgtMysql.snapshot2fen(snapshot);
myFenhax.add(fen);
rdgtMysql.update_moves(rdgtFenhax.getMoves(true, false), rdgtFenhax.getMoves(true, true), address.intValue());
}
void set_emptyboard() {
snapshot.set_emptyboard();
history.append(snapshot);
}
void set_boarddump(int[] all64, int startpos) {
snapshot.set_boarddump(all64, startpos);
dumped = true;
history.append(snapshot);
}
void set_fieldupdate(int piece, int pos) {
snapshot.set_fieldupdate(piece, pos);
updated = true;
history.append(snapshot);
}
}
rdgtConfig.java
---
class rdgtConfig {
String getDbServer() { return server; }
String getDbUser() { return user; }
String getDbPass() { return pass; }
String getDbBase() { return dbase; }
boolean useDbServer() { return mysql; }
boolean usePgnWriter() { return pgn; }
String getPgnFileName() { return pgnfile; }
String server= "localhost";
String user= "root";
String pass= "zar1562";
String dbase= "rdgt_development";
boolean mysql = true;
boolean pgn = false;
String pgnfile = "default.pgn";
}
rdgtController.java
---