Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano (edytowane)

tak , $x = random ( 1 , 10 , 1 )

jak napisac kod , zeby znalazl liczbe w jak najmniejszej ilosci prob

Edytowane przez adik_123
Opublikowano

$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 +

Opublikowano (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 przez adik_123
Opublikowano

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ła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

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

Opublikowano (edytowane)

widać że wy nie ty ty ryty

To jest ukryta treść, proszę

 

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 przez rumunun
Opublikowano (edytowane)

ok udalo mi sie napisac prawidlowy kod (przynajmniej tak mi sie wydaje) :

 

To jest ukryta treść, proszę

 

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 przez adik_123
Opublikowano

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.

Opublikowano

Zadeklaruj sobie tablicę, do której będziesz dodawał elementy, które już sprawdziłeś, a potem z pozostałych losował liczbę :)

Opublikowano (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 przez adik_123
Opublikowano

[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 :D IV rozdział ;)

To jest ukryta treść, proszę

Opublikowano (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... :/

 

To jest ukryta treść, proszę

 

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 :

 

To jest ukryta treść, proszę

Edytowane przez adik_123
×
×
  • Dodaj nową pozycję...