Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] skrypt rozszyfrowujący grę "serduszka"
Forum PHP.pl > Forum > Przedszkole
MaciekDZN
Witam,
gram sobie w taką jedną grę (bubble blast valentine) na adroidzie i natrafiłem na planszę której nie mogę przejść


postanowiłem więc jednak że napiszę program w php który mi obliczy w jaki sposób mam klikać w serca żeby przejść tą planszę




napisałem coś takiego na szybko ale wiem ze to jest źle, pomożcie bo nie mam pomysłu jak to dokończyć

  1. <?php
  2. $a0_1=9; $a0_2=9; $a0_3=9; $a0_4=9; $a0_5=9;
  3.  
  4. $a1_0=9; $a1_1=1; $a1_2=2; $a1_3=1; $a1_4=0; $a1_5=0; $a1_6=9;
  5. $a2_0=9; $a2_1=0; $a2_2=1; $a2_3=0; $a2_4=0; $a2_5=0; $a2_6=9;
  6. $a3_0=9; $a3_1=0; $a3_2=0; $a3_3=0; $a3_4=0; $a3_5=0; $a3_6=9;
  7. $a4_0=9; $a4_1=0; $a4_2=0; $a4_3=0; $a4_4=0; $a4_5=0; $a4_6=9;
  8. $a5_0=9; $a5_1=0; $a5_2=0; $a5_3=0; $a5_4=0; $a5_5=0; $a5_6=9;
  9. $a6_0=9; $a6_1=0; $a6_2=0; $a6_3=0; $a6_4=0; $a6_5=0; $a6_6=9;
  10.  
  11. $a7_1=9; $a7_2=9; $a7_3=9; $a7_4=9; $a7_5=9;
  12.  
  13. $ile_razy=6;
  14.  
  15. for($t=1;$t<=6;$t++)
  16. {
  17. for($i=1;$i<=5;$i++)
  18. {
  19. $aa='$a'.$t.'_'.$i;
  20. if($aa=0)
  21. {
  22. //$i++;
  23. } else {
  24. $lewo= "'$a'.$t.'_'.$i-1";
  25. $gora= "'$a'.$t-1.'_'.$i";
  26. $prawo= "'$a'.$t.'_'.$i+1";
  27. $dol= "'$a'.$t+1.'_'.$i";
  28. }
  29. }
  30. if($a1_1==0 and $a1_2==0 and $a1_3==0 and $a1_4==0 and $a1_5==0 and
  31. $a2_1==0 and $a2_2==0 and $a2_3==0 and $a2_4==0 and $a2_5==0 and
  32. $a3_1==0 and $a3_2==0 and $a3_3==0 and $a3_4==0 and $a3_5==0 and
  33. $a4_1==0 and $a4_2==0 and $a4_3==0 and $a4_4==0 and $a4_5==0 and
  34. $a5_1==0 and $a5_2==0 and $a5_3==0 and $a5_4==0 and $a5_5==0 and
  35. $a6_1==0 and $a6_2==0 and $a6_3==0 and $a6_4==0 and $a6_5==0)
  36. {
  37. echo "<br />Zbijasz wszystkie serduszka i wygrywasz<br />";
  38. } else {
  39. echo "<br />Nie udało się przejść planszy<br />";
  40. }
  41. }
  42.  
  43. ?>


w grze chodzi o to ze ma się jakąś ilość ruchów, po każdym kliknieciu na serce zmienia ono swoj kolor bliższy czerwonemu (niebieski->zólty->zielony->czerwony), gdy ma kolor czerwony i je nacisniemy to znika, a w 4 strony lecą mini serduszka ktore tez zmieniaja kolor na inny pobliskich serc w liniach prostych.
nekomata
  1. $aa='$a'.$t.'_'.$i;
Takie coś przesyła do $aa coś takiego '$a(wartość t)_(wartość i)' czyli co prawda budujesz nazwę zmiennej ale nie sprawdzisz jej. Użyj do tego tablic . czyli $a[1][1] itd , wtedy możesz w for zapisać sobie $a[$t][$i] i masz właściwą wartość . Ogólnie nie za bardzo rozumiem o co biega w tej grze .

EDIT : Jeszcze używasz for do poruszania się po każdym elemencie array'u , użyj foreach (w sumie niema to wielkiego znaczenia ale jest 'poprawniej')

EDIT2(offtop) :
Cytat
postanowiłem więc jednak że napiszę program w php który mi obliczy w jaki sposób mam klikać w serca żeby przejść tą planszę
Jak mawia mój znajomy , "W php jest takie programowanie jak sex na redtubie " . biggrin.gif
MaciekDZN
  1. <?php
  2. $a[0][1]=9; $a[0][2]=9; $a[0][3]=9; $a[0][4]=9; $a[0][5]=9;
  3.  
  4. $a[1][0]=9; $a[1][1]=1; $a[1][2]=2; $a[1][3]=1; $a[1][4]=0; $a[1][5]=0; $a[1][6]=9;
  5. $a[2][0]=9; $a[2][1]=0; $a[2][2]=1; $a[2][3]=0; $a[2][4]=0; $a[2][5]=0; $a[2][6]=9;
  6. $a[3][0]=9; $a[3][1]=0; $a[3][2]=0; $a[3][3]=0; $a[3][4]=0; $a[3][5]=0; $a[3][6]=9;
  7. $a[4][0]=9; $a[4][1]=0; $a[4][2]=0; $a[4][3]=0; $a[4][4]=0; $a[4][5]=0; $a[4][6]=9;
  8. $a[5][0]=9; $a[5][1]=0; $a[5][2]=0; $a[5][3]=0; $a[5][4]=0; $a[5][5]=0; $a[5][6]=9;
  9. $a[6][0]=9; $a[6][1]=0; $a[6][2]=0; $a[6][3]=0; $a[6][4]=0; $a[6][5]=0; $a[6][6]=9;
  10.  
  11. $a[7][1]=9; $a[7][2]=9; $a[7][3]=9; $a[7][4]=9; $a[7][5]=9;
  12.  
  13. $ile_razy=6;
  14.  
  15. for($t=1;$t<=6;$t++)
  16. {
  17. for($i=1;$i<=5;$i++)
  18. {
  19.  
  20. if($a[$t][$i]=0)
  21. {
  22. //$i++;
  23. } else {
  24.  
  25. $y1=$i-1;
  26. $y2=$i+1;
  27. $z1=$t-1;
  28. $z2=$t+1;
  29.  
  30. $a[$t][$y1]=$a[$t][$y1]-1;
  31.  
  32. $a[$t][$y2]=$a[$t][$y2]-1;
  33.  
  34. $a[$z1][$i]=$a[$z1][$i]-1;
  35.  
  36. $a[$z2][$i]=$a[$z2][$i]-1;
  37.  
  38.  
  39. }
  40. }
  41. if($a[1][1]==0 and $a[1][2]==0 and $a[1][3]==0 and $a[1][4]==0 and $a[1][5]==0 and
  42. $a[2][1]==0 and $a[2][2]==0 and $a[2][3]==0 and $a[2][4]==0 and $a[2][5]==0 and
  43. $a[3][1]==0 and $a[3][2]==0 and $a[3][3]==0 and $a[3][4]==0 and $a[3][5]==0 and
  44. $a[4][1]==0 and $a[4][2]==0 and $a[4][3]==0 and $a[4][4]==0 and $a[4][5]==0 and
  45. $a[5][1]==0 and $a[5][2]==0 and $a[5][3]==0 and $a[5][4]==0 and $a[5][5]==0 and
  46. $a[6][1]==0 and $a[6][2]==0 and $a[6][3]==0 and $a[6][4]==0 and $a[6][5]==0)
  47. {
  48. echo "<br />Zbijasz wszystkie serduszka i wygrywasz<br />";
  49. } else {
  50. echo "<br />Nie udało się przejść planszy<br />";
  51. }
  52. }
  53.  
  54. ?>

no i dalej nie wiem jak to napisać......................

co do php, redtube, sexu to związku nie widze, a jak inaczej nazwać coś co jest programem to nie wiem...
może kod który po otworzeniu na serwerze obsługującym php można go zobaczyć w formie graficznej i użyć do własnych celów? jednak wolę użyć nazwy "program"
nekomata
Nie rozumiem jednej rzeczy , czemu niektóre wartości mają 9 jeśli masz tylko 4 kolory? Dodatkowo , przelatujesz przez każde pole a masz tylko dwa ruchy co nie? Jak na mój gust to musisz to inaczej napisać , sprawdzić wszystkie możliwości ( (szerokość * wysokość) podniesione do potęgi kliknięć (chyba haha.gif)... czyli baardzo dużo możliwości wyjdzie.). Co do redtuba ... to taki żarcik z którym ja się osobiście zgadzam bo php samo w sobie to parser skryptów , a ja osobiście uznaje programy jako coś co uruchamiam u siebie na komputerze , nie to że php jest słabe czy coś (łatwe też nie jest) tylko że programem bym tego nie nazwał.
webdice
Proszę się zapoznać z regulaminem forum i poprawić temat. W innym wypadku wątek zostanie zamknięty.
by_ikar
Cytat(nekomata @ 20.06.2011, 00:57:02 ) *
Co do redtuba ... to taki żarcik z którym ja się osobiście zgadzam bo php samo w sobie to parser skryptów , a ja osobiście uznaje programy jako coś co uruchamiam u siebie na komputerze , nie to że php jest słabe czy coś (łatwe też nie jest) tylko że programem bym tego nie nazwał.

To sobie skompiluj php i będziesz miał coś co możesz uruchamiać. JS również nie jest językiem programowania, bo to jest język skryptowy? php to narzędzie, jak wiele innych, jak ty wykorzystasz to co ci ktoś oferuje, świadczy o tym kim jesteś.
nekomata
@up zwolnij konie panie .
Nie za bardzo mi pasuję 'to sobie' więc wole nie wdawać się w dalszą dyskusję ... niektórzy naprawdę nie potrafią oddzielić żartu od rzeczy poważnych . Poza tym może byś pomógł autorowi bo od tego chyba jest ten dział , ja dodawałem offtopic do mojej wypowiedzi , więc potraktuj to jako gratisa i się nie bulwersuj bo darowanemu koniowi się w zęby nie patrzy .
Zobacz może co mówi wikipedia na ten temat?
Kod
PHP jest najczęściej stosowany do tworzenia skryptów po stronie serwera WWW, ale może być on również używany do przetwarzania danych z poziomu wiersza poleceń, a nawet do pisania programów pracujących w trybie graficznym (np. za pomocą biblioteki GTK+, używając rozszerzenia PHP-GTK). Implementacja PHP wraz z serwerem WWW Apache oraz serwerem baz danych MySQL określana jest jako platforma AMP (w środowisku Linux ? LAMP, w Windows ? WAMP).
.... a nawet do pisania programów...
@topic
  1. if($a[$t][$i]=0)
Jedno = więcej. tongue.gif
MaciekDZN
czyli jednak miałem racje z tym "programo..."

dodałem jeden = więcej tongue.gif

przejdę do rzeczy, napisałem coś takiego co działa prawidłowo ale liczy po kolei, jak to przerobić żeby sprawdzało każdą możliwość?:

  1. <?php
  2.  
  3. $a[0][0]=9; $a[0][1]=9; $a[0][2]=9; $a[0][3]=9; $a[0][4]=9; $a[0][5]=9; $a[0][6]=9;
  4.  
  5. $a[1][0]=9; $a[1][1]=1; $a[1][2]=1; $a[1][3]=1; $a[1][4]=0; $a[1][5]=0; $a[1][6]=9;
  6. $a[2][0]=9; $a[2][1]=0; $a[2][2]=1; $a[2][3]=0; $a[2][4]=0; $a[2][5]=0; $a[2][6]=9;
  7. $a[3][0]=9; $a[3][1]=0; $a[3][2]=0; $a[3][3]=0; $a[3][4]=0; $a[3][5]=0; $a[3][6]=9;
  8. $a[4][0]=9; $a[4][1]=0; $a[4][2]=0; $a[4][3]=0; $a[4][4]=0; $a[4][5]=0; $a[4][6]=9;
  9. $a[5][0]=9; $a[5][1]=0; $a[5][2]=0; $a[5][3]=0; $a[5][4]=0; $a[5][5]=0; $a[5][6]=9;
  10. $a[6][0]=9; $a[6][1]=0; $a[6][2]=0; $a[6][3]=0; $a[6][4]=0; $a[6][5]=0; $a[6][6]=9;
  11.  
  12. $a[7][0]=9; $a[7][1]=9; $a[7][2]=9; $a[7][3]=9; $a[7][4]=9; $a[7][5]=9; $a[7][6]=9;
  13.  
  14. $ile_r=6;
  15. $ile_x=5; //i
  16. $ile_y=6; //t
  17.  
  18.  
  19. for($t=1;$t<=$ile_r;$t++)
  20. {
  21. for($t=1;$t<=$ile_y;$t++)
  22. {
  23. for($i=1;$i<=$ile_x;$i++)
  24. {
  25.  
  26. if($a[$t][$i]==0)
  27. {
  28. //$i++;
  29. } else {
  30. if($a[$t][$i]==1)
  31. {
  32. $y1=$i-1; //do tylu o jeden
  33. $y2=$i+1; //do przodu o jeden
  34. $z1=$t-1; //w gore o jeden
  35. $z2=$t+1; //w dol o jeden
  36.  
  37. echo "<br />Srodek:Wspolrzedne: $t,$i = <br />".$a[$t][$i]." - wczesniej<br />";
  38. if($a[$t][$i]-1>=0)
  39. $a[$t][$i]=$a[$t][$i]-1;
  40. echo $a[$t][$i]."<br />";
  41.  
  42. echo "<br />Gora:Wspolrzedne: $t,$y1 = <br />".$a[$t][$y1]." - wczesniej<br />";
  43. if($a[$t][$y1]-1>=0)
  44. $a[$t][$y1]=$a[$t][$y1]-1;
  45. echo $a[$t][$y1]."<br />";
  46.  
  47. echo "<br />Dol:Wspolrzedne: $t,$y2 = <br />".$a[$t][$y2]." - wczesniej<br />";
  48. if($a[$t][$y2]-1>=0)
  49. $a[$t][$y2]=$a[$t][$y2]-1;
  50. echo $a[$t][$y2]."<br />";
  51.  
  52. echo "<br />Lewo:Wspolrzedne: $z1,$i = <br />".$a[$z1][$i]." - wczesniej<br />";
  53. if($a[$z1][$i]-1>=0)
  54. $a[$z1][$i]=$a[$z1][$i]-1;
  55. echo $a[$z1][$i]."<br />";
  56.  
  57. echo "<br />Prawo:Wspolrzedne: $z2,$i = <br />".$a[$z2][$i]." - wczesniej<br />";
  58. if($a[$z2][$i]-1>=0)
  59. $a[$z2][$i]=$a[$z2][$i]-1;
  60. echo $a[$z2][$i]."<br />";
  61.  
  62.  
  63. if($i<6)
  64. $t=$t-1;
  65.  
  66. if($a[1][1]==0 and $a[1][2]==0 and $a[1][3]==0 and $a[1][4]==0 and $a[1][5]==0 and
  67. $a[2][1]==0 and $a[2][2]==0 and $a[2][3]==0 and $a[2][4]==0 and $a[2][5]==0 and
  68. $a[3][1]==0 and $a[3][2]==0 and $a[3][3]==0 and $a[3][4]==0 and $a[3][5]==0 and
  69. $a[4][1]==0 and $a[4][2]==0 and $a[4][3]==0 and $a[4][4]==0 and $a[4][5]==0 and
  70. $a[5][1]==0 and $a[5][2]==0 and $a[5][3]==0 and $a[5][4]==0 and $a[5][5]==0 and
  71. $a[6][1]==0 and $a[6][2]==0 and $a[6][3]==0 and $a[6][4]==0 and $a[6][5]==0)
  72. {
  73. echo "<br /><font color='green'><b>Zbijasz wszystkie serduszka i wygrywasz</b></font><br />";
  74. } else {
  75. echo "<br /><font color='red'><b>Nie udalo sie przejsc planszy</b></font><br />";
  76. }
  77.  
  78. echo "<br />~~~~~~~~NOWA LINIA~~~~~~~~~~<br />";
  79.  
  80. }
  81. }
  82.  
  83. }
  84. }
  85. }
  86. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.