Обеспечение всемирной трансляции спортивных шахматных соревнований с применением разработанного в ходе проекта законченного программного продукта

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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

---