// ENCODE=0 var G; function Game() { //Глобальные переменные игры //Версия this.gg_name='Кроссворд'; //Размер одной ячейки по умолчанию (пикселов) this.gg_cell_size=20; // Цвет фона this.gg_bg_color='#b0b0b0'; //Сколько показывать ошибку в ячейке this.gg_delay=1000; //Директория рисунков шаров this.gg_img_dir='/games/crossword/images/'; // Ссыдка на ajax this.gg_ajaxurl='/games/crossword/crossword.ajax.php'; // this.gg_layout_raw=''; // this.gg_debug=0; // Размер по горизонтали this.gi_h_size=0; // Размер по вертикали this.gi_v_size=0; // Поле с клетками this.gi_layout=new Array(); // Выделенные клетки this.gi_selected_cells=new Array(); // Координаты последнего клика this.gi_x_pos_old=-1; this.gi_y_pos_old=-1; // Номер ячейки this.gi_sel_pos=0; this.gi_sel_type=''; // Данные для проверки this.gi_h_words=new Array(); this.gi_v_words=new Array(); // Ид кроссворда this.id = null; //Метод. Нарисовать игровое поле this.drawField=function drawField() { // Cache for (var i=0; i < this.gi_layout.length;i++) { if (this.gi_layout[i]>0) { eval("var img_"+i+"=new Image;img_"+i+".src='http://www.gamefile.ru"+this.gg_img_dir+"bgcell-"+this.gi_layout[i]+"-s.gif';"); } } var w=this.gg_cell_size; var h = ''; h = h + '\n'; h = h + '\n\n\n\n\n'; for (var y=0; y < this.gi_v_size; y++) { h = h + '\n'; for (var x=0; x < this.gi_h_size; x++) { h = h + '\n'; } else { h = h + '>'; } } h = h + '\n'; } h=h + '\n\n\n'; h=h + '\n\n\n'; h=h + '\n\n\n'; h=h + '\n\n\n\n\n'; h=h + '\n\n\n'; h= h + '
\n
= 0) { h = h + 'background="'+this.gg_img_dir+'bgcell-'+v+'.gif" style="font: 14px verdana,arial,helvetica,sans-serif; font-weight: bold; cursor: hand;" onClick="javascript:G.selectLine('+x+','+y+');return false;">
\n
\n
\n
'; h=h + ''; h=h + ''; h=h + '
кликните мышью по ячейке
   |  
'; h=h + '
\n
\n'; if (this.gg_debug==1) { h=h+'
'; } document.getElementById('_gamearea').innerHTML = h; document.getElementById('_gamearea').style.width = ((this.gg_cell_size*this.gi_v_size)+20) + 'px'; document.getElementById('_gamearea2').style.width = (740 - (this.gg_cell_size*this.gi_v_size)-40) + 'px'; } this.findHLine=function findHLine(in_x,in_y) { var out_array = new Array(in_x,in_y); this.gi_sel_pos=this.gi_layout[in_y*this.gi_h_size + in_x]; var sign = new Array(1,-1); for (var i=0;i<2;i++ ) { var x = in_x+sign[i]; var v = this.gi_layout[in_y*this.gi_h_size + x]; while (v>=0 && x=0) { if (v>0 && sign[i]<0) { this.gi_sel_pos=v; } out_array.push(Number(x)); out_array.push(Number(in_y)); x=x+sign[i]; v = this.gi_layout[in_y*this.gi_h_size + x]; } } return out_array; } this.findVLine=function findVLine(in_x,in_y) { var out_array = new Array(in_x,in_y); this.gi_sel_pos=this.gi_layout[in_y*this.gi_h_size + in_x]; var sign = new Array(1,-1); for (var i=0;i<2;i++ ) { var y = in_y+sign[i]; var v = this.gi_layout[y*this.gi_h_size + in_x]; while (v>=0 && y=0) { if (v>0 && sign[i]<0) { this.gi_sel_pos=v; } out_array.push(Number(in_x)); out_array.push(Number(y)); y=y+sign[i]; v = this.gi_layout[y*this.gi_h_size + in_x]; } } return out_array; } this.isNoHLine=function isNoHLine(in_x,in_y) { var b=true; if (in_x > 0) { if (this.gi_layout[in_y*this.gi_h_size+in_x-1]>=0) { b=false; } } if (((in_x+1) < this.gi_h_size) && b) { if (this.gi_layout[in_y*this.gi_h_size+in_x+1]>=0) { b=false; } } return b; } this.isNoVLine=function isNoVLine(in_x,in_y) { var b=true; if (in_y > 0) { if (this.gi_layout[(in_y-1)*this.gi_h_size+in_x]>=0) { b=false; } } if (((in_y+1) < this.gi_v_size) && b) { if (this.gi_layout[(in_y+1)*this.gi_h_size+in_x]>=0) { b=false; } } return b; } this.sortSelectedCells=function sortSelectedCells() { var c; for (var j=0;j 0 && document.getElementById('desc_'+this.gi_sel_type+'_'+this.gi_sel_pos)!=null) { document.getElementById('desc_'+this.gi_sel_type+'_'+this.gi_sel_pos).style.background=''; document.getElementById('desc_'+this.gi_sel_type+'_'+this.gi_sel_pos).style.color='#676767'; } } this.findLine=function findLine(in_x,in_y) { var notsel=true; if (this.isNoHLine(in_x,in_y)) { this.gi_selected_cells=this.findVLine(in_x,in_y); notsel=false; } if (this.isNoVLine(in_x,in_y) && notsel) { this.gi_selected_cells=this.findHLine(in_x,in_y); notsel=false; } if ((this.gi_x_pos_old==in_x && this.gi_y_pos_old==in_y) && notsel) { if (this.gi_selected_cells[0] == this.gi_selected_cells[2]) { this.gi_selected_cells=this.findHLine(in_x,in_y); } else { this.gi_selected_cells=this.findVLine(in_x,in_y); } notsel=false; } if (notsel) { this.gi_selected_cells=this.findHLine(in_x,in_y); notsel=false; } } this.selectCells=function selectCells(in_x,in_y) { if (this.gi_selected_cells[0] == this.gi_selected_cells[2]) { document.getElementById('game_selected_line').innerHTML=this.gi_sel_pos+' по вертикали'; this.gi_sel_type='v'; } else { document.getElementById('game_selected_line').innerHTML=this.gi_sel_pos+' по горизонтали'; this.gi_sel_type='h'; } this.sortSelectedCells(); for (var i=0;i0) { for (var i=0;i0 && document.getElementById('cell_'+Number(x)+'_'+Number(y-1)).innerHTML!='') { b=false; } if ((y+1)0 && document.getElementById('cell_'+Number(x-1)+'_'+Number(y)).innerHTML!='') { b=false; } if ((x+1)