Regulile, pe scurt
- Grila și avioanele. Fiecare jucător are o grilă de 10 pe 10, ascunsă de adversar, și 3 avioane, la fel de mari.
- Un avion are 10 pătrățele: capul (botul), aripile (5 pătrățele pe un rând, capul în mijlocul aripii din față), fuzelajul (1 pătrățel în spatele aripii) și coada (3 pătrățele pe un rând). Poți să-l așezi cu capul în sus, la dreapta, în jos sau la stânga.
- Așezarea. Avioanele încap întregi pe grilă și nu se suprapun; pot fi lipite și pot atinge marginea.
- Tragerea. Pe rând, fiecare trage într-o căsuță a grilei adversarului. Răspunsul e ratat (nicio piesă de avion acolo), lovit (piesă de avion, dar nu capul) sau doborât (ai nimerit capul: avionul întreg e doborât).
- Câștigul. Câștigă cine doboară primul toate cele 3 avioane, adică cele 3 capete.
- Avionul doborât. Cel care trage primește răspunsul „doborât” și vede conturul întreg al avionului, ca să nu tragă degeaba în el (varianta pe care am ales-o noi).
Cele patru orientări ale aceluiași avion, cu pătrățelele pe care le ocupă. Capul (C) e mereu în fruntea avionului.
Pe grila goală un avion are 168 de poziții posibile: 42 pentru fiecare orientare (un dreptunghi de 5 pe 4 pătrățele se poate așeza în 6 × 7 feluri pe o grilă de 10 pe 10). Trei avioane se pot așeza, fără să se suprapună, în 66.816 de feluri (numărate exact, pe calculator, cu avioanele privite ca la fel între ele; dacă le-ai număra ca diferite, ar fi 400.896).
Cât de probabil e să nimerești un avion la o lovitură oarbă
Cele 3 avioane acoperă 30 de căsuțe din 100, deci o lovitură oarbă într-o căsuță aleasă la întâmplare nimerește o piesă de avion în 30% din cazuri. Dar căsuțele nu sunt la fel. Am numărat, în toate cele 66.816 de așezări, de câte ori e ocupată fiecare căsuță:
Șansa (în procente) ca fiecare căsuță să facă parte dintr-un avion, pe o grilă goală.
- Cele mai bune patru căsuțe sunt cele din rândurile 4 și 7, coloanele 4 și 7: 55,3% șansă să fie avion. E aproape de două ori mai mult decât media.
- Cele patru colțuri nu pot conține niciodată o piesă de avion (avionul e simetric, iar aripile, mai late decât coada, nu mai încap pe grilă când coada sau capul ajung în colț). A trage în colț, la început, e o lovitură pierdută garantat.
Capul: ținta care contează
Pentru victorie contează doar capetele: 3 din 100 de căsuțe. De aceea calculatorul de nivel Greu nu urmărește căsuțele „mai ocupate”, ci pe cele în care capul are cea mai mare șansă (cu un mic bonus pentru restul avionului, 0,15 din valoare, ales prin măsurători). Harta șanselor ca o căsuță să fie capul unui avion arată altfel decât harta de mai sus:
Șansa (în procente) ca fiecare căsuță să fie capul unui avion. În 16 căsuțe nu poate sta niciodată un cap.
Cea mai mare șansă ca o căsuță să fie cap e de 6,8%, iar 16 de căsuțe nu pot fi niciodată cap: poți trage acolo doar ca să dai de aripi sau coadă. Cum capetele sunt doar 3 din 100 de căsuțe, o lovitură oarbă dă peste un cap doar în 3% din cazuri; restul loviturilor bune sunt „lovit”, adică indicii.
Ce schimbă o lovitură: vecinii
Prima lovitură „lovit” schimbă totul. Dacă ai lovit (fără să doborî) căsuța din rândul 5, coloana 6, atunci șansa ca vecina ei din dreapta (rândul 5, coloana 7) să fie și ea piesă de avion urcă de la 46,4% la 56,2%, iar așezările care mai rămân posibile scad de la 66.816 la 21.502. O singură lovitură elimină peste două treimi din așezări; de aceea merită să tragi în jurul ei, nu la întâmplare.
Cât de bun e calculatorul
Calculatorul nu vede avioanele tale: alege doar după răspunsurile primite, ca un om. Am pus fiecare nivel să joace singur partide cu avioane așezate la întâmplare și am numărat câte lovituri îi trebuie ca să dobore cele 3 avioane (generator cu seed fix, deci cifrele se pot reface):
| Nivel | Partide simulate | Lovituri în medie | Mediana | Cel mai puține | Cele mai multe |
|---|---|---|---|---|---|
| Ușor | 2.000 | 46,8 | 47 | 8 | 93 |
| Mediu | 2.000 | 32,8 | 33 | 7 | 60 |
| Greu | 200 | 13,0 | 13 | 6 | 20 |
- Ușor: Trage la întâmplare în căsuțele netrase; după o lovitură, jumătate din timp încearcă o căsuță vecină.
- Mediu: Caută „în șah”, adică doar în căsuțele în care rândul și coloana au suma pară (orice avion are pe aripi cel puțin două căsuțe de fiecare fel, deci nu-i scapă). După o lovitură trage în jur, mai întâi unde continuă un rând de lovituri.
- Greu: Numără toate așezările celor avioane rămase care se potrivesc cu răspunsurile primite (la început sunt 66.816) și trage unde e cea mai mare șansă să nimerească un cap.
Diferența dintre Ușor (46,8 lovituri în medie) și Mediu (32,8) vine aproape toată din felul în care trage în jurul unei lovituri, nu din „șah”: dacă același calculator Mediu ar căuta în orice căsuță, nu doar în cele cu rândul + coloana pare, ar avea nevoie de 32,9 lovituri, adică doar cu 0,07 mai multe. Paritatea ajută la jocurile cu ținte mici, dar un avion de 10 pătrățele se lovește oricum repede. Nivelul Greu coboară la 13,0. Există și o limită teoretică: o așezare are 16,0 biți de informație (66.816 de variante), iar un răspuns (ratat, lovit sau doborât) aduce cel mult 1,58 biți, deci în medie nu se poate sub 10,1 lovituri. Nivelul Greu e la 2,9 lovituri de această limită. O mutare a lui, chiar și prima, cu 66.816 de așezări de numărat, durează sub o zecime de secundă pe un calculator obișnuit (verificat într-un test).
Sfaturi care se țin de cifre
- Nu începe în colțuri. Nu pot conține piese de avion niciodată. Începe în interior, de preferință în cele patru căsuțe cu cea mai mare șansă (rândurile 4 și 7, coloanele 4 și 7).
- Vecinii contează mai mult decât „șahul”. Calculatorul Mediu face cu 14,0 lovituri mai puțin decât Ușor, aproape toată diferența venind din felul în care trage după o lovitură; să cauți „în șah” (rândul + coloana pare) a adus în simulări doar 0,07 lovituri.
- După un „lovit”, trage în jur. Mai întâi pe linia a două lovituri vecine. Capul stă mereu pe axa fuzelajului, o căsuță în fața mijlocului aripii.
- Nu trage în căsuțele în care nu poate sta un cap (cele 16 din hartă) decât ca să afli unde sunt aripile.
- Când te ascunzi, nu te repeta. Un adversar care a învățat unde ai pus avioanele data trecută le caută întâi acolo, iar harta de mai sus arată că avioanele așezate la întâmplare ajung mai des spre interior, unde trage întâi un adversar atent. Butonul „Așază la întâmplare” te scutește să te repeți.
Cu prietenii, prin cod
Apeși „Joacă cu un prieten” și „Creează o cameră”. Primești un cod de 5 cifre (de exemplu 48271) și un link; prietenul le deschide pe telefonul lui, iar tu apeși „Pornește” când a intrat. Merg exact doi jucători, fără cont și fără aplicație; numele e opțional, cel mult 16 caractere. Vă puteți scrie mesaje scurte sau emoji (cel mult 100 de caractere, nu se păstrează).
- Avioanele rămân secrete. Fiecare își așază avioanele pe telefonul lui, apoi apasă „Gata”: avioanele „intră în hangar”, iar adversarului nu-i pleacă decât un cod (hash SHA-256). Răspunsul la fiecare lovitură îl dă telefonul celui lovit; serverul doar transmite mesaje și nu știe nimic despre avioane.
- Numărul camerei nu dă avioanele. Camera dă la început un număr, același pentru amândoi (îl folosim pentru cine începe). Nu-l folosim pentru avioane: l-ar ști și prietenul, deci ți-ar putea calcula așezarea. Avioanele tale sunt alese de tine sau la întâmplare în telefonul tău.
- Cine începe. Din numărul camerei; la revanșă, celălalt jucător. Telefoanele se înțeleg: dacă nu cad de acord, rămâne numărul camerei.
- Un mesaj pe lovitură. Mesajul tău poartă răspunsul la lovitura primită și lovitura ta următoare, împreună: un mesaj de lovitură are în jur de 21 de octeți (33 când doboară un avion), iar angajamentul 78. O partidă, chiar dacă fiecare ar trage în toate cele 100 de căsuțe, are cel mult 205 de mesaje, sub cele 300 pe care le păstrează camera, deci reconectarea reface întotdeauna partida întreagă.
- Conexiune pierdută sau pagină reîncărcată. Partida se reface din mesajele camerei; avioanele tale le găsește telefonul în locul unde păstrează camera. Dacă s-au pierdut (alt telefon, date șterse), partida nu se mai poate continua și pierde cel care le-a pierdut. Dacă prietenul lipsește peste 90 de secunde sau a părăsit camera, apare „Adversarul nu mai joacă: închei partida”.
- Renunț și revanșă. „Renunț” (cu confirmare) dă victoria celuilalt. După final, „Revanșă” cere o partidă nouă: număr nou, începe celălalt, așezări noi.
Cum verifică jocul că nimeni nu trișează
Problema: răspunsurile le dă cel lovit, care ar putea minți („ratat” la orice, ca să nu fie niciodată doborât). Soluția are doi pași, ca la un plic sigilat:
- Sigiliul. Înainte de joc, fiecare jucător trimite adversarului un cod de 64 de caractere, calculat din așezarea lui, din numărul camerei, din runda curentă și dintr-un număr aleatoriu secret de 128 de biți. Din cod nu se poate afla așezarea, dar nici nu se mai poate schimba, fiindcă altă așezare ar da alt cod.
- Deschiderea. La sfârșit, fiecare trimite așezarea și numărul secret. Telefonul fiecăruia calculează codul din nou și, dacă nu coincide cu cel primit înainte de joc, anunță „Adversarul a trișat”. Apoi verifică fiecare răspuns dat în timpul jocului față de avioanele dezvăluite; un singur răspuns care nu se potrivește e de ajuns.
De ce numărul secret? Fără el, adversarul ar putea încerca toate cele 66.816 de așezări posibile și ar găsi-o pe a ta, comparând codurile; un program obișnuit le încearcă pe toate în jur de două secunde (am măsurat într-un test). Cu numărul secret de 128 de biți, aceleași încercări nu mai găsesc nimic.
Ce poate și ce nu poate acest mecanism.
- Poate: să arate că, la sfârșit, avioanele dezvăluite sunt exact cele de la început și că toate răspunsurile s-au potrivit cu ele; să prindă în timpul jocului răspunsuri imposibile pentru orice așezare (de exemplu „ratat” peste tot: la un moment dat nu mai rămâne loc pentru niciun avion). Cine e prins pierde.
- Nu poate: să împiedice pe cineva să se uite peste umărul prietenului sau să folosească alt program ca să-și aleagă loviturile (e doar o alegere de lovituri, nu o minciună); să verifice un adversar care pleacă fără să-și dezvăluie avioanele (atunci rezultatul rămâne cel din joc și scrie că n-a putut fi verificat); să împiedice pe gazdă să închidă camera.
- Nu protejează datele: nu trimitem alte date decât codul, numele opțional și mesajele jocului, 24 de ore.
Întrebări frecvente
Cum se joacă Avioane?
Fiecare jucător are o grilă de 10 pe 10 pătrățele, ascunsă de adversar, și 3 avioane. Un avion ocupă 10 pătrățele: capul (botul), aripile (5 pătrățele pe un rând, capul fiind în mijlocul aripii din față), fuzelajul (1 pătrățel) și coada (3 pătrățele). Pe rând, fiecare trage într-o căsuță a grilei adversarului și află: ratat, lovit sau doborât. Câștigă cine doboară primul toate cele 3 avioane.
Ce înseamnă „ratat”, „lovit” și „doborât”?
Ratat: în căsuța aceea nu e nicio piesă de avion. Lovit: ai nimerit o piesă de avion, dar nu capul (aripă, fuzelaj sau coadă). Doborât: ai nimerit capul, iar avionul întreg e doborât. Doar capul doboară un avion, de aceea cele 3 capete sunt singura țintă care contează pentru victorie.
Pot așeza avioanele lipite sau lângă margine?
Da. Avioanele pot fi lipite unul de altul și pot atinge marginea grilei, dar trebuie să încapă întregi pe grilă și să nu se suprapună. Pe grila goală, un avion are 168 de poziții posibile: 42 pentru fiecare dintre cele 4 orientări (cu capul în sus, la dreapta, în jos sau la stânga).
Ce se întâmplă cu un avion doborât?
Aici am ales o variantă: când doborî un avion, vezi conturul lui întreg pe grila adversarului, iar căsuțele lui nu se mai pot trage (n-ai niciun motiv să mai tragi în el). Lovitura de dinainte, dacă era în el, se explică și ea: nu mai trebuie căutat un alt avion pentru acea lovitură. Regulile jocului cu hârtie și creion pot diferi de la o casă la alta; dacă le știi altfel, spune-ne.
Cum joc cu un prieten?
Apeși „Joacă cu un prieten” și „Creează o cameră”. Primești un cod de 5 cifre și un link; i le trimiți prietenului, care le deschide pe telefonul lui. Când a intrat, apeși „Pornește”. Fiecare își așază avioanele în secret, apasă „Gata” și apoi trageți pe rând. Fără cont și fără aplicație, doar doi jucători într-o cameră.
Cum știu că prietenul nu trișează?
Răspunsurile la lovituri le dă telefonul lui, iar serverul nu cunoaște avioanele: doar transmite mesaje. De aceea, înainte de joc, fiecare își „leagă” așezarea cu un cod criptografic (SHA-256, 64 de caractere) trimis adversarului, iar la sfârșit o arată; telefonul tău verifică dacă se potrivește cu codul și cu toate răspunsurile date în timpul jocului. Dacă un răspuns e imposibil pentru orice așezare a 3 avioane, jocul îl prinde chiar în timpul partidei. Un jucător prins pierde, cu mesajul „Adversarul a trișat”. Limitele sunt explicate mai jos.
Ce se întâmplă dacă pică netul sau reîncarc pagina?
Partida nu se pierde: camera ține toate mesajele 24 de ore, iar telefonul tău reface partida din ele. Avioanele tale stau doar în telefonul tău, în același loc în care se păstrează și camera (în browser), ca să le găsești după o reîncărcare. Dacă ai schimbat telefonul sau ai șters datele site-ului după ce te-ai angajat, avioanele nu mai pot fi găsite: partida nu mai poate continua și cel care a pierdut așezarea pierde. Dacă prietenul nu mai revine, după 90 de secunde de la deconectare apare butonul „Adversarul nu mai joacă: închei partida”.
Cine începe și ce se întâmplă la revanșă?
La început, cine trage primul se hotărăște dintr-un număr stabilit de cameră, la fel pentru amândoi. La revanșă începe celălalt jucător, iar camera dă un număr nou. Dacă telefoanele nu cad de acord cine a început runda trecută (de exemplu pentru că un telefon a pierdut datele), se folosește iar numărul camerei.
Care nivel e bun pentru început?
Ușor. La Ușor calculatorul are nevoie în medie de 3,6 ori mai multe lovituri decât la Greu, deci ai timp să înveți cum arată avionul și unde stau capetele. Când îl bați des, treci la Mediu, apoi la Greu: acesta numără toate așezările posibile și trage unde e cea mai mare șansă să dea de un cap.
Se salvează statisticile?
Da, în telefonul tău: câte partide ai jucat contra calculatorului, câte ai câștigat și cele mai puține lovituri la o victorie, pe niveluri. Nu trimitem nimic pe un server. La jocul cu un prieten, camera păstrează doar codul, numele opțional și mesajele jocului, 24 de ore; așezarea ta nu pleacă din telefon decât la sfârșit, ca să fie verificată.
Merge pe telefon, cu degetul?
Da, e făcut pentru telefon (testat la 390 de pixeli lățime): îți tragi avioanele pe grilă cu degetul, le rotești cu un buton și tragi cu o atingere. Merge și cu tastatura: săgețile mută pe grilă, Enter apasă o căsuță, R rotește avionul ales, iar fiecare căsuță are un nume clar, de forma „Rândul 3, coloana 5”. Animațiile se opresc dacă ai cerut „mai puțină mișcare” în setările telefonului.
Dacă îți plac jocurile cu logică și puțin noroc, încearcă și șahul, table sau sudoku.
Autor: Chiribuca Elvis. Regulile, calculatorul și cifrele de pe această pagină sunt făcute și calculate de noi, fără reclame și fără cont.