Nautilus War - Морской бой

Nautilus War или Морской бой

by Yunus Gaziev

HTML

<table id="human" border="1">
    <tbody>
		<tr>
            <td id="hm-0-0"></td>
			<td id="hm-1-0"></td>
			<td id="hm-2-0"></td>
			<td id="hm-3-0"></td>
			<td id="hm-4-0"></td>
			<td id="hm-5-0"></td>
			<td id="hm-6-0"></td>
			<td id="hm-7-0"></td>
			<td id="hm-8-0"></td>
			<td id="hm-9-0"></td>
        </tr>
		<tr>
            <td id="hm-0-1"></td>
			<td id="hm-1-1"></td>
			<td id="hm-2-1"></td>
			<td id="hm-3-1"></td>
			<td id="hm-4-1"></td>
			<td id="hm-5-1"></td>
			<td id="hm-6-1"></td>
            <td id="hm-7-1"></td>
            <td id="hm-8-1"></td>
            <td id="hm-9-1"></td>
        </tr>
		<tr>
            <td id="hm-0-2"></td>
			<td id="hm-1-2"></td>
			<td id="hm-2-2"></td>
			<td id="hm-3-2"></td>
			<td id="hm-4-2"></td>
			<td id="hm-5-2"></td>
			<td id="hm-6-2"></td>
            <td id="hm-7-2"></td>
            <td id="hm-8-2"></td>
            <td id="hm-9-2"></td>
        </tr>
		<tr>
            <td id="hm-0-3"></td>
			<td id="hm-1-3"></td>
			<td id="hm-2-3"></td>
			<td id="hm-3-3"></td>
			<td id="hm-4-3"></td>
			<td id="hm-5-3"></td>
			<td id="hm-6-3"></td>
            <td id="hm-7-3"></td>
            <td id="hm-8-3"></td>
            <td id="hm-9-3"></td>
        </tr>
		<tr>
            <td id="hm-0-4"></td>
			<td id="hm-1-4"></td>
			<td id="hm-2-4"></td>
			<td id="hm-3-4"></td>
			<td id="hm-4-4"></td>
			<td id="hm-5-4"></td>
			<td id="hm-6-4"></td>
            <td id="hm-7-4"></td>
            <td id="hm-8-4"></td>
            <td id="hm-9-4"></td>
        </tr>
		<tr>
            <td id="hm-0-5"></td>
			<td id="hm-1-5"></td>
			<td id="hm-2-5"></td>
			<td id="hm-3-5"></td>
			<td id="hm-4-5"></td>
			<td id="hm-5-5"></td>
			<td id="hm-6-5"></td>
            <td id="hm-7-5"></td>
            <td id="hm-8-5"></td>
            <td id="hm-9-5"></td>
        </tr>
		<tr>
			<td id="hm-0-6"></td>
			<td id="hm-1-6"></td>
			<td id="hm-2-6"></td>
			<td id="hm-3-6"></td>
			<td id="hm-4-6"></td>
			<td...

CSS

body {
		margin:0;
		padding:0;
		}
		
	table {
		margin: 0 auto;
		padding:0;
		border-spacing: 1px;
		border: 0;
		}
		
	#human td {
			width:40px;
			height:40px;
			border: solid 1px #FFF;
            background: #33B5E5;
            color: #FFF;
            text-align: center;
		}

.cbf {
    margin: 12px auto;
    width: 160px;
}

JavaScript

// корректировка циклов проверки ячеек и расстановки кораблей
var UpPosCorrection = 0;
var DwPosCorrection = 0;

var freeSquareColor = '#33B5E5',
    busySquareColor = '#FF4444';
    

// переменные для циклов проверки, добавления, попаданий и позиционирования кораблей
var a = 0;
var b = 0;
		
var RND = 0;
var randomPosRange = 0;
var XrandomPosRange = 0;
var YrandomPosRange = 0;
		
var MassivKorablikov = new Array(4,3,3,2,2,2,1,1,1,1);
var MassivPopadaniy = new Array(4,3,3,2,2,2,1,1,1,1);
var AIMassivPopadaniy = new Array(4, 3, 3, 2, 2, 2, 1, 1, 1, 1);
		
//var massivKletokGraf = new Array();
var massivKletokGame = new Array();
var massivPopadaniy = new Array();
		
//var AImassivKletokGraf = new Array();
var AImassivKletokGame = new Array();
		
var KolichestvoKorabley = 0;
var Palubka = 0;
var Polojenie = 0;
var Svobodno = false;
var Zaprosi = 0; // МОЖНО УДАЛИТЬ

var KIM = 'hm-';

var JQID;

// инициализация массивa massivKletokGame
for (a = 0; a < 10; a++)
			{
				massivKletokGame[a] = new Array();
        massivPopadaniy[a] = new Array();
				
				for (b = 0; b < 10; b++)
				{
					massivKletokGame[a][b] = 0;
          massivPopadaniy[a][b] = 0;
					//$('#'+a+'-'+b).css("background-color","yellow");
				}
			}
			
// обнуляем массив расположения кораблей и чистим графику
function AutoPosFn()
	{
		console.log('DONE!!!');
		
		for (a = 0; a < 10; a++)
		{
			for (b = 0; b < 10; b++)
			{
				massivKletokGame[a][b] = 0;
				$('#'+KIM+a+'-'+b).css('background-color',freeSquareColor);
                $('#'+KIM+a+'-'+b).html('');
			}
		}
			
		Zaprosi = 0;
			
		GeneratePosition(); // переходим к генерации случайных координат
	}

// генерируем случайные координаты и отправляем их в Search(); для проверки
function GeneratePosition()
		{
			Svobodno = false;
			
			Palubka = MassivKorablikov[KolichestvoKorabley];
			
			randomPosRange = Math.round(Math.random() * 333);
			
			RND = randomPosRange % 2;
			//RND = 0; // horizont
			//RND = 1; //...