adik_123 Opublikowano 14 Czerwca 2011 Udostępnij Opublikowano 14 Czerwca 2011 (edytowane) ktos chetny do pomocy ? bo juz nie mam sily jak najszybciej okreslic wartosc $x ? Global $g Global $sz Global $n = 1 $x = Random ( 1 , 10 , 1 ) $szukam = Random ( 1 , 10 , 1 ) MsgBox ( 0 , "" , "moja liczba " & $szukam & " , mam znalezc -> " & $x) While 1 If $x > $szukam Then $sz = $szukam + 1 ;MsgBox ( 0 , "" , "moja liczba " & $szukam & " , ilosc szukan " & $n & " , mam znalezc -> " & $x) $szukam = Random ( $sz , 10 , 1) ;MsgBox ( 0 , "" , "moja liczba " & $szukam & " , ilosc szukan " & $n & " , mam znalezc -> " & $x) EndIf If $x < $szukam Then $g = $szukam - 1 ;MsgBox ( 0 , "" , "moja liczba " & $szukam & " , ilosc szukan " & $n & " , mam znalezc -> " & $x ) $szukam = Random ( 1 , $g , 1) ;MsgBox ( 0 , "" , "moja liczba " & $szukam & " , ilosc szukan " & $n & " , mam znalezc -> " & $x ) EndIf If $x = $szukam Then MsgBox ( 0 , "" , "" & "wybrałes " & $szukam & " , brawo , trafiles !!! , za " & $n & " razem") ;FileWrite("wyniki.txt", "trafione za " & $n & " razem" & @CRLF) $n = 1 Exit EndIf WEnd jak wykluczyc liczby juz losowane ? Edytowane 14 Czerwca 2011 przez adik_123 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rumunun Opublikowano 14 Czerwca 2011 Udostępnij Opublikowano 14 Czerwca 2011 (edytowane) jak najszybciej okreslic wartosc $x ? $x o to ci chodzilo? Edytowane 14 Czerwca 2011 przez rumunun XFragsHD 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 14 Czerwca 2011 Autor Udostępnij Opublikowano 14 Czerwca 2011 (edytowane) tak , $x = random ( 1 , 10 , 1 ) jak napisac kod , zeby znalazl liczbe w jak najmniejszej ilosci prob Edytowane 14 Czerwca 2011 przez adik_123 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lokuxd Opublikowano 14 Czerwca 2011 Udostępnij Opublikowano 14 Czerwca 2011 $y=1;zaczynasz szukac od 1 $x=5;twoj random np 5 lub jakas inna liczba wieksza-rowna 1 while 1 if $x > $y then $y+=1;jesli x jest wieksza od y to dodaje 1 i szuka dalej itd az do skutku if $x=$y then msgbox(0,'','x to :'&$y);wiadomo chyba wend cos takiego?? [edit] juz wiem nie dales Z$n+=1 w ifach i bylo ze za 1 razem zgadywales... Global $g Global $sz Global $n = 1 $x = Random(1, 10, 1) $szukam = Random(1, 10, 1) MsgBox(0, "", "moja liczba " & $szukam & " , mam znalezc -> " & $x) While 1 If $x > $szukam Then $szukam += 1 $n += 1 EndIf If $x < $szukam Then $szukam -= 1 $n += 1 EndIf If $x = $szukam Then MsgBox(0, "", "" & "wybrałes " & $szukam & " , brawo , trafiles !!! , za " & $n & " razem") EndIf WEnd Do $wiek+=1 Until ŻycieGetMsg() = -3 zbieram + Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 15 Czerwca 2011 Autor Udostępnij Opublikowano 15 Czerwca 2011 (edytowane) Z tym brakujacy $n to pikus , zapomnialem go tu wklepac jak wklejalem kod. Chodzi mi o to zeby komp w jak najmniejszej ilosci prob odgadl liczbe $x = random ( 1 , 10 , 0 ) , przy kazdej probie zgadniecia komp daje wskazowke czy nasza liczba jest > lub < od szukanej $x. Wczoraj bylem zje... i nie mialem juz sily kombinowac. Dzis z tym powalcze i jak mi sie uda to wkleje kod . Dodawaniec o 1 mija sie z celem bo za duzo prob szukania wychodzi. Edytowane 15 Czerwca 2011 przez adik_123 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fli_PL Opublikowano 15 Czerwca 2011 Udostępnij Opublikowano 15 Czerwca 2011 Jeśli dobrze zrozumiałem, ty losujesz liczbę a następnie program musi ją znaleźc wśród zbioru liczb? Tutaj nadadzą się algorytmy takie jak Poszukiwanie liniowe (zbiór nieuporządkowany) http://pl.wikipedia.org/wiki/Przeszukiwanie_liniowe Nie pamiętam już, bo algorytmikę miałem na początku roku ale to jest chyba optymalny rodzaj poszukiwania liczby w zbiorze nieuporządkowanym, natomiast, jesli dysponujesz zbiorem uporządkowanym, to najlepszym wyborem będzie algorytm poszukiwania przez połów noszącego ciekawy sposób działania - "Dziel i zwyciężaj", sposób działania http://pl.wikipedia.org/wiki/Dziel_i_zwyci%C4%99%C5%BCaj czwartkowy posmak w ustach przypominaże nie ma sensu owijać w bawełnęzmarzniętego truchłaprzez latarnię ktoś przerzucił sznurcumuje statek w bezpieczną przystańczuję jak na skroniach zasycha sól... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 15 Czerwca 2011 Autor Udostępnij Opublikowano 15 Czerwca 2011 Walasnie o to mi chodzi i kombinuje jak to najprosciej napisac , aby dzialalo:) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rumunun Opublikowano 15 Czerwca 2011 Udostępnij Opublikowano 15 Czerwca 2011 a nie lepiej użyć stringów? przykładowa liczba 2456 najpierw sprawdza ile jest cyfr, w tym wypadku 4, potem w pętle for i każdą cyferke odgaduje po kolei dzięki stringom XFragsHD 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lokuxd Opublikowano 15 Czerwca 2011 Udostępnij Opublikowano 15 Czerwca 2011 1-10 tylko 10 to 2-cyfrowe wiec a i tak przeba +=1 dawac inaczej sie nie da:D $x='' $szukam=random(1,10,1) $x=$szukam msgbox(0,'',$x) masz najszybszy sposob:D Do $wiek+=1 Until ŻycieGetMsg() = -3 zbieram + Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 15 Czerwca 2011 Autor Udostępnij Opublikowano 15 Czerwca 2011 heh zeby tak sie dalo , ja ta liczbe bee szukal przez net , a jedeno wytypowanie = kilkanascie min przerwy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rumunun Opublikowano 15 Czerwca 2011 Udostępnij Opublikowano 15 Czerwca 2011 (edytowane) widać że wy nie ty ty ryty $wynik = 0 $x = random(20,500,1) $len = StringLen($x) for $i = 1 to $len $result = StringMid($x, $i,1) $z = 0 Do $z += 1 until $result = $z $wynik &= $z Next $wynik = StringTrimLeft($wynik, 1) MsgBox(0, "szukana liczba to:", $wynik) to co pisałem w #8 poście, sprawdza po kolei cyferki tłumaczenie stringlen(długość stringa (ile jest cyferek) stringmid(wyciaga daną cyferke) stringtrimleft(w tym wypadku usuwa jedną 1 cyferke(przez pętle for dodaje 0 i to nie estetycznie wygląda)) Edytowane 15 Czerwca 2011 przez rumunun adik_123 i XFragsHD 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 15 Czerwca 2011 Autor Udostępnij Opublikowano 15 Czerwca 2011 (edytowane) ok udalo mi sie napisac prawidlowy kod (przynajmniej tak mi sie wydaje) : HotKeySet ( "{esc}" , "stop" ) Func stop () Exit EndFunc Global $n = 1 Global $a Global $b Global $g = 1 Global $sz = 10 $x = Random ( 1 , 10 , 1 ) $moja = Random ( 1 , 10 , 1 ) MsgBox ( 0 , "" , "moja liczba " & $moja & " , mam znalezc -> " & $x) While 1 If $moja > $x Then $sz = $moja - 1 $a = Random ( $g , $sz , 1) $moja = $a $n = $n + 1 EndIf If $moja < $x Then $g = $moja + 1 $b = Random ( $g , $sz , 1) $moja = $b ; $n = $n + 1 EndIf If $x = $moja Then MsgBox ( 0 , "" , "" & "wybrałes " & $moja & " , brawo , trafiles !!! , za " & $n & " razem") FileWrite("wyniki.txt", "trafione za " & $n & " razem" & @CRLF) $n = 1 Exit EndIf WEnd Zostal mi jeden problem do rozwiazania. Jak prog juz wyeliminuje wszystkie liczby i zostanie mi np wartosc $g=2 i $sz=2 to jak zrobic zeby $y = random ($g , $sz , 1 ) byla inna niz 0 ? Ok problem rozwiazany. Ustawilem , ze jak $g = $sz to liczba zostala znaleziona. Kolejny problem : jezeli komp po sprawdzeniu mojej wartosci poinformuje mnie jedynie ze wartosc jest bledna i nie da mi zadnej wskazkowki typu $x > , $x < , jak wyeliminowac ta liczbe z dalszego typowania ? dobrze by bylo zeby to dzialalo z moim kodem. Czekam na Wasza pomoc. Edytowane 15 Czerwca 2011 przez adik_123 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rumunun Opublikowano 15 Czerwca 2011 Udostępnij Opublikowano 15 Czerwca 2011 @up po co komplikujesz jak dałem ci gotowy kod który znajduje cyfre przy paru podejściach? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 15 Czerwca 2011 Autor Udostępnij Opublikowano 15 Czerwca 2011 Kombinuje dlatego ze moja wiedza o docwelowej liczbie jest niewielka. Dostaje jedynie informacje ze liczba ktora podalem jest : > , < , <> . A sprawdzanie kazdej liczby po kolei mija sie z celem bo jest zbyt dlugie. Takze ponawiam pytanie : jezeli komp po sprawdzeniu mojej wartosci poinformuje mnie jedynie ze wartosc jest bledna i nie da mi zadnej wskazkowki typu $x > , $x < , jak wyeliminowac ta liczbe z dalszego typowania ? dobrze by bylo zeby to dzialalo z moim kodem. Czekam na Wasza pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
hfaua Opublikowano 15 Czerwca 2011 Udostępnij Opublikowano 15 Czerwca 2011 Zadeklaruj sobie tablicę, do której będziesz dodawał elementy, które już sprawdziłeś, a potem z pozostałych losował liczbę Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 16 Czerwca 2011 Autor Udostępnij Opublikowano 16 Czerwca 2011 (edytowane) Zadeklaruj sobie tablicę, do której będziesz dodawał elementy, które już sprawdziłeś, a potem z pozostałych losował liczbę Pomysł bdb , ale za bardzo nie umiem sie poslugiwac tablicami :/ , przydalbysie jakis tutek albo przyklad. Ok znalazlem tutki o tablicach , a wiec mam co robic Edytowane 16 Czerwca 2011 przez adik_123 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
hfaua Opublikowano 16 Czerwca 2011 Udostępnij Opublikowano 16 Czerwca 2011 [F1] A jeśli nie rozumiesz dalej, to zacznij analizować przykłady z Helpa z użyciem tablic Szukaj kogoś kodów z nimi i zobacz jak działają Albo czekaj, aż ktoś napisze tutka do tego :P Powinien być tut w temacie lokuxd Zaraz sprawdzę i dam edita #EDIT Faktycznie jest IV rozdział http://www.mpcforum.pl/topic/257004-automatyczne-klikanie-co-x-czasu-twoj-klawisz/ adik_123 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adik_123 Opublikowano 16 Czerwca 2011 Autor Udostępnij Opublikowano 16 Czerwca 2011 (edytowane) Troche poczytalem na temat tablic i mysle , ze jestem juz troche madrzejszy . Taki kodzik sobie zrobilem , jednak jak komp wylosuje dla mnie wartosc 10 to sie error wpier... :/ Global $n = 10 Global $ilosc_typowan = 1 Global $a $x = Random ( 1 , 10 , 1 ) Global $tablica[$n] = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] $tablica[0] = 1 $tablica[1] = 2 $tablica[2] = 3 $tablica[3] = 4 $tablica[4] = 5 $tablica[5] = 6 $tablica[6] = 7 $tablica[7] = 8 $tablica[8] = 9 $tablica[9] = 10 While 1 $n = $n - 1 $a = Random ( 0 , $n , 1 ) MsgBox ( 0 , "" , "Moja liczba : " & $tablica[$a] & " . Mam znalezc -> " & $x) If $tablica[$a] <> $x Then _ArrayDelete($tablica, $a) ReDim $tablica[$n] $ilosc_typowan = $ilosc_typowan + 1 EndIf If $tablica[$a] = $x Then MsgBox ( 0 , "" , "moja liczba " & $tablica[$a] & " , mam znalezc -> " & $x & " , brawo !!! , trafiles za " & $ilosc_typowan & " razem . Aktualny rozmiar tablicy[" & UBound ($tablica) & "]") Exit EndIf WEnd Co z tym fantem zrobic ? Problem znaleziony , po prostu ostatni if musi zostac przeniesiony w gore bo w niektorych przypadkach byly sprawdzane tablice juz skasowane. Prawidlowy kod : #include <Array.au3> Global $n = 10 Global $ilosc_typowan = 1 Global $a $x = Random ( 1 , 10 , 1 ) Global $tablica[$n] = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] $tablica[0] = 1 $tablica[1] = 2 $tablica[2] = 3 $tablica[3] = 4 $tablica[4] = 5 $tablica[5] = 6 $tablica[6] = 7 $tablica[7] = 8 $tablica[8] = 9 $tablica[9] = 10 While 1 $n = $n - 1 $a = Random ( 0 , $n , 1 ) MsgBox ( 0 , "" , "Moja liczba : " & $tablica[$a] & " . Mam znalezc -> " & $x) If $tablica[$a] = $x Then MsgBox ( 0 , "" , "moja liczba " & $tablica[$a] & " , mam znalezc -> " & $x & " , brawo !!! , trafiles za " & $ilosc_typowan & " razem . Aktualny rozmiar tablicy[" & UBound ($tablica) & "]") Exit EndIf If $tablica[$a] <> $x Then _ArrayDelete($tablica, $a) ReDim $tablica[$n] $ilosc_typowan = $ilosc_typowan + 1 sprawdzaj_tablice () EndIf WEnd Edytowane 16 Czerwca 2011 przez adik_123 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi