<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Как сделать Random без повтора ?]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=9192</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=9192&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Как сделать Random без повтора ?».]]></description>
		<lastBuildDate>Sat, 01 Feb 2014 17:52:08 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79676#p79676</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>чтобы перед тем как писать текст, который вписан в Action, нажималась кнопочка F6.</p></blockquote></div><div class="codebox"><pre><code>SendInput % &quot;{F6}{Raw}&quot; Str &quot;`n&quot; </code></pre></div><div class="quotebox"><blockquote><p>И еще, сделать так, чтобы можно было в любое время остановить бинд, после чего можно продолжить его.</p></blockquote></div><p>Ну у тебя же в топике применено:<br /></p><div class="codebox"><pre><code>a::Pause</code></pre></div><p>чем не устраивает?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 01 Feb 2014 17:52:08 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79676#p79676</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79654#p79654</link>
			<description><![CDATA[<p>Ребята, большое Вам спасибо. Помогли! Взял себе вот это: </p><div class="codebox"><pre><code>arr := [], i := 0
Action := [&quot;testone&quot;, &quot;testtwo&quot;, &quot;testthree&quot;, &quot;testfour&quot;, &quot;testfive&quot;
    , &quot;testsix&quot;, &quot;testseven&quot;, &quot;testeight&quot;, &quot;testnine&quot;, &quot;testten&quot;]
   
1::
Random: 
    If (i = 10)  
    {
        arr := [], i := 0, r := &quot;&quot;
        Return
    }    
    Random, rand, 1, 10
    If arr[rand]
        GoTo Random
    arr[rand] := 1, i++
    SendRaw % Action[rand] &quot;`n&quot; 
    Sleep, 1000
    GoTo Random </code></pre></div><p>Но хотелось бы еще кое что у Вас попросить, а именно: сделать так, чтобы перед тем как писать текст, который вписан в Action, нажималась кнопочка F6. Что-то такого:</p><div class="codebox"><pre><code>Send, {F6}text{enter}</code></pre></div><p>И еще, сделать так, чтобы можно было в любое время остановить бинд, после чего можно продолжить его. Зарание спасибо, ребята! <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Kapysta)]]></author>
			<pubDate>Sat, 01 Feb 2014 10:17:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79654#p79654</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79594#p79594</link>
			<description><![CDATA[<p>Здорово. А я и не вспомнил про такой вариант сортировки. Так еще проще и наглядней <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Fri, 31 Jan 2014 13:40:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79594#p79594</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79590#p79590</link>
			<description><![CDATA[<p>Кстати для &quot;простых случаев&quot;, можно и просто:<br /></p><div class="codebox"><pre><code>
Str = testone|testtwo|testthree|testfour|testfive|testsix|testseven|testeight|testnine|testten 

1::
    Sort, Str, Random D|
    Loop, parse, Str, |
        SendInput % &quot;{Raw}&quot; A_LoopField &quot;`n&quot;
    Return
</code></pre></div><p>Или сократить для ещё более простых:<br /></p><div class="codebox"><pre><code>
Str = testone`ntesttwo`ntestthree`ntestfour`ntestfive`ntestsix`ntestseven`ntesteight`ntestnine`ntestten 

1::
    Sort, Str, Random 
    SendInput % &quot;{Raw}&quot; Str
    Return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Fri, 31 Jan 2014 12:17:36 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79590#p79590</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79569#p79569</link>
			<description><![CDATA[<p>Алгоритмы - дело наживное, для этого и существуют форумы <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /><br />Еще поправка к коду: оказывается (вполне логично), что метод Remove() возвращает удаленное значение, или же пустую строку, в случае неверного параметра. Так что обработку очередного элемента можно недрогнувшей рукой совместить с удалением этого элемента <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="codebox"><pre><code>F1::
   tArr := Arr.Clone()
   While % i:=tArr.MaxIndex() {
      Random, i, 1, i
      Send % tArr.Remove(i) . &quot;`n&quot;
   }
Return</code></pre></div><p>Непонятно, в силу каких причин в AHK генерация псевдослучайных чисел не реализована в виде функции, ведь так было бы удобней. Приходится использовать функцию-&quot;обертку&quot; Rand(), без которой код сократился бы еще на несколько строк:<br /></p><div class="codebox"><pre><code>Arr := [&quot;testone&quot;, &quot;testtwo&quot;, &quot;testthree&quot;, &quot;testfour&quot;, &quot;testfive&quot;
     , &quot;testsix&quot;, &quot;testseven&quot;, &quot;testeight&quot;, &quot;testnine&quot;, &quot;testten&quot;]
   
F1::
   tArr := Arr.Clone()
   While % i:=tArr.Remove(Rand(tArr.MaxIndex()))
      Send % i . &quot;`n&quot;
Return

Rand(i) {
   Random, i, 1, i
   Return i
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Thu, 30 Jan 2014 20:21:29 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79569#p79569</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79561#p79561</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>но я бы применил его таким образом:</p></blockquote></div><p>Я бы тоже, если бы догадался <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Класс!</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 30 Jan 2014 18:15:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79561#p79561</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79560#p79560</link>
			<description><![CDATA[<p>Со списком проще всего, но я бы применил его таким образом: </p><div class="codebox"><pre><code>Arr := [&quot;testone&quot;, &quot;testtwo&quot;, &quot;testthree&quot;, &quot;testfour&quot;, &quot;testfive&quot;
     , &quot;testsix&quot;, &quot;testseven&quot;, &quot;testeight&quot;, &quot;testnine&quot;, &quot;testten&quot;]
   
F1::
   tArr := Arr.Clone()
   While % i:=tArr.MaxIndex() {
      Random, i, 1, i
      Send % tArr[i] . &quot;`n&quot;
      tArr.Remove(i)
   }
Return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Thu, 30 Jan 2014 18:07:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79560#p79560</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79549#p79549</link>
			<description><![CDATA[<div class="codebox"><pre><code>
arr := [], i := 0

1::
Random: 
    If (i = 10) 
        arr := [], i := 0 ; строку заменить на &quot;Return&quot; если повтор не требуется
    Random, rand, 1, 10
    If arr[rand]
        GoTo Random
    arr[rand] := 1, i++
    ToolTip % r .= rand &quot;`n&quot; (i = 10 ? &quot;`n&quot; : &quot;&quot;)
    Return
</code></pre></div><p>Или может так:<br /></p><div class="codebox"><pre><code>

arr := [], i := 0
Action := [&quot;testone&quot;, &quot;testtwo&quot;, &quot;testthree&quot;, &quot;testfour&quot;, &quot;testfive&quot;
    , &quot;testsix&quot;, &quot;testseven&quot;, &quot;testeight&quot;, &quot;testnine&quot;, &quot;testten&quot;]
   
1::
Random: 
    If (i = 10)  
    {
        arr := [], i := 0, r := &quot;&quot;
        Return
    }    
    Random, rand, 1, 10
    If arr[rand]
        GoTo Random
    arr[rand] := 1, i++
    SendRaw % Action[rand] &quot;`n&quot; 
    Sleep, 1000
    GoTo Random 
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 30 Jan 2014 16:04:29 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79549#p79549</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79546#p79546</link>
			<description><![CDATA[<p>Как только я запустил скрипт, генерируются числа, которые приводят в действие что-то, в моем случае:</p><div class="codebox"><pre><code>r::
l:
Random, rand, 1,10

if rand=1
Send, testone

if rand=2
Send, testtwo

if rand=3
Send, testthree

if rand=4
Send, testfour

if rand=5
Send, testfive

if rand=6
Send, testsix

if rand=7
Send, testseven

if rand=8
Send, testeight

if rand=9
Send, testnine

if rand=10
Send, testten

Sleep, 1000

Goto, l

a::Pause</code></pre></div><p>Ранее я написал не так, как должно быть. Вы подумали, что мне нужны просто рандомные числа, но это не так. </p><br /><p>Должен быть текст в рандомном порядке, но без повторов. Если уже сгенерировалось все 10 возможных текстов - бинд останавливается. В итоге должно быть 10 разных текстов без повторов, понимаете ? Перед тем, как делать генерацию рандомных действий, должна быть проверка на то, было ли уже использовано данное действие. Надеюсь, Вы понимаете о чем я.</p>]]></description>
			<author><![CDATA[null@example.com (Kapysta)]]></author>
			<pubDate>Thu, 30 Jan 2014 15:23:01 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79546#p79546</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79545#p79545</link>
			<description><![CDATA[<p>Такой вариант должен подойти.<br /></p><div class="codebox"><pre><code>r::
Loop
{
Random, rand, 1, 10
If rand != %prev_rand%
    {
    Send, %rand%
    Sleep, 1000
    prev_rand = %rand%
    }
}

a::Pause</code></pre></div><p><em>Добавлено:</em> Так это, число не должно повторять одно предыдущее или все предыдущие числа?</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 30 Jan 2014 15:09:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79545#p79545</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79542#p79542</link>
			<description><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><div class="quotebox"><blockquote><p>у меня все время идут повторы, что мне не нужно</p></blockquote></div><p>В каком смысле?</p></blockquote></div><p>Повторяется рандомное число, которое приводит в действие что либо.<br />Бинд должен работать до тех пор, пока не используются все возможные варианты (все рандомные числа), но при этом ничего не должно повторяться.</p>]]></description>
			<author><![CDATA[null@example.com (Kapysta)]]></author>
			<pubDate>Thu, 30 Jan 2014 14:51:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79542#p79542</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79541#p79541</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>у меня все время идут повторы, что мне не нужно</p></blockquote></div><p>В каком смысле?</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 30 Jan 2014 14:44:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79541#p79541</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Как сделать Random без повтора ?]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=79538#p79538</link>
			<description><![CDATA[<p>Здравствуйте, ув. пользователи данного форума. Нужна Ваша помощь. Решил сделать рандом, но у меня все время идут повторы чисел, что мне не нужно. Искал ответ, как можно сделать так, чтобы их не было - ничего не нашел. Если Вам не сложно, помогите мне. Вот, примерно такой скрипт у меня. Нужно сделать без повторов, если это возможно. Зарание спасибо <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p><div class="codebox"><pre><code>
r::
l:
Random, rand, 1,10

if rand=1
Send, 1

if rand=2
Send, 2

if rand=3
Send, 3

if rand=4
Send, 4

if rand=5
Send, 5

if rand=6
Send, 6

if rand=7
Send, 7

if rand=8
Send, 9

if rand=9
Send, 9

if rand=10
Send, 10

Sleep, 1000

Goto, l

a::Pause
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Kapysta)]]></author>
			<pubDate>Thu, 30 Jan 2014 14:17:43 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=79538#p79538</guid>
		</item>
	</channel>
</rss>
