Pagina 1 din 2

Pontes Backgammon - masa virtuala de table in JAWS Scripting

Scris: 01 Iun 2010, 23:03
de Manu
De o luna am inceput sa lucrez la o masa virtuala de table programata in JAWS Scripting.
Am apucat sa conturez oarecum viitorul Pontes Backgammon si am zis sa fac pentru inceput un pachet de instalare pentru a vedea daca nu am luat-o pe o cale gresita in cea ce priveste conceptia, stilul.

Deocamdata tabla este destul de rudimentara, dar in mod normal se poate juca o partida de table de la cap la coada. Este practic masa de table, iar jucatorii pot muta piesele, pot scoate, pot da cu zarul etc..
Orientarea se face pe baza de sunete de la stanga la dreapta pe 12 pozitii si pe doua culoare determinate de volum.

Astept sugestii, idei, de acum va fi mai usor, practic baza e cel mai greu de realizat.

Combinatii de taste pentru faza actuala:
  • Va plimbati printre pozitii cu sagetile, iar pentru a ajunge direct in casa sau la cealalta extrema, folositi tastele Home sau End.
  • Pentru a lua o piesa in mana, folositi combinatia Control + Spatiu.
  • Pentru a pune piesa din mana pe o pozitie, folositi tasta Spatiu.
  • Pentru a reintroduce pe masa o piesa scoasa prin inlocuire, folositi tasta "i”.
  • Pentru a scoate o piesa de pe masa, folositi tasta Delete.
  • Pentru a arunca zarurile, folositi F2.
  • Pentru a se repeta zarurile nimerite la ultima aruncare, folositi F3.
  • Pentru a afla statusul pozitiei actuale, folositi F4.
  • Pentru a rearanja masa de table la starea initiala, folositi F5.
  • Pentru a afla cate piese albe si cate piese negre mai sunt pe tabla dupa ce s-a inceput scoaterea lor, folositi F6.
  • Cu Alt + F4 se inchide jocul.
In prezent mai contribuie:
  • Stefan Halus - fereastra principala, design si sunete;
  • Sorin Tata - sunete.
De la link-ul urmator puteti downloada Pontes Backgammon in varianta actuala:
Pontes Backgammon 1.0

Scris: 02 Iun 2010, 11:33
de Ghita Potra
Foarte interesant jocul de table, nu s-ar putea face o legătură între zarul dat şi mutări? Deocamdată poţi muta oriunde fără a conta ce zar ai dat.

Scris: 02 Iun 2010, 11:59
de Manu
Dupa cum am spus, deocamdata este in faza incipienta, in viitor va fi si legatura intre zaruri si mutari, vor fi restrictii in functie de posibilitatile de la un moment dat.
Deocamdata este vorba de o masa de table simpla, asa ca si una reala unde se poate muta piesa oriunde, doar decizia personala facand sa se respecte regula.

Ma intereseaza daca orientarea este cat de cat posibila, F4 este o tasta utila pentru a spune pozitia numeric, in caz ca e mai greu cu numararea si cu pozitionarea sunetului.

Scris: 02 Iun 2010, 12:41
de Ghita Potra
Orientarea se poate face uşor şi f4 este utilă, ar fi bine să se anunţe cine urmează la mutare.

Scris: 03 Iun 2010, 12:39
de Manu
Da, exacta cesta este urmatorul pas, introducerea unei variabile a carei valoare va fi 2 sau 4, in functie de zaruri, dubla sau nu. Aceasta variabila va scadea pe masura ce se muta cate o piesa, pana ajunge la 0. Atunci, aruncarea zarurilor va fi conditionata de aflarea acestei variabile la valoarea 0. In acelasi timp va fi o variabila pe care o voi numi "iRand" care se va tot schimba din 1 in 2, aceasta insemnand alb, respectiv negru pentru rand la mutare.
Am surprins din modalitatile de lucru pentru cei care mai sunt interesati sau vor mai fi in legatura cu programarea.
Pentru cei curiosi as putea prezenta pe larg cum s-a putut face o masa de table virtuala.
Intotdeauna trebuie gasita calea, in programare nu limbajul este problema, ci gasirea solutiilor.
Deci se poate cunoaste perfect orice functie, orice operatori etc., dar daca nu exista o solutie inainte teoretica prin care sa faci propriu-zis ideea de tabla sau pachet de carti, nu se poate face nimic.
Deci, revin cu ideea pe care o spuneam la topicul despre cursul de scripting: "In primul rand imaginatia conteaza".

Scris: 03 Iun 2010, 15:05
de Ghita Potra
Ar trebui găsită o modalitate de a nu putea intra decât unde trebuie cu piesa scoasă, din greşală am intrat cu piesa scoasă direct în casă, cred că acest lucru nu poate fi prea greu de făcut.

Scris: 04 Iun 2010, 12:08
de Manu
Sigur ca da, asta va fi probabil deseara.
Ieri seara am apucat sa mai restrictionez urmatoarele:
In functie de zaruri, dubla sau nu sa fie obligatorii doua sau 4 mutari.
Daca e randul negrului, acesta trebuie sa mute cate piese trebuie, abia apoi se poate da cu zarul sau se poate lua piesa de culoare opusa.
Pentru situatia in care nu se poate muta nimic, deocamdata am pus combinatia Control + F2, un fel de pass care sa arunce zarul cu comutarea variabilei "iRand" pentru celalalt jucator.

Am gasit si solutia pentru numararea pieselor din casa, cele de culoare corespunzatoare, astfel incat sa nu fie voie scoaterea lor decat atunci cand adunarea variabilelor de tip integer care exprima numarul de piese din casa plus numarul de piese scoase este 15.
Cum la ranjarea mesei variabila piese scoase este 0, e clar ca se poate incepe scoaterea lor doar atunci cand sunt in casa 15. Dupa ce s-a scos de exemplu prima alba, variabila "iPieseAlbeInCasa" devine 14, iar variabila "iPieseAlbeScoase" devine 1, deci in total tot 15.
In acel If va mai fi si un "and and" pentru fortarea respectarii ca variabila care exprima numarul de piese scoase prin inlocuire sa fie 0. Adica se poate ca la un moment dat, dupa ce s-a inceput scoaterea din casa, sa fie o piesa scoasa prin inlocuirea ei cu una de culoare opusa, moment in care normal nu e voie sa mai scot piese din casa.

Acum pare usor, incet-incet se construieste.

A nu baga o piesa gresit pe tabla este usor de tot:
In fiecare moment, cand ne mutam cu sagetile sau cu Home / End, variabila "iNRPozitie" se schimba de la 1 la 24, in functie de casuta pe care suntem. Deci, variabila "iNRPozitie" este una de baza, tot timpul indica locul unde suntem, pe baza ei se intampla foarte multe actiuni, PlaySound-ul etc..
Asadar, la un If pe undeva, la scriptul de introducere in casa, se trece ceva de genul cand se alege functia de reintroducere alba:
If iNRPozitie >= 1 && iNRPozitie >= 6 Then
adica daca pozitia unde se incearca reintroducerea este itnre 1 si 6.
Pentru negru, se verifica la fel, doar ca va fi conditionat de intervalul 19 - 24.
Dupa toate acestea, desigur ca sunt alte si alte verificari de tipul:
daca sunt doua opuse nu se poate intra,
daca este una de culoare opusa sa fie scoasa, iar culoarea sa fie modificata,
daca nu e nimic sau sunt piese de aceeasi culoare sa creasca numarul pieselor de acolo cu 1.

Mai insist cu tot felul de detalii pentru ca asa imi vin si mie idei, iar cand altcineva va vrea sa mai programeze cate ceva, se va putea inspira in gasirea de solutii, repet, partea putin mai complicata si cea care pune mintea la contributie mult mai mult.

Scris: 04 Iun 2010, 13:30
de Ghita Potra
Aştept cu nerăbdare noua variantă pentru a testa-o. Sunt curios dacă ar exista posibilitatea de a juca împotriva calculatorului.

Scris: 04 Iun 2010, 13:38
de Manu
Pai dupa ce e gata in varianta virtuala cu toate regulile posibile, nu vad de ce nu ar fi posibil jocul contra calculatorului, practic in functie de zaruri el va muta ce se poate, facand inainte cateva evaluari pentru a alege cea mai convenabila mutare. Inca e totusi departe faza asta, totul depinde de cum reusesc surprinderea tuturor posibilitatilor in modul simplu.
Inca nu stiu daca as gasi cumva pe undeva o tehnica a clasificarii mutarilor in functie de avantaj. Practic el va da cu zarul, apoi va trebui sa caute in ordine niste oportunitati: sa vada daca e ceva de scos, daca se poate face poarta, chestii din astea.
Acum cand ma gandesc mi se pare greu, dar probabil vor fi solutii.
Deocamdata sa fie tabla facuta cat mai bine.

Scris: 05 Iun 2010, 08:26
de GruiaVelicu
cred ca s-ar putea cu ceva asemanator sahului. dar nu stiu nici sahul cum e construit

Scris: 05 Iun 2010, 13:02
de Manu
La sah stiu ca odata am auzit cam cum se face ca idee, ceva in functie de valoarea piesei, mentinerea pieselor aparate, orientarea lor spre centru, tinta constanta regele adversar.
La table e totusi mai simplu, practic tinta este deplasarea pieselor spre casa dupa una nume algoritm, dar vorbesc cam departe deja, sa indeplinesc eu scopul prim, o masa virtuala de table cat mai practicabila, apoi bagam eventual si robotelul de pe partea cealalta.

In alta ordine de idei, am mai amanat putin cu noua varianta a Backgammon-ului, am constatat ca acum cu restrictiiile actuale, prin faptul ca se poate muta inca gresit, va fi o problema, se vor consuma mutarile fara ca acestea sa fie indeplinite in mod suficient.

Scris: 07 Iun 2010, 01:52
de Manu
Am compilat o noua versiune a Pontes Backgammon.
De acum sunt restrictiile:
A se forta un numar de actiuni in functie de zaruri (dubla sau nu).
La mutarea unei piese pe aceeasi pozitie,a dica o iau in mana si ma razgandesc lasand-o jos, nu se considera consumare din mutarile necesare.
Nu se poate gresi luand piesa alba in mana cand randul la mutat este al negrului.
Nu se poate reintroduce piesa decat in casa corespunzatoare, adica negre in casa alba si invers.
Nu se pot scoate piese decat din locul corespunzator si atunci cand e momentul.
A fost aranjata si fereastra principala, apare acum sigla Pontes Games si o masa de table. Tot o masa de table este si iconita de pe desktop si de pe fisierul de instalare.

Combinatiile de taste au fost gandite putin altfel:

De la F1 la F4 sunt actiuni:
  • F2 arunca zarul doar cand e momentul.
  • F3 intreaba daca se doreste rearanjarea tablei la starea initiala.
  • Control + F2 face posibila aruncarea zarurilor in caz ca nu se poate face numarul necesar de mutari, un fel de pass.
De la F5 la F8 sunt statusuri:
  • F5 anunta pozitia actuala si ce se afla pe ea.
  • F6 anunta cate piese albe si negre mai sunt in joc.
  • F7 anunta cate piese au fost introduse in case, e usor astfel de comparat care sta mai bine.
  • F8 repeta zarurile nimerite la ultima aruncare.
Urmeaza alte restrictionari, probabil si cea a mutarii strict in functie de zarul nimerit.
De asemenea, ceea ce ar fi putut fi facut usor dar am lasat pentru data urmatoare este blocarea posibilitatii de mutare daca o piesa este scoasa, pana aceasta este reintrodusa pe tabla. Deocamdata cine vrea sa se foloseasca de PB, trebuie sa fie atent sa nu uite vreo piesa afara.

Download Pontes Backgammon 1.0 (7 iunie 2010)

Scris: 09 Iun 2010, 18:34
de I Tichir
Un joc de table care se poate juca cu calculatorul este Azabat backgammon, bineinteles doar in limba engleza. Ar fi bine daca Pontes backgammon s-ar putea juca online. Oricum, din punct de vedere al orientarii pe tabla, e mai bine realizat decat jocul mai sus amintit.

Pontes Backgammon - masa virtuala de table in JAWS Scripting

Scris: 09 Iun 2010, 21:05
de Allx Cucu
Salut
eu cred ca ar mai trebui o comanda de taste care sa anunte daca sau cate piese scoase afara sunt in acel moment

Scris: 09 Iun 2010, 21:19
de GruiaVelicu
jocul are niste sunete foarte interesante si este foarte usor de utilizat. nu stiu daca la toti apare urmatoarea eroare, la mine de ex daca dau 6 5 si mut doar cu o singura piesa imi zice ca mai suntt mutari de facut. in stadiul actual trebuie mutat neaparat cu doua piese diferite. doar la mine e asta?