47755 (588501), страница 14
Текст из файла (страница 14)
t.column "number", :integer
t.column "game_id", :integer
t.column "white_move", :string, :limit => 6
t.column "black_move", :string, :limit => 6
t.column "white_clock", :float
t.column "black_clock", :float
t.column "white_comment", :text
t.column "black_comment", :text
end
create_table "players", :force => true do |t|
t.column "first_name", :string, :limit => 30
t.column "second_name", :string, :limit => 30
t.column "country_id", :integer
t.column "burn_date", :datetime
t.column "fide_rating", :integer
t.column "photo", :binary
t.column "description", :text
end
create_table "tournament_views", :force => true do |t|
t.column "name", :string, :limit => 30
t.column "system", :string, :limit => 30
t.column "is_match", :boolean, :limit => nil, :default => false
t.column "is_command", :boolean, :limit => nil, :default => false
t.column "total_games", :integer, :default => 0
t.column "total_rounds", :integer, :default => 0
t.column "description", :text
end
create_table "tournaments", :force => true do |t|
t.column "name", :string, :limit => 30
t.column "category", :integer
t.column "city_id", :integer
t.column "begin_date", :datetime
t.column "end_date", :datetime
t.column "tournament_view_id", :integer
t.column "status", :string, :limit => 30
t.column "description", :text
end
create_table "users", :force => true do |t|
t.column "login", :string, :limit => 30
t.column "password", :string, :limit => 50
t.column "name", :string, :limit => 30
t.column "is_admin", :boolean, :limit => nil, :default => false
t.column "email", :string, :limit => 30
t.column "webpage", :string, :limit => 30
t.column "desciption", :text
end
end
Javascript (javascript) – осуществляют демонстрацию шахматной партии, при помощи технологии AJAX обращаясь за обновлениями позиции на rDGT сервер.
game.js
---
var images = 'http://localhost:3000/images/classic/';
var moves_url = '/main/game_moves/1';
// Фигура
function figure(id, color, type, current_field, last_field, alive, board) {
this.id = id;
this.color = color;
this.type = type;
this.current_field = current_field;
this.last_field = last_field;
this.alive = alive;
this.set_field = set_field;
this.do_move = do_move;
this.reload = reload;
this.img = document.createElement('img');
this.img.id = this.id;
this.board = board;
this.reload();
//trace('create figure [' + this.id + ']');
}
// Поле
function field(id, color, vertical, horizontal, figure, board) {
this.id = id;
this.color = color;
this.vertical = vertical;
this.horizontal = horizontal;
this.figure = figure;
this.board = board;
this.repaint = repaint;
//trace('create field [' + this.id + ']');
}
// Ход
function move(number, color, from_field, to_field, figure, alive_figure, is_short_castling, is_long_castling, prev_move, next_move, board, time) {
this.number = number;
this.color = color;
this.from_field = from_field;
this.to_field = to_field;
this.figure = figure;
this.alive_figure = alive_figure;
this.forward = forward;
this.backward = backward;
this.is_short_castling = is_short_castling;
this.is_long_castling = is_long_castling;
this.prev_move = prev_move;
this.next_move = next_move;
this.board = board;
this.white_time = white_time;
this.black_time = black_time;
}
// Коллекция ходов
function move_collection(board) {
this.board = board;
this.get_move = function(color, number) {
return color == 'white' ? this.moves[(number * 2) - 1] : this.moves[number * 2];
}
this.exists_move = function(color, number) {
return get_move(color, number) != null;
}
this.get_current_move = function() {
return this.current_move;
}
this.add_move = function(move) {
trace('add move: ' + move.number + " " + moveBy.color);
if(current_move == null) {
this.first_move = move;
this.current_move = move;
} else {
move.prev_move = this.current_move;
this.current_move.next_move = move;
this.current_move = move;
}
this.moves.push(move);
}
this.first_move = null;
this.current_move = null;
this.moves = new Array();
}
// Коллекция фигур
function figure_collection(board) {
this.board = board;
this.wpA = new figure('wpA', 'white', 'pawn', null, null, true, board);
this.wpB = new figure('wpB', 'white', 'pawn', null, null, true, board);
this.wpC = new figure('wpC', 'white', 'pawn', null, null, true, board);
this.wpD = new figure('wpD', 'white', 'pawn', null, null, true, board);
this.wpE = new figure('wpE', 'white', 'pawn', null, null, true, board);
this.wpF = new figure('wpF', 'white', 'pawn', null, null, true, board);
this.wpG = new figure('wpG', 'white', 'pawn', null, null, true, board);
this.wpH = new figure('wpH', 'white', 'pawn', null, null, true, board);
this.wrA = new figure('wrA', 'white', 'rook', null, null, true, board);
this.wrH = new figure('wrH', 'white', 'rook', null, null, true, board);
this.whB = new figure('whB', 'white', 'horse', null, null, true, board);
this.whG = new figure('whG', 'white', 'horse', null, null, true, board);
this.wbC = new figure('wbC', 'white', 'bishop', null, null, true, board);
this.wbF = new figure('wbF', 'white', 'bishop', null, null, true, board);
this.wq = new figure('wq', 'white', 'queen', null, null, true, board);
this.wk = new figure('wk', 'white', 'king', null, null, true, board);
this.bpA = new figure('bpA', 'black', 'pawn', null, null, true, board);
this.bpB = new figure('bpB', 'black', 'pawn', null, null, true, board);
this.bpC = new figure('bpC', 'black', 'pawn', null, null, true, board);
this.bpD = new figure('bpD', 'black', 'pawn', null, null, true, board);
this.bpE = new figure('bpE', 'black', 'pawn', null, null, true, board);
this.bpF = new figure('bpF', 'black', 'pawn', null, null, true, board);
this.bpG = new figure('bpG', 'black', 'pawn', null, null, true, board);
this.bpH = new figure('bpH', 'black', 'pawn', null, null, true, board);
this.brA = new figure('brA', 'black', 'rook', null, null, true, board);
this.brH = new figure('brH', 'black', 'rook', null, null, true, board);
this.bhB = new figure('bhB', 'black', 'horse', null, null, true, board);
this.bhG = new figure('bhG', 'black', 'horse', null, null, true, board);
this.bbC = new figure('bbC', 'black', 'bishop', null, null, true, board);
this.bbF = new figure('bbF', 'black', 'bishop', null, null, true, board);
this.bq = new figure('bq', 'black', 'queen', null, null, true, board);
this.bk = new figure('bk', 'black', 'king', null, null, true, board);
}
// Коллекция полей шахматной доски
function field_collection(board) {
this.get_field = get_field;
this.board = board;
this.toArray = function() {
return [this.A1, this.A2, this.A3, this.A4, this.A5, this.A6, this.A7, this.A8,
this.B1, this.B2, this.B3, this.B4, this.B5, this.B6, this.B7, this.B8,
this.C1, this.C2, this.C3, this.C4, this.C5, this.C6, this.C7, this.C8,
this.D1, this.D2, this.D3, this.D4, this.D5, this.D6, this.D7, this.D8,
this.E1, this.E2, this.E3, this.E4, this.E5, this.E6, this.E7, this.E8,
this.F1, this.F2, this.F3, this.F4, this.F5, this.F6, this.F7, this.F8,
this.G1, this.G2, this.G3, this.G4, this.G5, this.G6, this.G7, this.G8,
this.H1, this.H2, this.H3, this.H4, this.H5, this.H6, this.H7, this.H8];
}
this.A1 = new field('fieldA1', 'black', 'A', '1', null, board);
this.B1 = new field('fieldB1', 'white', 'B', '1', null, board);
this.C1 = new field('fieldC1', 'black', 'C', '1', null, board);
this.D1 = new field('fieldD1', 'white', 'D', '1', null, board);
this.E1 = new field('fieldE1', 'black', 'E', '1', null, board);
this.F1 = new field('fieldF1', 'white', 'F', '1', null, board);
this.G1 = new field('fieldG1', 'black', 'G', '1', null, board);
this.H1 = new field('fieldH1', 'white', 'H', '1', null, board);
this.A2 = new field('fieldA2', 'white', 'A', '2', null, board);
this.B2 = new field('fieldB2', 'black', 'B', '2', null, board);
this.C2 = new field('fieldC2', 'white', 'C', '2', null, board);
this.D2 = new field('fieldD2', 'black', 'D', '2', null, board);
this.E2 = new field('fieldE2', 'white', 'E', '2', null, board);
this.F2 = new field('fieldF2', 'black', 'F', '2', null, board);
this.G2 = new field('fieldG2', 'white', 'G', '2', null, board);
this.H2 = new field('fieldH2', 'black', 'H', '2', null, board);
this.A3 = new field('fieldA3', 'black', 'A', '3', null, board);
this.B3 = new field('fieldB3', 'white', 'B', '3', null, board);
this.C3 = new field('fieldC3', 'black', 'C', '3', null, board);
this.D3 = new field('fieldD3', 'white', 'D', '3', null, board);
this.E3 = new field('fieldE3', 'black', 'E', '3', null, board);
this.F3 = new field('fieldF3', 'white', 'F', '3', null, board);
this.G3 = new field('fieldG3', 'black', 'G', '3', null, board);
this.H3 = new field('fieldH3', 'white', 'H', '3', null, board);
this.A4 = new field('fieldA4', 'white', 'A', '4', null, board);
this.B4 = new field('fieldA4', 'black', 'B', '4', null, board);
this.C4 = new field('fieldC4', 'white', 'C', '4', null, board);
this.D4 = new field('fieldD4', 'black', 'D', '4', null, board);
this.E4 = new field('fieldE4', 'white', 'E', '4', null, board);
this.F4 = new field('fieldF4', 'black', 'F', '4', null, board);
this.G4 = new field('fieldG4', 'white', 'G', '4', null, board);
this.H4 = new field('fieldH4', 'black', 'H', '4', null, board);
this.A5 = new field('fieldA5', 'black', 'A', '5', null, board);
this.B5 = new field('fieldB5', 'white', 'B', '5', null, board);
this.C5 = new field('fieldC5', 'black', 'C', '5', null, board);
this.D5 = new field('fieldD5', 'white', 'D', '5', null, board);
this.E5 = new field('fieldE5', 'black', 'E', '5', null, board);
this.F5 = new field('fieldF5', 'white', 'F', '5', null, board);
this.G5 = new field('fieldG5', 'black', 'G', '5', null, board);
this.H5 = new field('fieldH5', 'white', 'H', '5', null, board);
this.A6 = new field('fieldA6', 'white', 'A', '6', null, board);
this.B6 = new field('fieldB6', 'black', 'B', '6', null, board);
this.C6 = new field('fieldC6', 'white', 'C', '6', null, board);
this.D6 = new field('fieldD6', 'black', 'D', '6', null, board);
this.E6 = new field('fieldE6', 'white', 'E', '6', null, board);
this.F6 = new field('fieldF6', 'black', 'F', '6', null, board);
this.G6 = new field('fieldG6', 'white', 'G', '6', null, board);
this.H6 = new field('fieldH6', 'black', 'H', '6', null, board);
this.A7 = new field('fieldA7', 'black', 'A', '7', null, board);
this.B7 = new field('fieldB7', 'white', 'B', '7', null, board);
this.C7 = new field('fieldC7', 'black', 'C', '7', null, board);
this.D7 = new field('fieldD7', 'white', 'D', '7', null, board);
this.E7 = new field('fieldE7', 'black', 'E', '7', null, board);
this.F7 = new field('fieldF7', 'white', 'F', '7', null, board);
this.G7 = new field('fieldG7', 'black', 'G', '7', null, board);
this.H7 = new field('fieldH7', 'white', 'H', '7', null, board);
this.A8 = new field('fieldA8', 'white', 'A', '8', null, board);
this.B8 = new field('fieldB8', 'black', 'B', '8', null, board);
this.C8 = new field('fieldC8', 'white', 'C', '8', null, board);
this.D8 = new field('fieldD8', 'black', 'D', '8', null, board);
this.E8 = new field('fieldE8', 'white', 'E', '8', null, board);
this.F8 = new field('fieldF8', 'black', 'F', '8', null, board);
this.G8 = new field('fieldG8', 'white', 'G', '8', null, board);
this.H8 = new field('fieldH8', 'black', 'H', '8', null, board);
}
function board() {
this.moves = new move_collection(this);
this.figures = new figure_collection(this);
this.fields = new field_collection(this);
this.init = init;
this.last_move = null;
// Обновляет позицию
this.refresh_moves = function() {
// Ajax запрос к серверу
new Ajax.Request(moves_url, {
method: 'get',
onSuccess: function(transport) {
all_moves = transport.responseText;
trace('ajax: ' + all_moves);
}















