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

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

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

tNotation)

output += m.shortNotation()+" ";

else

output += m.longNotation()+" ";

 

if(nice){

if(!m.isWhite())

output += "\n";

else{

if(output.length()-length < 8) output += "\t";

if(output.length()-length < 12) output += "\t";

}

}

}

return output;

}

 

public void add(move aMove){

if(!unique){

moves.add(aMove);

return;

}

 

for(int i=0;i<moves.size();i++){

if( ((move)moves.get(i)).equals(aMove))

return;

}

 

=1){">if(moves.size()>=1){

move m=(move)moves.get(moves.size()-1);

 

// O-O

if(m.moveString(false).equals("Ke1-g1") && aMove.moveString(false).equals("Rh1-f1")){

moves.remove(moves.size()-1);

moves.add(new move(aMove.getFrom(),aMove.getTo(),"O-O"));

return;

}

// O-O-O

if(m.moveString(false).equals("Ke1-c1") && aMove.moveString(false).equals("Ra1-d1")){

moves.remove(moves.size()-1);

moves.add(new move(aMove.getFrom(),aMove.getTo(),"O-O-O"));

return;

}

// O-O

if(m.moveString(false).equals("Ke8-g8") && aMove.moveString(false).equals("Rh8-f8")){

moves.remove(moves.size()-1);

moves.add(new move(aMove.getFrom(),aMove.getTo(),"O-O"));

return;

}

// O-O-O

if(m.moveString(false).equals("Ke8-c8") && aMove.moveString(false).equals("Ra8-d8")){

moves.remove(moves.size()-1);

moves.add(new move(aMove.getFrom(),aMove.getTo(),"O-O-O"));

return;

}

}

moves.add(aMove);

}

 

public void removeSmooth(){

for(int a=0;a<moves.size();a++){

move aMove=(move)moves.get(a);

 

for(int i=0;i<moves.size();i++){

move test = (move)moves.get(i);

if( test.getPiece() == aMove.getPiece()){

if( aMove.getFrom().getSquare() == test.getTo().getSquare() ||

aMove.getTo().getSquare() == test.getFrom().getSquare() ){

if(a==i){

moves.remove(i);

i=moves.size();

a=0;

}

else if(i>a){

moves.remove(i);

moves.remove(a);

i=moves.size();

a=0;

}

else {

moves.remove(a);

moves.remove(i);

i=moves.size();

a=0;

}

}

}

}

}

}

}

 

rdgtHistory.java

---

class rdgtHistory {

 

Vector history = new Vector();

rdgtSnapshot lastadded = null;

rdgtSnapshot last = null;

rdgtChessboard board;

 

public rdgtHistory(rdgtChessboard _board) {

board = _board;

}

 

void append(rdgtSnapshot x) {

if(history.size()==0){

history.addElement(x.copy());

board.update_html();

}

else if(x.sameas((rdgtSnapshot)history.lastElement())==false ){

history.addElement(x.copy());

board.update_html();

}

}

 

void debugprint() {

System.out.println("======= History for board: "+board.address.toString());

for (Enumeration e = history.elements(); e.hasMoreElements() ;) {

((rdgtSnapshot)(e.nextElement())).debugprint();

}

}

}

 

rdgtHtml.java

---

class rdgtHtml extends rdgtProtocol {

 

static String extension = ".html";

static String indexfilename = "board_index";

static String historyprefix = "boardhistory_";

static String snapshotprefix = "boardsnapshot_";

 

static void print_index(rdgtDatabase db) {

StringBuffer s = new StringBuffer(2000);

\n\n");

\n");

History\n");

 

for (Enumeration e = db.get_boards() ; e.hasMoreElements() ;) {

rdgtChessboard b = (rdgtChessboard)(e.nextElement());

 

\n");

s.append(Integer.toString(b.get_address()));

");">s.append("\n");

if (b.get_alive()==true) s.append("Online"); else s.append("Offline");

");">s.append("");

s.append(b.get_snapshot().get_time().toString());

<a href=\"");

s.append(snapshotprefix);

s.append(Integer.toString(b.get_address()));

s.append(extension);

Link<a href=\"");

s.append(historyprefix);

s.append(Integer.toString(b.get_address()));

s.append(extension);

Link\n");

 

}

\n\n");

 

if (writefile(indexfilename+extension, s.toString()) == false) {

System.err.println("Error: Failed to write indexfile.");

return;

}

}

 

static void print_history(rdgtHistory h) {

StringBuffer s = new StringBuffer(2000);

\n\n");

History for Chessboard: ");

s.append(Integer.toString(h.board.get_address()));

\n");">s.append("\n");

int i = 0;

for (Enumeration e = h.history.elements() ; e.hasMoreElements() ;) {

rdgtSnapshot ss = (rdgtSnapshot)(e.nextElement());

i=i+1;

Move: ");

s.append(Integer.toString(i));

s.append(" &nbsp; &nbsp;");

s.append(ss.get_time().toString());

s.append(boardview(ss));

s.append("\n");

}

\n\n");

 

if (writefile(historyprefix + Integer.toString(h.board.get_address()) + extension, s.toString()) == false) {

System.err.println("Error: Failed to write historyfile.");

return;

}

}

 

static String boardview(rdgtSnapshot b) {

StringBuffer s = new StringBuffer(1000);

\n");">s.append("\n");

boolean filled = true;

for (int i=0; i<8; i=i+1) {

");">s.append("");

for (int j=0; j<8; j=j+1) {

<img src=\"images/");

int p = b.pieces[(i*8)+j];

if (p==EMPTY ) s.append("empty");

else if (p==WPAWN ) s.append("w_pawn");

else if (p==WROOK ) s.append("w_rook");

else if (p==WKNIGHT) s.append("w_knight");

else if (p==WBISHOP) s.append("w_bishop");

else if (p==WKING ) s.append("w_king");

else if (p==WQUEEN ) s.append("w_queen");

else if (p==BPAWN ) s.append("b_pawn");

else if (p==BROOK ) s.append("b_rook");

else if (p==BKNIGHT) s.append("b_knight");

else if (p==BBISHOP) s.append("b_bishop");

else if (p==BKING ) s.append("b_king");

else if (p==BQUEEN ) s.append("b_queen");

if (filled) s.append("1"); else s.append("2");

filled = !filled;

");">s.append(".gif\">");

}

filled = !filled;

\n");">s.append("\n");

}

");">s.append("\n");

return s.toString();

}

 

static void print_snapshot(rdgtSnapshot ss) {

StringBuffer s = new StringBuffer(2000);

\n\n &l