<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Игра "Морской бой"]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8830&amp;type=atom" />
	<updated>2014-02-27T07:40:04Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=8830</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80408#p80408" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>Такая, кажется, не сводится:</p></blockquote></div><p>Ага, верно. Я такую не пробовал даже.</p><div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>alexii, с помощью чего сделан рисунок: это всё вручную?</p></blockquote></div><p>Вручную. Чтобы не считать сумму единиц. Microsoft Excel. Потом скриншот, и обводка, стрелки, цветной текст — в PicPic.</p><div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>Строго говоря, пустоты будут максимальны, если краями поля ограничить расстановку и 1x1, но так число расстановок сокращается ещё сильнее, т.е. у края все корабли ставить всё-же не стоит.</p></blockquote></div><p>Чисто теоретически, имеет смысл оставить и 3 из 4 1x1 у края, а единственный оставшийся «затерять» в пустом пространстве. Но тогда совсем не интересно <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p><div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>Почему в таком случае у края не поставить несколько 1x1, а какой-нибудь 2x1 не поместить в середину?</p></blockquote></div><p>Не считал, сколько выйдет пустых в этом случае.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-02-27T07:40:04Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80408#p80408</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80393#p80393" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Первая — да. Фактически сводится к перестановке.</p></blockquote></div><p>Такая, кажется, не сводится:<br /></p><div class="codebox"><pre><code>
O.OOOO.OOO
O.........
O.OO.OO.OO
..........</code></pre></div><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Вторая — нет: число оставшихся для расстановки полей на единицу меньше.</p></blockquote></div><p>Действительно. По ошибке показалось одинаково.</p><p><strong>alexii</strong>, с помощью чего сделан рисунок: это всё вручную?<br />-------------------------------------<br /></p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Я так полагаю, задачу можно сразу упростить, если ограничить расстановку 2x3, 3x2 и 4x1 только краями поля — при этом пустоты будут максимальны.</p></blockquote></div><p>Строго говоря, пустоты будут максимальны, если краями поля ограничить расстановку и 1x1, но так число расстановок сокращается ещё сильнее, т.е. у края все корабли ставить всё-же не стоит. Почему в таком случае у края не поставить несколько 1x1, а какой-нибудь 2x1 не поместить в середину?</p>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2014-02-26T21:49:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80393#p80393</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80273#p80273" />
			<content type="html"><![CDATA[<p>Первая — да. Фактически сводится к перестановке. Вторая — нет: число оставшихся для расстановки полей на единицу меньше. </p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><span class="postimg"><img src="http://img37.imageshack.us/img37/5202/ohb6.png" alt="http://img37.imageshack.us/img37/5202/ohb6.png" /></span></p></div></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-02-22T18:35:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80273#p80273</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80271#p80271" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>это единственный способ, который я указал выше.</p></blockquote></div><p>Эти расстановки у верхнего края<br /></p><div class="codebox"><pre><code>OOOO.OO.OO
..........
OOO.OOO.OO
..........


O.OO.O.O.O
O....O.O.O
O.OO.O. .O
....... .O
        ..
</code></pre></div><p>относятся к единственному способу?</p>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2014-02-22T17:12:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80271#p80271</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80264#p80264" />
			<content type="html"><![CDATA[<p>«Как можно больше пустых клеток» — это единственный способ, который я указал выше. А вероятности было бы интересно посчитать.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-02-22T12:47:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80264#p80264</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80262#p80262" />
			<content type="html"><![CDATA[<p>Да, но через пару игр игрок поймет это и будет знать, где примерно стоят корабли. В данном же случае корабли стоят где угодно, но количество пустых клеток программа старается оставить как можно больше.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2014-02-22T09:43:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80262#p80262</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80020#p80020" />
			<content type="html"><![CDATA[<p>Я так полагаю, задачу можно сразу упростить, если ограничить расстановку 2x3, 3x2 и 4x1 только краями поля — при этом пустоты будут максимальны.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-02-12T17:34:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80020#p80020</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=80018#p80018" />
			<content type="html"><![CDATA[<p><strong>trash50</strong>, только у меня там нет искусственной задержки, компьютер реально долго думает. При расстановке кораблей на самом деле он строит множество различных случайных расстановок, а среди них выбирает ту, в которой больше образовалось пустот, что усложняет задачу игроку.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2014-02-12T17:01:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=80018#p80018</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78925#p78925" />
			<content type="html"><![CDATA[<p>Интересно реализовано)</p>]]></content>
			<author>
				<name><![CDATA[andreypetrovsky]]></name>
			</author>
			<updated>2014-01-05T13:21:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78925#p78925</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78901#p78901" />
			<content type="html"><![CDATA[<p>Градусник понравился: <br /></p><div class="codebox"><pre><code>::ГРАДУСНИК
@ECHO OFF
  0&lt;nul set /p .=Расставляю корабли: ????????????????????????????????????????
  :: верхний предел цикла - количество расстановок (40)
  for /l %%n in (1, 1, 40) do (
    0&lt;nul set /p .=?
    PING LOCALHOST &gt;nul 2&gt;&amp;1
    )
PAUSE</code></pre></div>]]></content>
			<author>
				<name><![CDATA[trash50]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31518</uri>
			</author>
			<updated>2014-01-04T21:53:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78901#p78901</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76591#p76591" />
			<content type="html"><![CDATA[<p>Простой код для теста:<br /></p><div class="codebox"><pre><code>echo off
echo %random%
echo %random%
echo %random%
pause</code></pre></div><p>Запускаю 3 раза с небольшим промежутком времени. Результат (Win XP SP3):</p><p>14333<br />32346<br />23511</p><p>14340<br />21075<br />26471</p><p>14346<br />9803<br />29431</p><p>Как видите, первое число совсем не случайное, оно растет с каждым запуском, скорее всего, некоторая привязка ко времени. При последующих же вызовах получается вполне себе последовательность ПСЧ. Вот для того, чтобы пропустить это первое неслучайное число и делается дополнительный вызов.</p><div class="quotebox"><blockquote><p>оформлять такое обращение в виде функции избыточно,</p></blockquote></div><p>Исключительно для улучшения читабельности. Даже такое простое действие лучше вынести в отдельную функцию, при чтении кода будет ясно, ради чего происходит вызов функции.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2013-10-28T16:09:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76591#p76591</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76586#p76586" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>А вот интересно, в данной строке ведь все равно произойдет обращение к переменной %random%?</p></blockquote></div><p>Произойдёт:<br /></p><div class="codebox"><pre><code>echo on
for %%i in (1) do rem %random%</code></pre></div><div class="quotebox"><blockquote><p>Если так, то да, можно код функции и так записать.</p></blockquote></div><p>Ну, сугубо мне кажется, что оформлять такое обращение в виде функции избыточно,<br />но больше интересует, что меняет такое однократное обращение к <em>%random%</em>?</p>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2013-10-28T15:14:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76586#p76586</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76585#p76585" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Ещё раз обращаю внимание руководства и сообщества.</p></blockquote></div><p>Спасибо за поддержку! </p><div class="quotebox"><blockquote><p>равносильно <br />rem %random%</p></blockquote></div><p>А вот интересно, в данной строке ведь все равно произойдет обращение к переменной %random%? Если так, то да, можно код функции и так записать.</p><div class="quotebox"><blockquote><p>В любом случае, вероятно, не «счётчика», а «датчика» (или, хотя бы «генератора»).</p></blockquote></div><p>Обычно в генераторах ПСЧ есть некоторое значение, которое используется для генерации очередного числа и, заодно, меняется на новое для последующей генерации. Это как бы счетчик, от которого зависит генерируемое число.</p><div class="quotebox"><blockquote><p>в заставке перед появлением корабля и после его исчезновения проходит какое-то время — это преднамеренный выбор?</p></blockquote></div><p>Отображением двигающихся кораблей занимается функция :scene, давно ее делал, но, как помню, были там какие-то проблемы, чтобы строки не съезжали.</p><div class="quotebox"><blockquote><p>разве в классических правилах не различаются «ранил» и «убил»?</p></blockquote></div><p>Никогда не признавал версию игры с указанием на убийство. Более того, когда еще в детстве меня обучили этой игре, то никаких &quot;убил&quot; там не было, про такую версию узнал позже и долго плевался. Пусть игрок сам определяет, убил или нет, тем более, что это не такая и сложная задача. Единственное, что иногда надо сделать лишний выстрел, чтобы убедиться. Эта неопределенность только добавляет азарта и немного усложняет игру.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2013-10-28T13:52:33Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76585#p76585</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76583#p76583" />
			<content type="html"><![CDATA[<p>Основательная работа! Ещё раз <a href="http://forum.script-coding.com/viewtopic.php?pid=76379#p76379">обращаю внимание</a> руководства и сообщества.</p><br /><p>Воплощение «Морского боя» более чем уместно в виде консольного приложения, а для написания консольного приложения вполне достаточно Batch-языка (вторая часть утверждения, признаю, немного спорная). Признаюсь, была у меня такая мечта, но «тем, кем я хотел бы быть, стал уже кто-то другой». Впрочем, ещё остаётся возможность сделать что-то своё в направлении разработки стратегии…</p><p>В коде не очень-то разбирался, пока спрошу о третьестепенной вещи: разве что-то даёт<br /></p><div class="codebox"><pre><code>call :randomize

:randomize
:: Регенерация счетчика случайных чисел
  setlocal
  set rndTemp=%random%
endlocal &amp; exit /b
</code></pre></div><p>? (равносильно </p><div class="codebox"><pre><code>rem %random%</code></pre></div><p>)<br />В любом случае, вероятно, не «счётчика», а «датчика» (или, хотя бы «генератора»).</p><p>Из первых впечатлений: в заставке перед появлением корабля и после его исчезновения проходит какое-то время — это преднамеренный выбор?</p><p>Более важное впечатление:<br /></p><div class="quotebox"><cite>Arigato пишет:</cite><blockquote><p>Реализация классической игры</p></blockquote></div><p>— разве в классических правилах не различаются «ранил» и «убил»?</p>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2013-10-28T12:34:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76583#p76583</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Игра "Морской бой"]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76578#p76578" />
			<content type="html"><![CDATA[<p><strong>Игра &quot;Морской бой&quot; на BAT-файлах</strong></p><p><strong>Ссылка для скачивания:</strong> <a href="http://yadi.sk/d/zGkSTyIPBheWm">http://yadi.sk/d/zGkSTyIPBheWm</a></p><p><strong>Системные требования:</strong> Microsoft Windows XP или 7, на других версиях не тестировалось, но должно работать.</p><p><strong>Описание:</strong><br />Реализация классической игры для двоих игроков &quot;Морской бой&quot; на BAT-файлах. Расставляйте свои корабли и попробуйте шансы в игре против мега-интеллекта компьютера - уничтожьте вражеские корабли первым!</p><p><strong>Скриншоты:</strong></p><p><span class="postimg"><img src="http://s005.radikal.ru/i212/1310/f2/ff47ae5572c8.png" alt="http://s005.radikal.ru/i212/1310/f2/ff47ae5572c8.png" /></span></p><p><span class="postimg"><img src="http://s56.radikal.ru/i152/1310/7f/b82ac2651084.png" alt="http://s56.radikal.ru/i152/1310/7f/b82ac2651084.png" /></span></p><p><span class="postimg"><img src="http://i022.radikal.ru/1310/69/0a867ba0f81e.png" alt="http://i022.radikal.ru/1310/69/0a867ba0f81e.png" /></span></p><p>P.S. О замеченных ошибках сообщайте в этой теме.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2013-10-28T09:01:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76578#p76578</id>
		</entry>
</feed>
