macao game
Last Updated: Jun 02 2017 09:12, Started by
jdavyd
, May 28 2017 22:19
·
0
#1
Posted 28 May 2017 - 22:19
Salut, am nevoie de niste idei de implementare a jocului macao in c++ oop. Am inceput dar m am blocat, nu stiu cum sa fac.
As avea clasele card, card_special(as,umflaturi) derivata din card ,deck si joc . Mai jos e ce am apucat sa scriu, nu vrea cod ci doar o idee ce ar trebui sa fac, ca nu mi dau seama...parca e imposibil. #include <iostream> #include <time.h> #include <stdlib.h> #include <algorithm> #include <vector> using namespace std; class card { protected: int suit; ///0-clubs, 1-diamonds, 2-hearts, 3-spades int number;/// 1-Ace, 2, ..., 10,11- Jack, 12-Queen, 13-King,14-Joker N,15-Joker R public: card() {} card(int r,int n) { suit=r,number=n; } void set_value(int n,int r) { suit=r; number=n; } int get_number() { return number; } int get_suit() { return suit; } friend ostream & operator <<(ostream &o,card &c); }; class card_spec:public card ///cartile speciale AS,umflaturi { public: }; ostream& operator<< (ostream &o,card &c) { if( c.number >= 2 && c.number <= 10 ) cout << c.number; else switch(c.number) { case 11: cout << "J"; break; case 12: cout << "Q"; break; case 13: cout << "K"; break; case 1: cout << "A"; break; } switch(c.suit) { case 0: cout <<"-clubs"; break; case 1: cout <<"-diamonds"; break; case 2: cout <<"-hearts"; break; case 3: cout <<"-spades"; break; } return o; } class deck { card cards[52]; vector<card> cardss; public: deck(); void print_card(int ); void print_deck(); void shufle(); card get_card(int ); }; deck::deck() { for(int i=1; i<=13; i++) for(int j=0; j<=3; j++) { //cards[(i-1)*4+j].set_value(i,j); card c; c.set_value(i,j); cardss.push_back(c); } } void deck::print_card(int i) { cout<<cardss[i]; } void deck::print_deck() { for(int i=0; i<52; i++) { print_card(i); cout<<endl; } } void deck::shufle() { random_shuffle(cardss.begin(),cardss.end()); } card deck::get_card(int i) { return cards[i]; } int main() { deck deck1; deck1.shufle(); deck1.print_deck(); return 0; } |
#2
Posted 28 May 2017 - 22:28
https://github.com/C...Devel/CruceGame inspiratie (e alt joc, dar tot de carti)
|
#3
Posted 28 May 2017 - 22:32
dani.user, on 28 mai 2017 - 22:28, said:
https://github.com/C...Devel/CruceGame inspiratie (e alt joc, dar tot de carti) Nu prea cred ca ma descurc cu ce ai postat, am cunostinte basic de poo dupa un semestru Edited by jdavyd, 28 May 2017 - 22:51. |
#4
Posted 29 May 2017 - 06:38
void set_value(int n,int r)
De când o carte își schimbă numărul și culoarea după ce a fost construită? Pentru n și r aș face enums. De ce în deck salvezi de două ori cărțile, îți e frică să nu uiți ce cărți ai? Mai ai nevoie de o clasă, Player. |
#5
Posted 29 May 2017 - 13:15
Proful vrea neapãrat moștenire carte speciala(umflaturi...) și nu am ideea cum sa o fac.
Card cards[52] o șterg ca am sa fac cu stl Și clasa jucãtor nu cred ca fac, fac direct clasa joc |
#7
Posted 29 May 2017 - 16:43
#8
Posted 29 May 2017 - 17:03
Caracterele individuale le-aș citi în value objects, și Card ar accepta în constructor acele două value objects.
Setterii sunt Root of many evils. Evită-i la maxim. Într-un cod curat, mă aștept să văd un setter la 5000-10000 linii de cod. Un cod curat înseamnă că folosești toate facilitățile oferite de OOP și că respecți principii precum SOLID. |
#9
Posted 29 May 2017 - 18:04
OriginalCopy, on 29 mai 2017 - 17:03, said:
Caracterele individuale le-aș citi în value objects, și Card ar accepta în constructor acele două value objects. Setterii sunt Root of many evils. Evită-i la maxim. Într-un cod curat, mă aștept să văd un setter la 5000-10000 linii de cod. Un cod curat înseamnă că folosești toate facilitățile oferite de OOP și că respecți principii precum SOLID. |
#10
Posted 29 May 2017 - 19:33
Totusi eu nu vad rostul unei mosteniri , nu stiu ce sa fac in mostenire? any help?
Edited by jdavyd, 29 May 2017 - 19:33. |
|
#11
Posted 29 May 2017 - 19:39
jdavyd, on 29 mai 2017 - 19:33, said:
Totusi eu nu vad rostul unei mosteniri , nu stiu ce sa fac in mostenire? any help? Orice proiect se incepe cu definitia regulilor, si apoi se decide limbajul de programare, paradigma de programare, etc. Apoi se face ceva design, apoi ceva implementare. Codul e pe la coada. In functie de reguli ne dam seama daca si unde e nevoie de mostenire. Programarea nu e ca pictura "hai sa mai tragem o linie aici, sa mai dam cu putin de rosu pe dincolo". |
#12
Posted 29 May 2017 - 19:44
@OriginalCopy, e macao, stii, dai cate o carte jos din mana cu acelasi numari/simbol pana ramai fara carti. Si ai carti speciale, de exemplu As - sta adversarul o tura, 2, 3 - adversarul primeste 2, 3 carti, 7 - schimbi simbolul.
Nici eu nu vad de ce ar trebui o mostenire. Sunt curios cum vrea proful sa fie. Edited by LittleWho, 29 May 2017 - 19:44. |
#13
Posted 29 May 2017 - 19:46
OriginalCopy, on 29 mai 2017 - 19:39, said:
Scrie aici regulile complete de joc pe care vrei sa le implementezi. Orice proiect se incepe cu definitia regulilor, si apoi se decide limbajul de programare, paradigma de programare, etc. Apoi se face ceva design, apoi ceva implementare. Codul e pe la coada. In functie de reguli ne dam seama daca si unde e nevoie de mostenire. Programarea nu e ca pictura "hai sa mai tragem o linie aici, sa mai dam cu putin de rosu pe dincolo". Ma intereseaza: -sa vad ce carte este jos -sa vad ce carti are un jucator in mana -sa pot vedea punctajul la finalul jocului Nice to have: -sa pot schimba regulile jocului (ce carte schimba, ce carte sta un tur etc.) Proiectul trebuie sa contina cel putin o mostenire, o functie virtuala (supraincarcata), o suprascriere de operator, un constructor de copiere. Proiectul este individual. Fiind doar 4 proiecte, mai multi studenti pot avea acelasi proiect, dar as dori ca distributia proiectelor sa fie cat mai echilibrata Aia cu schimbat regulilor, cred ca am sa-i dau skip si am sa o implementez dupa examene. Tema e pana miercuri, chiar daca am primit-o mai demult n-am putut sa ma apuc de ea deoarece trebuia sa invat si sa fac teste de laborator pt poo care sunt ... (sper sa-l trec); Nici functia virtuala nu mi prea dau seama, pt ca nu as lucra cu pointeri. LittleWho, on 29 mai 2017 - 19:44, said:
@OriginalCopy, e macao, stii, dai cate o carte jos din mana cu acelasi numari/simbol pana ramai fara carti. Si ai carti speciale, de exemplu As - sta adversarul o tura, 2, 3 - adversarul primeste 2, 3 carti, 7 - schimbi simbolul. Nici eu nu vad de ce ar trebui o mostenire. Sunt curios cum vrea proful sa fie. |
#14
Posted 29 May 2017 - 19:48
jdavyd, on 29 mai 2017 - 19:45, said:
4. Construiti un joc de macao LittleWho, on 29 mai 2017 - 19:44, said: Si ai carti speciale, de exemplu As - sta adversarul o tura, 2, 3 - adversarul primeste 2, 3 carti, 7 - schimbi simbolul. |
#15
Posted 29 May 2017 - 19:50
OriginalCopy, on 29 mai 2017 - 19:48, said:
Fiecare persoana cu care am jucat macao stia reguli diferite. Deci defineste regulile. Nu stiu macao, na. Exact la cartile alea nu exista o definitie concreta si exact acolo ar fi loc de inheritance. class card { protected: int suit; ///0-clubs, 1-diamonds, 2-hearts, 3-spades int number;/// 1-Ace, 2, ..., 10,11- Jack, 12-Queen, 13-King,14-Joker N,15-Joker R public: card() {} card(int n,int r) { suit=r,number=n; } void set_value(int n,int r) { suit=r; number=n; } int get_number() { return number; } int get_suit() { return suit; } friend ostream & operator <<(ostream &o,card &c); }; class card_spec:public card ///cartile speciale AS,umflaturi { int stay; ///carte care sta int change; ///carte care schimba int give1; ///carte care da int give2; public: void set_rule() { int x,y; cout<<"Stabiliti cartea pt a sta o tura: "; cin>>x; stay=x; cout<<"\nStabiliti cartea pt a schimba: "; cin>>x; change=x; cout<<"\nStabiliti cartile (2) pt umflaturi: "; cin>>x>>y; give1=x; give2=y; } }; |
|
#16
Posted 29 May 2017 - 19:52
Nu vrei nicicum sa cooperezi ca sa iti arat cum ajungi de la o descriere textuala la decizii de design.
Nu meriti timpul meu. Bafta. |
#17
Posted 29 May 2017 - 19:55
#18
Posted 29 May 2017 - 19:57
jdavyd, on 29 mai 2017 - 19:55, said:
Unde as putea face acele reguli, sau care ar fi mostenirea? OriginalCopy, on 29 mai 2017 - 19:39, said:
Scrie aici regulile complete de joc pe care vrei sa le implementezi. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users