diff -Nru huszonegy-1.0/debian/changelog huszonegy-1.0/debian/changelog --- huszonegy-1.0/debian/changelog 2010-06-10 11:15:34.000000000 +0100 +++ huszonegy-1.0/debian/changelog 2010-07-06 06:22:36.000000000 +0100 @@ -1,3 +1,13 @@ +huszonegy (1.0-5) lucid; urgency=high + + * Javítások a végleges verzióban: + Apróbb hibajavítások történtek a játékban: + A játékszabályok kiíratása után nem lép ki a játék rossz billentyű lenyomása esetén. + Ha a játékos nem nyert, egy sablon üzenet íródik ki. + + -- Attila Hammer Thu, 10 Jun 2010 11:33:23 +0200 + + huszonegy (1.0-4) lucid; urgency=high * Javítások a végleges verzióban: diff -Nru huszonegy-1.0/huszonegy.cpp huszonegy-1.0/huszonegy.cpp --- huszonegy-1.0/huszonegy.cpp 2010-06-10 11:11:14.000000000 +0100 +++ huszonegy-1.0/huszonegy.cpp 2010-07-06 06:19:44.000000000 +0100 @@ -1,275 +1,276 @@ - /*Huszonegyes kártyajáték -Készítette: Ócsvári Áron -2010 05. 29. -e-mail: oaron1@gmail.com -web: http://oarononline.try.hu -A program nyílt forráskódú, ezért bármely része felhasználható, de arra kérlek, hogy ezt a részt hagyd benne! -*/ -#include -#include -#include -#include -#include -#include -#include -using namespace std; -int getch( ) { - struct termios oldt, - newt; - int ch; - tcgetattr( STDIN_FILENO, &oldt ); - newt = oldt; - newt.c_lflag &= ~( ICANON | ECHO ); - tcsetattr( STDIN_FILENO, TCSANOW, &newt ); - ch = getchar(); - tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); - cout << " "; - return ch; -} -struct kartyak -{ -//a kártyák nevei, értékei és a kihúzásuk tárolódik itt -string nev; -int ertek; -bool huzott; -}; -int main() -{ -//rand függvény inicializálása -srand(time(NULL)); -//A kártyák létrehozása, és belerakása a pakliba -kartyak *pakli =new kartyak [32]; -int i, j, kszam, jszam, jnyert, gnyert, dontetlen, vesztett;//segédváltozók -bool jatek, huzva, kilep, jo_billentyu;//ezek is -int jatekos, gep;//saját és a gép kártyáinak összege -string dont; -//a változók alapértékének beállítása -kszam =0; -string szinek [4] ={"piros ", "zöld ", "makk ", "tök "}; -string babuk[8] ={"alsó", "felső", "király", "ász", "hét", "nyolc", "kilenc", "tíz"}; -int ertekek[8] ={2, 3, 4, 11, 7, 8, 9, 10}; -jatek =0; -jszam =0; -gnyert =0; -jnyert =0; -dontetlen =0; -vesztett =0; -jo_billentyu =0; -while(jatek <1) -{ -kszam =0; -for (i=0; i<4; i++) -{ - for (j=0; j<8; j++) - { - pakli[kszam].nev =szinek[i]+babuk[j]; - pakli[kszam].ertek =ertekek[j]; - pakli[kszam].huzott =0; - kszam++; - } -} -if (dont =="") -{ -cout<<"Üdvözlöm a huszonegyes játékban!\n"; -while (jo_billentyu <1) -{ -cout<<"Kérem válasszon:\nk: játék kezdése\ns: A játék szabályainak elolvasása\n"; -dont =getch(); -if (dont =="s" or dont =="S") -{ -//A játék szabályainak kiíratása -jo_billentyu =1; -cout<<"A bankár mindenkinek egy lapot ad, utoljára magának is. Ezután minden\njátékos tesz. Legalább két lapot kérni kell, és 15 pont alatt megállni nem\n szabad.\nHa a pontszám nagyobb 21-nél, a játékos befuccsol, vagyis veszít. Egyébként az\nnyer, akinek több pontja van.\nA lapok értékei: \nAlsó: 2\nFelső: 3\nKirály: 4\nÁsz: 11\nA hetes, nyolcas, kilences és tizes kártyák értékei egyértelmüek.:)\nKellemes szórakozást!\nKészítette: Ócsvári Áron -oaron1@gmail.com"; -cout<<"\nKedvet kapott a játékra? Ha igen, nyomja meg a k betüt! Ha meg megíjedt... Akkor ne kerüljön a szemem elé, és nyomja meg az n betüt!\n"; -dont =getch(); -} -if (dont =="n" or dont =="N") -{ -cout<<"Rendben, értettem... A kilépéshez nyomjon meg egy billentyűt!"; -dont=getch(); -exit(1); -} -if (dont =="k" or dont =="K") -{ -jo_billentyu =1; -} -} -} -if (dont =="k" or dont =="K" or jatek ==0) -{ -jszam++; -cout<<"Az első húzott kártyája a "; -//véletlen szerü választás -int valaszt =rand() %31 +0; - jatekos=pakli[valaszt].ertek; -pakli[valaszt].huzott =1; -cout<4 or jatekos >=21) -{ -if (jatekos==21) -{ -cout <<"Az nevet a legjobban, aki utoljára nevet!\n"; -cout << "Most én következem!\n"; -} -else -{ -cout<<"Sajnálom, ennél többet nem húzhat! Épp ezért én jövök!\n"; -} -} -if (dont =="n" or dont =="N" or kszam>4 or jatekos >=21) -{ -if (kszam <2 or jatekos <15) -{ -cout<<"Szabálytalan művelet, ezért ön kiesett! Máskor figyelmesebben olvassa el a játék leírását!\nÉn nem szomorkodok, mivel ilyenkor mindent visz a bank!\nBüntetésül nyomjon le egy billentyűt!\n"; -dont =getch(); -exit(1); -} -//gép húz -gep =0; -while (gep <19) -{ -huzva =0; -while (huzva <1) -{ -valaszt =rand() %31 +0; -if (pakli[valaszt].huzott ==0) -{ -gep=gep+pakli[valaszt].ertek; -pakli[valaszt].huzott =1; -huzva =1; -} -} -cout<<"A kapott kártya a "<gep) -{ -cout<<"Gratulálok, ön nyert!\n"; -jnyert ++; -} -if (jatekos ==gep) -{ -cout<<"Hopsz, döntetlen! Önnek kivételesen nagy szerencséje van...\n"; -dontetlen++; -} -if (jatekos 21 &gep >21) -{ -cout<<"Hát így jártunk, egyikünk se nyert.\n"; -vesztett++; -} -if (jatekos <=21) -{ -cout<<"Gratulálok, ön nyert!\n"; -jnyert ++; -} -if (gep <=21) -{ -if (jszam ==1) -{ -cout << "Sajnálom, ön sajnos nem nyert. Talán legközelebb több szerencséje lesz.\n"; -} -else -{ -cout<<"Sajnálom, ön ismét nem nyert...\n"; -} -gnyert++; -} -} -} -jo_billentyu =0; -while (jo_billentyu<1) -{ -cout<<"Szeretne még egyet játszani? (i/n)\n"; -dont =getch(); -if (dont =="i" or dont =="I") -{ -cout<<"Akkor hajrá! Úgyis én fogok nyerni!\n"; -jo_billentyu =1; -} -if (dont =="n" or dont =="N") -{ -cout<<"Nos akkor az eredmények...\nA lejátszott "<0) -{ -cout<0) -{ -cout<<"\nén "<0) -{ -cout<<"és "<0) -{ -cout<<"Szégyen, de "< +#include +#include +#include +#include +#include +#include +using namespace std; +//Linuxos getch függvény +int getch( ) { + struct termios oldt, + newt; + int ch; + tcgetattr( STDIN_FILENO, &oldt ); + newt = oldt; + newt.c_lflag &= ~( ICANON | ECHO ); + tcsetattr( STDIN_FILENO, TCSANOW, &newt ); + ch = getchar(); + tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); + cout << " "; +//ha ez nincs, a képernyőolvasó elharapja az első betüt/szót + return ch; +} +struct kartyak +{ +//a kártyák nevei, értékei és a kihúzásuk tárolódik itt +string nev; +int ertek; +bool huzott; +}; +void feltolt(kartyak *p) +{ +string szinek [4] ={"piros ", "zöld ", "makk ", "tök "}; +string babuk[8] ={"alsó", "felső", "király", "ász", "hét", "nyolc", "kilenc", "tíz"}; +int ertekek[8] ={2, 3, 4, 11, 7, 8, 9, 10}; + +int kszam, i, j; +kszam =0; +for (i=0; i<4; i++) +{ + for (j=0; j<8; j++) + { + p[kszam].nev =szinek[i]+babuk[j]; + p[kszam].ertek =ertekek[j]; + p[kszam].huzott =false; + kszam++; + } +} +} + +int main() +{ +//rand függvény inicializálása +srand(time(NULL)); +//A kártyák létrehozása, és belerakása a pakliba +kartyak *pakli =new kartyak [32]; +//feltöltő függvény deklarálása +int i, j, kszam, jszam, jnyert, gnyert, dontetlen, vesztett;//segédváltozók +bool jatek, huzva, kilep, jo_billentyu;//ezek is +int jatekos, gep;//saját és a gép kártyáinak összege +string dont; +//a változók alapértékének beállítása +kszam =0; +jszam =0; +gnyert =0; +jnyert =0; +dontetlen =0; +vesztett =0; +jo_billentyu =false; +cout<<"Üdvözlöm a huszonegyes játékban!\n"; +while (!jo_billentyu) +{ +cout<<"Kérem válasszon:\nk: játék kezdése\ns: A játék szabályainak elolvasása\nn: kilépés\n"; +dont =getch(); +if (dont =="s" or dont =="S") +{ +//A játék szabályainak kiíratása +jo_billentyu =true; +cout<<"A bankár mindenkinek egy lapot ad, utoljára magának is. Ezután minden\njátékos tesz. Legalább két lapot kérni kell, és 15 pont alatt megállni nem\n szabad.\nHa a pontszám nagyobb 21-nél, a játékos befuccsol, vagyis veszít. Egyébként az\nnyer, akinek több pontja van.\nA lapok értékei: \nAlsó: 2\nFelső: 3\nKirály: 4\nÁsz: 11\nA hetes, nyolcas, kilences és tizes kártyák értékei egyértelmüek.:)\nKellemes szórakozást!\nKészítette: Ócsvári Áron -oaron1@gmail.com"; +cout<<"\nKedvet kapott a játékra? Ha igen, nyomja meg a k betüt! Ha meg megíjedt... Akkor ne kerüljön a szemem elé, és nyomja meg az n betüt!\n"; +} +if (dont =="n" or dont =="N") +{ +cout<<"Rendben, értettem... Viszlát! Az ablak bezárásához nyomjon meg egy billentyűt!"; +dont=getch(); +exit(1); +} +if (dont =="k" or dont =="K") +{ +jo_billentyu =true; +} +else { +jo_billentyu=false; +} +} +while (!jatek) +{ +if (dont =="k" or dont =="K" or !jatek) +{ +feltolt(pakli); +jszam++; +cout<<"Az első húzott kártyája a "; +//véletlen szerü választás +int valaszt =rand() %31 +0; + jatekos=pakli[valaszt].ertek; +pakli[valaszt].huzott =true; +cout<4 or jatekos >=21) +{ +if (jatekos ==21) +{ +cout <<"Az nevet a legjobban, aki utoljára nevet!\n"; +cout << "Most én következem!\n"; +} +else +{ +cout<<"Sajnálom, ennél többet nem húzhat! Épp ezért én jövök!\n"; +} +} +if (dont =="n" or dont =="N" or kszam>4 or jatekos >=21) +{ +if (kszam <2 or jatekos <15) +{ +cout<<"Szabálytalan művelet, ezért ön kiesett! Máskor figyelmesebben olvassa el a játék leírását!\nÉn nem szomorkodok, mivel ilyenkor mindent visz a bank!\nBüntetésül nyomjon le egy billentyűt!\n"; +dont =getch(); +exit(1); +} +//gép húz +gep =0; +while (gep <19) +{ +huzva =0; +while (huzva <1) +{ +valaszt =rand() %31 +0; +if (!pakli[valaszt].huzott) +{ +gep=gep+pakli[valaszt].ertek; +pakli[valaszt].huzott =true; +huzva =true; +} +} +cout<<"A kapott kártya a "<gep) +{ +cout<<"Gratulálok, ön nyert!\n"; +jnyert ++; +} +if (jatekos ==gep) +{ +cout<<"Hopsz, döntetlen! Önnek kivételesen nagy szerencséje van...\n"; +dontetlen++; +} +if (jatekos 21 &gep >21) +{ +cout<<"Hát így jártunk, egyikünk se nyert.\n"; +vesztett++; +} +if (jatekos <=21) +{ +cout<<"Gratulálok, ön nyert!\n"; +jnyert ++; +} +if (gep <=21) +{ +cout<<"Sajnálom, ön sajnos most nem nyert... De ne adja fel, próbálkozzon tovább!\n"; +gnyert++; +} +} +} +jo_billentyu =false; +while (!jo_billentyu) +{ +cout<<"Szeretne még egyet játszani? (i/n)\n"; +dont =getch(); +if (dont =="i" or dont =="I") +{ +cout<<"Akkor hajrá! Úgyis én fogok nyerni!\n"; +jo_billentyu =true; +} +if (dont =="n" or dont =="N") +{ +cout<<"Nos akkor az eredmények...\nA lejátszott "<0) +{ +cout<0) +{ +cout<<"\nén "<0) +{ +cout<<"és "<0) +{ +cout<<"Szégyen, de "<