Curs BGT - Desfasurare

Diverse limbaje, programare, scripting, coduri, unelte specifice etc.
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Unii spun "interesant", altii ar spune ca este ciudat sa se foloseasca acele caractere la inceputul variabilelor, insa practic ele sunt foarte utile fiindca este imediat evident daca o variabila este una scalara, sau daca este un array sau un array aasociativ (hash).
Si in plus datorita lor este foarte simplu de interpolat, adica de interpretat valoarea variabilelor intr-un string.

De exemplu, daca variabila $nume este egala cu "Ion Popescu", o putem interpola intr-un string cu:

$salut = "Buna ziua domnule $nume";

Iar $salut va avea valoarea "Buna ziua domnule Ion Popescu".

Valorile scalare se declara cu $ in fata, ca si in limbajul Bash, si apoi de la Perl a fost preluata idea si la PHP.
Variabilele de tip array se declara cu @ in fata, iar array-urile asociative cu % in fata.

La fel ca majoritatea limbajelor de nivel inalt, Perl a fost creat in C, dar a pastrat multe din stilul de programare in C, plus ca a preluat multe elemente din Bash, grep, sed, awk, acestea din urma fiind comenzi care se folosesc in Unix.

Da intr-adevar, se poate atribui o valoare locala unei variabile in blocul curent, valoare care sa modifice variabila globala, sau variabila din blocul superior, iar dupa incheierea blocului curent valoarea ei sa revina la valoarea initiala a variabilei globale (sau din blocul superior).

De exemplu:

our $var = 3;
print "$var\n";

{
local $var = "foo";
print "$var\n";
}

print "$var\n";

Va tipari:
3
foo
3

Sau ca in exemplul in care se folosesc doua blocuri pe doua niveluri:


our $var = 1;
print "$var\n";

{
local $var = 3;
print "$var\n";

{
local $var = "foo";
print "$var\n";
}

print "$var\n";
}

print "$var\n";

Se va tipari:
1
3
foo
3
1
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Pana la urma a venit vremea sa continuam si topicul acesta, mai ales ca intre timp ne-am mai intalnit de doua ori pentru a lucra la jocul nostru cu suprafata minata.
Azi ne-am intalnit pentru a definitiva problema redarii sunetelor in functie de runda.
Daca e runda 3 sa poata fi redat un sunet numit pas3.ogg sau perete3.oog etc, daca nu exista sunet cu astfel de numere in capat sa fie redat sunetul implicit. E usor astfel pentru oricine sa lucreze la partea de sunet, astfel incat fiecare runda sa arate altfel.

Au fost adaugate runde intermediare intre suprafetele cu mine.
Exista un fel de tunel prin care trebuie sa fugi in timp de 15 secunde, in doua locuri fiind cate un bonus de o viata care se poate lua apasand spatiul. La capatul tunelului exista tot o usa prin care se ajunge la un nivel superior fara necesitatea detinerii unei chei.

Am introdus si variabila putere. Dupa pierderea unei vieti sau la inceput de runda, puterea este 5. La apasarea spatiului in gol, fara a fi acolo o mina, o cheie de luat sau o usa de deschis, scade din putere cate un punct. Cand puterea ajunge la 0 se pierde o viata. Reducerea puterii este exprimata printr-un gafait caruia ii scade pitchul de la 100 (standard) la 50 (jumate).
Am utilizat formula gasita la repezeala:
blank.pitch=putere*10+50;
unde putere este variabila care poate avea valori intre 1 si 5, iar blank este obiectul de tip sunet pentru gafaitul redat la apasarea in gol a spatiului. Asadar, pitchul obiectului blank va fi pe rand 100, 90, 80 etc.
Prin introducerea variabilei putere se anuleaza posibilitatea jocului de tip incercare repetitiva; nu se va putea inainta cu sageata in sus, iar fiecare sageata in sus sa fie urmata de un spatiu pentru a fi sigur ca nu se trece de o mina fara a o dezamorsa aproape instant.

Ne mai intalnim cat de repede pentru a implementa salvarea jocului, pentru a implementa recordul de timp in care se reuseste terminarea jocului si pentru a implementa un meniu principal, astfel incat versiunea 1.0 sa fie gata.

De la link-ul urmator se poate descarca Proiectul în faza 7:
Download Fişier ZIP cu întreg proiectul în faza 7

Lansând fişierul .EXE din folderul rezultat la dezarhivare, oricine se poate juca fara nici o setare, fara a instala ceva, este un joc standalone.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Pontes Escape, proiect faza 8

Mesaj de Manu »

Am ajuns si la o faza pe care o numerotam ca a opta.
Este ultima faza pe care o punem inainte de jocul final.

Numele final va fi Pontes Escape, avand in vedere ca scopul este evadarea din trei zone minate si doua tuneluri, plus fuga cu un tren, o runda finala la care se lucreaza acum.

Am apucat sa cream jocului un meniu din care se pot testa boxele / castile (daca sunt pozitionate corect), se pot introduce cheat Codes (coduri de trisare) si se poate porni sau inchide jocul.

Sunt multe sunete noi, in total jocul are 45 in prezent.

Am implementat si cheat codes, 5 in total. Poate fi folosit doar cate unul pe joc.
Cu un cheat codes se poate face ca numarul vietilor sa fie 10 din oficiu, nu doar 3, timpul sa fie nelimitat, puterea sa nu scada, sa se spuna la inceputul rundei unde se afla cheia pentru iesirea mai rapida dintr-un joc sau sa fie fuga cu trenul mai usoara.
Codurile de trisare nu vor fi documentate in manual, cele 5 existente vor fi puse in clipboard in momentul terminarii cu succes a unui joc intreg fara utilizarea vreunui cheat code.

Asadar se mai lucreaza la runda finala si la implementarea unui cutremur sau asa ceva care sa impiedice cautarea sistematica.
Va fi apoi creat un pachet final pentru limba romana, dupa care vom traduce jocul si in engleza.
Sper ca weekend-ul acesta sa fie gata versiunea 1.0 ca pachet de instalare.

De la link-ul urmator se poate descarca Proiectul în faza 8:
Download Fişier ZIP cu întreg proiectul în faza 8

Rog pe cei care au contribuit la joc si care citesc sursa, sa nu spuna care sunt cheat codes, astfel incat descoperirea lor sa fie o surpriza pentru cine va juca. Cand spun despre divulgarea codurilor de trisare din sursa, ma refer in primul rand la varianta engleza, sa nu fie puse pe audiogames.net de noi, ci sa ii lasam pe altii.

Daca mai sunt sugestii de moment, asteptam aici...
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Faza 9 (finala) a Pontes Escape

Mesaj de Manu »

A venit si timpul unei faze finale a proiectului nostru Explorare suprafata minata.

Dupa cum am anuntat in topicul Pontes Escape, un joc de aventura, a aparut versiunea 1.0 a jocului sub forma unui pachet de instalare care contine si un fisier HTML de ajutor.

Pe langa suprafetele minate prezentate in cele trei nivele principale, (pestera, apa si padure), mai este si un nivel final in care personajul trebuie sa sara intr-un tren in viteza. Ultimul moment al jocului, in caz de reusita, este sunetul trenului in mers, auzit din una dintre toaletele acestuia.

Arhiva cu proiectul in faza finala contine si fisierul de ajutor, astfel incat accesandu-l cu F1 din joc sau dand Enter pe optiunea aferenta din meniul principal, acesta sa se deschida in Internet Explorer.

De la link-ul urmator se poate descarca Proiectul în faza 9, faza finala a jocului Pontes Escape, versiunea 1.0:
Download Fişier ZIP cu întreg proiectul în faza 9 (finala)

Poate ca in viitor aventura va fi continuata, din tren se poate ajunge intr-o gara in care personajul sa fie urmarit de diverse pericole, se poate fugi mai departe cu alt tren si multe altele, cu siguranta in imaginatia unora, salvati deja de suflul si schijele rezultate in urma exploziilor, au aparut idei pentru o posibila versiune 2.0.

Acest topic, pe care il putem considera inchis din punctul de vedere al scopului initial, ramane totusi deschis pentru comentarii, sugestii si, de ce nu, pentru noi coduri care sa duca la posibile imbunatatiri.
De asemenea, asteptam intrebari legate de cod, daca in viitor cineva se gandeste sa invete BGT si va considera topicul de fata cu toate anexele sale ca fiind un manual demn de luat in seama.
Desigur ca nu este cel mai bun cod posibil, dar... avand in vedere ca este creat impreuna cu "absolventi" ai unui curs de programare, asadar incepatori intr-ale programarii, exista o scuza. Cand ma refer la cel mai bun cod posibil, ma gandesc la distribuirea functiilor pe fisiere, ordinea intr-un fisier a unor functii si altele care fac ca proiectul sa fie putin haotic in cea ce priveste sursa.

Pontes Escape, ca varianta finala pentru "publicul larg", sub forma unui pachet de instalare creat cu Inno Setup Compiler, poate fi gasit si la adresa:
www.games.pontes.ro.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Tataru_Daniel
Soldat
Mesaje: 2
Membru din: 30 Ian 2012, 16:43
Localitate: Bucuresti

Mesaj de Tataru_Daniel »

este un joc excelent
Scrie răspuns