ďťż

[php] Dialog z pliku

       

Podstrony


telcocafe

Witam

Mam przykładowe dane w pliku:


1 Czesc, czy lubisz łowić ryby?
1-1 Tak
1-2 Nie
1-1-1 Ja też :)
1-2-2 Żałuj :D
1-1-1-1 Połowimy razem?
1-1-1-2 Masz może robaczki?
1-2-2-1 Nauczysz mnie?
1-2-2-2 Nie mam wędki


Próbuje napisać algorytm w PHP który by zadawał kolejno pytania i możliwe odpowiedzi, jednak wogóle mi nie wychodzi :(
Proszę o pomoc :)



Drzewo binarne zaimplementowane na tablicy, przechodzone losowo? Tylko musisz mieć troszkę inną strukturę pliku wejścowego, albo go sobie obrobić.

W skrócie chodzi o to, że w tablicy trzymasz drzewo, w którym każdy ojciec ma dokładnie dwoje potomków. Jeśli ojciec jest w tablicy na pozycji T[n], to lewy syn jest na T[2*n], a prawy na T[2*n+1].
Oczywiście trzeba pamiętać o tym, że tablica indeksuje się od zera, więc trzeba w paru miejscach dodać/odjąc jedynkę.

t.txt
k 0 1 00 01 10 11 000 001 010 011 100 101 110 111

index.php
<?php $t = file_get_contents('t.txt'); $t = explode("\n",$t); $now = 1; while($now-1 < count($t)) // dopoki jestesmy w drzewie { echo $t[$now-1].'<br />'; // piszemy to, co teraz mamy pod reka $now = $now*2+rand(0,1); // i idziemy sobie losowo na lewo, albo na prawo } ?>

Opisałem bardzo skrótowo, więc gdybyś czegoś nie rozumiał, to pytaj, tylko błagam o konkretne pytania ;]
Użytkownik bryn edytował ten post 21 lipiec 2007, 14:56
Aleee mi chodzi o coś takiego, że:

Zadawane jest pierwsze pytanie


1 Czesc, czy lubisz łowić ryby?

I dwie możliwe odpowiedzi do niego:


1-1 Tak
1-2 Nie


I teraz:
Jeżeli się kliknie na Tak:
to pokaże się 'odpowiedz':


1-1-1 Ja też smile.gif

Zaś jeżeli kliknę na Nie pokaże się:


1-2-2 Żałuj :D

itp
CHODZI O ROZMOWĘ I KOLEJNO ZADAWANE PYTANIA W ZALEŻNOŚCI OD ODPOWIEDZI :P
Użytkownik PiKey edytował ten post 21 lipiec 2007, 15:08
No to właściwie to samo... tyle, że:
1) w drzewie binarnym pamiętasz tylko pytania
2) wypisujesz klientowi pytanie, którego indeks w tablicy dostajesz w $_GET['q'] - jeśli nie ma tam nic, to wypisujesz pierwsze pytanie
3) dajesz klientowi dwa linki:
echo '<a href="index.php?q='.$_GET['q']*2.'">etykieta lewej krawędzi</a>'; echo '<a href="index.php?q='.$_GET['q']*2+1.'">etykieta prawej krawędzi</a>';

W tym wypadku pytania są etykietami wierzchołków, a odpowiedzi - etykietami krawędzi



<?php $od = 5; $do = 10; if( !$f = fopen('plik.txt', 'r')) exit('Nie można odczytać pliku!'); flock($f, 1); $cur=0; $all = array(); //Odczytujemy linijki while(++$cur && !feof($f) && $cur<$do) { if($cur>=$od) { $line = fgets($f); $pos = strpos($f, ' '); $all[ substr($line, 0, $pos) ] = substr($line, ++$pos); } } ksort($all); $index='1'; //Pierwszy indeks $chars=1; //Generujemy foreach($all as $key=>$val) { //Pytanie if($key==$index) { echo '<div class="q"><h3>'.$all[$i].'</h3>'; } //Odpowiedź elseif(...) { echo '<span onclick="Go(parametr)">'.$val.'</span>'; } } ?>
Użytkownik Ferrari edytował ten post 22 lipiec 2007, 12:20
Może być! :)
Bardzo proszę o 'dokładkę' :>

Zaktualizowałem poprzedni post. Spróbujcie dokończyć skrypt. Nie chce mi się nad tym już myśleć. Trzeba jeszcze dopisać kod JS w <head>:
var curID=1; function Go(x) { document.getElementById(curID).style.display='none'; document.getElementById(x).style.display='auto'; curID=x; }a także utworzyć odpowiednie style w zewnętrznym arkuszu CSS.

Jeśli pojawi się odpowiedź np. "Ja też", to poniżej powinno być widoczne pytanie "Połowimy razem?"?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.