Обеспечение всемирной трансляции спортивных шахматных соревнований с применением разработанного в ходе проекта законченного программного продукта
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
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(" ");
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