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)

To jest ukryta treść, proszę

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

To jest ukryta treść, proszę

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ę...