٩٧ رﺎﻬﺑ ‐ ﻪﺘﻓﺮﺸﯿﭘ ﺴﯾﻮﻧ ﻪﻣﺎﻧﺮﺑ یﺮﻫﻮﺟ ﻦﯿﺴﺣ :ﻂﺳﻮﺗ ﺲﯾرﺪﺗ ﺳﻮﻃ ﻦﯾﺪﻟاﺮﯿﺼﻧ ﻪﺟاﻮﺧ هﺎ ﺸﻧاد ‐ ﺿﺎﯾر هﺪ ﺸﻧاد
ﻢﻬﻧ سرد ﻪﺻﻼﺧ
:سرد ﻦﯾا ﻢﯿﻫﺎﻔﻣ constructor هﺪﻧزﺎﺳ (ﻞﺒﻗ سرد ﻪﻣادا) اﺮﮔ ﺷ ﺣاﺮﻃ و سﻼﮐ ﺎﺑ ﻦﯾﺮﻤﺗ
ﻪﻈﻓﺎﺣ یزﺎﺑ ١
،ﻢﯾراﺬﮔ ﻣ ﻪﻈﻓﺎﺣ یزﺎﺑ ار نآ ﻢﺳا ﻪﮐ یزﺎﺑ ﻦﯾا رد .ﻢﯾزادﺮﭘ ﻣ هدﺎﺳ هﺮﻔﻧ ﯾ یزﺎﺑ ﯾ ﺣاﺮﻃ ﻪﺑ ﺖﻤﺴﻗ ﻦﯾا رد ﺖﺸﭘ و ﺖﺳا هﺪﺷ هﺪﯿﺸﮐ ﻞ ﺷ ﯾ یزﺎﺑ ترﺎﮐ ﺮﻫ یور .ﻢﯾراد رﺎﯿﺘﺧا رد یزﺎﺑ ترﺎﮐ یﺮﺳ ﯾ ﻢﯿﻨﮐ ﻣ ضﺮﻓ 2nعﻮﻤﺠﻣ رد ﺲﭘ .دراد دﻮﺟو ترﺎﮐ ود ﻞ ﺷ ﺮﻫ زا و ﻢﯾراد ﻒﻠﺘﺨﻣ ﻞ ﺷnﻪﮐ ﺪﯿﻨﮐ ضﺮﻓ .ﺖﺳا ﻟﺎﺧ نآ ﺮﺑ ار ﺎﻬﺗرﺎﮐ .ﺖﺳا ﺖﯾور ﺖﻠﺑﺎﻗ ﺎﻬﻧآ ﺖﺸﭘ ﺎﻬﻨﺗ ﻪﮐ ﺪﯾﺮﯿﮔ ﻣ یرﻮﻃ ار ﺎﻬﺗرﺎﮐ ﺪﻨﮐ ﻣ یزﺎﺑ ﻪﮐ یدﺮﻓ .ﻢﯾراد ترﺎﮐ
،ﺪﻨﺷﺎﺑ نﺎﺴ ﯾ هﺪﺷ ور یﺎﻬﺗرﺎﮐ ﺮﮔا .ﺪﻨﮐ ﻣ ور ار ﺎﻬﺗرﺎﮐ زا ﺎﺗ ود رﺎﺑ ﺮﻫ لﺎﺣ .ﺪﻨﯿﭼ ﻣ ﻦﯿﻣز یور ار ﺎﻬﻧآ ﺪﻧز ﻣ .ﺪﺷﺎﺑ ﻻﺎﺑ ﻪﺑ ور نﺎﺸﺘﺸﭘ ﺎﺗ ﺪﻧادﺮﮔﺮﺑ هرﺎﺑود ار ﺎﻬﺗرﺎﮐ ﺪﯾﺎﺑ ترﻮﺻ ﻦﯾا ﺮﯿﻏ رد دراﺬﮔ ﻣ دﻮﺧ لﺎﺣ ﻪﺑ ار ﺎﻬﺗرﺎﮐ ﻌﺳ داﺪﻌﺗ ﻪﺑ ﮕﺘﺴﺑ هﺪﺷ ﺐﺴﮐ زﺎﯿﺘﻣا ﺖﺳا ﻦﺷور .ﺪﻧﻮﺷ ور ﺎﻬﺗرﺎﮐ ﻪﻤﻫ ﻪﮑﻨﯾا ﺎﺗ ﺪﻨﮐ ﻣ اﺪﯿﭘ ﻪﻣادا رﺪﻘﻨﯾا یزﺎﺑ .ﺮﺘﺸﯿﺑ زﺎﯿﺘﻣا ،ﺮﺘﻤﮐ یﺎﻄﺧ و ﻌﺳ ﻪﭼ ﺮﻫ .دراد ﺎﻫﺎﻄﺧ و
.ﻢﯾﺮﯿﮔ ﻣ ار ﺮﯾز یﺎﻬﺿﺮﻓ ،یزﺎﺑ ﻦﯾا یزﺎﺳ هدﺎﯿﭘ ﻞﯿﻬﺴﺗ ﺖﻬﺟ .ﺖﺳا10ﺎﻬﺗرﺎﮐ داﺪﻌﺗ ﻨﻌﯾ .n = 5ﻢﯿﻨﮐ ﻣ ضﺮﻓ • ﺮﺼﻨﻋ10ﺎﺑ یﺮﺘﮐارﺎﮐ ﻪﯾارآ ﯾ زا رﻮﻈﻨﻣ ﻦﯾا یاﺮﺑ .ﻢﯿﻫد ﻣ ﺶﯾﺎﻤﻧ ﺎﺒﻔﻟا زا فﺮﺣ ﯾ ﺎﺑ ار ﻞ ﺷ ﺮﻫ •
.ﺪﺷﺎﺑ ﻣ ﺎﻫﺮﺘﮐارﺎﮐ ﺳا ﺪﮐ یوﺎﺣ ﻊﻗاو رد ﻪﯾارآ .ﻢﯿﻨﮐ ﻣ هدﺎﻔﺘﺳا فوﺮﺣ هﺮﯿﺧذ یاﺮﺑ
int cards[10];
.ﻢﯿﻨﮐ ﻣ هدﺎﻔﺘﺳا ؟ لاﻮﺳ ﺖﻣﻼﻋ ﺮﺘﮐارﺎﮐ زا ترﺎﮐ ﺖﺸﭘ ﺶﯾﺎﻤﻧ یاﺮﺑ • (هﺪﺷ ور ﻼﺒﻗ فوﺮﺣ یوﺎﺣ) فوﺮﺣ ﺖﺴﯿﻟ ﻪﻣﺎﻧﺮﺑ .ﺪﻨﮐ ﻣ بﺎﺨﺘﻧا ار9ﺎﺗ0ﻦﯿﺑ دﺪﻋ ود رﺎﺑ ﺮﻫ ﺮﺑرﺎﻛ • هداد نﺎﺸﻧ لاﻮﺳ ﺖﻣﻼﻋ ترﻮﺼﺑ ﺪﻧا هﺪﺸﻧ ور ﻪﮐ ﻓوﺮﺣ) ﺪﻫد ﻣ نﺎﺸﻧ ار ﺪﯾﺪﺟ فﺮﺣ ود ﺎﺑ هاﺮﻤﻫ
(.ﺪﻧﻮﺷ ﻣ هدﺎﻔﺘﺳا temp_cards مﺎﻧ ﻪﺑ ﻤﮐ یﺮﺘﮐارﺎﮐ ﻪﯾارآ ﯾ زا هﺪﺸﻧ ور و هﺪﺷ ور فوﺮﺣ هﺮﯿﺧذ یاﺮﺑ •
.ﻢﯿﻨﮐ ﻣ
int temp_cards[10];
نﺎﺴ ﯾcards[i]وtemp_cards[i]ﺮﯾدﺎﻘﻣ ،ﺪﺷﺎﺑ هﺪﺷ ور ماiترﺎﮐ ﻪﮐ ﺘﻗو ﻪﮐ ﺖﺳا یرﻮﻃ ﻪﻣﺎﻧﺮﺑ ﺖﻣﻼﻋ ﺮﺘﮐارﺎﮐ ﺳا ﺪﮐ ﺎﺑ ﺮﺑاﺮﺑtemp_cards[i]،ﺪﺷﺎﺑ هﺪﺸﻧ ور ماiترﺎﮐ ﻪﮐ ﺗرﻮﺻ رد .دﻮﺑ ﺪﻫاﻮﺧ .دﻮﺑ ﺪﻫاﻮﺧ لاﻮﺳ .ﻢﯾا هداد راﺮﻗ MemoryGame سﻼﮐ رد ار ﻪﻈﻓﺎﺣ یزﺎﺑ یزﺎﺳ هدﺎﯿﭘ ﻪﺑ طﻮﺑﺮﻣ تﺎﯿﺋﺰﺟ مﺎﻤﺗ // memorygame.h
#include<iostream>
#include<string>
#include<cstdlib>
#include<ctime>
using namespace std;
class MemoryGame{
private:
int cards[10];
int temp_cards[10];
int score;
void shuffle_cards();
void print_cards();
void print_temp_cards();
public:
MemoryGame();
int play();
};
MemoryGame عﻮﻧ زا ﺷ ﯾ .ﺪﻫد ﻣ نﺎﺸﻧ ار MemoryGame سﻼﮐ زا هدﺎﻔﺘﺳا هﻮﯿﺷ ﺮﯾز ﺪﮐ ﻪﻌﻄﻗ .ﺖﺳا هﺪﺷ ﺐﺴﮐ زﺎﯿﺘﻣا نﺎﻤﻫ ﻊﺑﺎﺗ ﺘﺸﮔﺮﺑ راﺪﻘﻣ .دﻮﺷ ﻣ ﻧاﻮﺧاﺮﻓ نآ یاﺮﺑ play ﻊﺑﺎﺗ ﺲﭙﺳ و هﺪﺷ دﺎﺠﯾا // game.cpp
#include<iostream>
#include "memorygame.h"
using namespace std;
int main(){
MemoryGame g;
int s = g.play();
cout<<"score="<<s;
return 0;
}
یاﺮﺑ % و ، & ،# ،$ فوﺮﺣ زا یزﺎﺳ هدﺎﯿﭘ ﻦﯾا رد .ﺪﻫد ﻣ نﺎﺸﻧ ار یزﺎﺑ ﺟوﺮﺧ زا ﻪﻧﻮﻤﻧ ﯾ ﺮﯾز ﻞ ﺷ .ﻢﯾا هدﺮﻛ هدﺎﻔﺘﺳا ﺎﻬﻠ ﺷ
هﺪﻧزﺎﺳ ١ . ١
.دراد destructor بﺮﺨﻣ و constructor هﺪﻧزﺎﺳ یﺎﻬﻣﺎﻧ ﻪﺑ ﻊﺑﺎﺗ ود ضﺮﻓ ﺶﯿﭘ رﻮﻄﺑ C++ رد سﻼﮐ ﺮﻫ .دﻮﺷ ﻣ ﻧاﻮﺧاﺮﻓ رﺎﮐدﻮﺧ رﻮﻄﺑ ﺮﻠﯾﺎﭙﻣﺎﮐ ﻂﺳﻮﺗ ﺷ دﺎﺠﯾا مﺎﮕﻨﻫ ﺖﺳا سﻼﮐ ﻢﺳا ﻢﻫ ﻊﺑﺎﺗ ﯾ ﻪﮐ هﺪﻧزﺎﺳ ﻊﺑﺎﺗ ﺮﻠﯾﺎﭙﻣﺎﮐ ﺪﻨﮑﻧ ﻒﯾﺮﻌﺗ ار هﺪﻧزﺎﺳ ﻊﺑﺎﺗ ،سﻼﮐ هﺪﻨﺴﯾﻮﻧ ﻪﮐ ﺗرﻮﺻ رد .ﺖﺳا یرﺎﯿﺘﺧا ﺮﻣا ﯾ ﻊﺑﺎﺗ ﻦﯾا ﻒﯾﺮﻌﺗ .ﺖﺳا قدﺎﺻ ﻢﻫ بﺮﺨﻣ یاﺮﺑ ﻪﻠﺌﺴﻣ ﻦﯾا .ﺪﻨﮐ ﻣ دﺎﺠﯾا ﺮﻈﻧ درﻮﻣ سﻼﮐ یاﺮﺑ هﺪﻧزﺎﺳ ﻊﺑﺎﺗ ﯾ رﺎﮐدﻮﺧ رﻮﻄﺑ ﻊﺑﺎﺗ ﺮﻫ ﻞﺜﻣ هﺪﻧزﺎﺳ ﻊﺑﺎﺗ .دﻮﺷ ﻣ هدﺎﻔﺘﺳا ﻊﺑﺎﺗ نورد یﺎﻫ هداد ﻪﯿﻟوا ﻫدراﺪﻘﻣ یاﺮﺑ هﺪﻧزﺎﺳ ﻊﺑﺎﺗ زا ﻻﻮﻤﻌﻣ ﺪﻧاﻮﺗ ﻤﻧ ﻢﻫ void نآ ﺘﺸﮔﺮﺑ راﺪﻘﻣ عﻮﻧ ﺘﺣ) دراﺪﻧ ﺘﺸﮔﺮﺑ راﺪﻘﻣ ﺎﻣا ﺪﺷﺎﺑ ﻪﺘﺷاد ﻢﻫ ﺮﺘﻣارﺎﭘ ناﻮﺗ ﻣ ﺮ ﯾد هﺪﻧزﺎﺳ ﻊﺑاﻮﺗ زا ،ﻢﯾا هدﺮﮐ هدﺎﻔﺘﺳا ﺎﻬﻠﯾﺎﻓ ﺎﺑ رﺎﮐ ﻪﺑ طﻮﺑﺮﻣ ﺎﯿﺷا ﺎﯾ و string سﻼﮐ زا ﻪﮐ ﻣﺎﮕﻨﻫ ﺎﻣ ﻼﺒﻗ (.ﺪﺷﺎﺑ لﺎﺜﻣ یاﺮﺑ .ﻢﯾا هدﺮﮐ هدﺎﻔﺘﺳا ﺎﻬﺳﻼﮐ ﻦﯾا ﻪﺑ طﻮﺑﺮﻣ string str("Hello"); //calls the instructor of string class
ifstream myfile("data.txt"); //calls the instructor of the fstream class .ﺪﻧﻮﺷ ﻣ هداد راﺮﻗ سﻼﮐ public ﺖﻤﺴﻗ رد هراﻮﻤﻫ ﺪﯾﺎﺑ بﺮﺨﻣ و هﺪﻧزﺎﺳ ﻊﺑاﻮﺗ
ﻪﯿﻟوا ﻫدراﺪﻘﻣ ﻪﻔﯿﻇو ﻊﺑﺎﺗ ﻦﯾا ﻪﺑ .ﻢﯾا هدﺮﮐ هدﺎﻔﺘﺳا هﺪﻧزﺎﺳ ﻊﺑﺎﺗ ﯾ زا ﺎﻣ MemoryGame سﻼﮐ رد ﺎﻫرﺎﮑﻨﯾا ﻪﻤﻫ .ﺪﻧز ﻣ ﺮﺑ ار ﺎﻬﺗرﺎﮐshuffle_cards ﻤﮐ ﻊﺑﺎﺗ .ﻢﯾا هدﺮﭙﺳ ارtemp_cardsو cards یﺎﻫ ﻪﯾارآ
ﺖﻣﻼﻋ ﺮﺘﮐارﺎﮐ ﺳا ﺪﮐ لدﺎﻌﻣ63ﺎﺠﻨﯾا رد .دﻮﺷ ﻣ مﺎﺠﻧا ﺷ دﺎﺠﯾا مﺎﮕﻨﻫ (ﺎﻬﺗرﺎﮐ ندز ﺮﺑ و ﻪﯿﻟوا ﻫدراﺪﻘﻣ) .ﺖﺳا ؟ لاﻮﺳ MemoryGame::MemoryGame(){
cards[0]=33; cards[1]=33; cards[2]=35;
cards[3]=35; cards[4]=36; cards[5]=36;
cards[6]=37; cards[7]=37; cards[8]= 38;
cards[9]=38;
temp_cards[0]=63; temp_cards[1]=63; temp_cards[2]=63;
temp_cards[3]=63; temp_cards[4]=63; temp_cards[5]=63;
temp_cards[6]=63; temp_cards[7]=63; temp_cards[8]=63;
temp_cards[9]=63;
score=0;
shuffle_cards();
}
.ﺖﺳا هﺪﺷ هدروآ ﺮﯾز رد ﻤﮐ ﻊﺑاﻮﺗ ﻒﯾﺮﻌﺗ void MemoryGame::shuffle_cards(){
srand(time(0));
for (int i=0; i<10; i++) {
int r = rand() % 10; // generate a random position int temp = cards[i];
cards[i] = cards[r];
cards[r] = temp;
} }
void MemoryGame::print_cards(){
for (int i=0; i<10; i++)
cout << (char)cards[i]<<" ";
cout<<endl;
}
void MemoryGame:: print_temp_cards(){
for (int i=0; i<10; i++)
cout << (char)temp_cards[i]<<" ";
cout<<endl;
}
.ﺖﺳا هﺪﺷ هدروآ play ﻊﺑﺎﺗ رد یزﺎﺑ مﺎﺠﻧا هﻮﯿﺷ ﻪﺑ طﻮﺑﺮﻣ ﻠﺻا تﺎﯿﻠﻤﻋ int MemoryGame::play(){
int x1=0, x2=0;
bool done; score = 30;
while(1){
done = true;
score--;
print_temp_cards();
cout<<"Enter 2 numbers between 0 and 9
seperated by a space (0 0 for exit):";
cin >> x1 >> x2;
if(x1==0 && x2==0) return 0;
for (int i=0; i<10; i++)
cout <<((x1 ==i || x2==i)?(char)cards[i]:(char)temp_cards[i])<<" ";
cout<<endl;
system("pause");
system("cls");
if(cards[x1] == cards[x2]){
temp_cards[x1]= cards[x1];
temp_cards[x2] = cards[x2];
}
for(int i=0;i<10;i++)
if(temp_cards[i]!=cards[i]) done=false;
if(done)
return score;
} }
ﺎﻬﯾزﺎﺑ ﺖﯾﺮﯾﺪﻣ ٢
ار GameInfo سﻼﮐ ،ﺪﻨﻨﮐ ﻣ ﺖﺒﺛ یزﺎﺑ ﻦﯿﺣ رد ناﺮﺑرﺎﮐ ﻪﮐ ﯽﯾﺎﻫدرﻮﮐر ﺺﺧﻻﺎﺑ و تازﺎﯿﺘﻣا ﺖﺒﺛ یاﺮﺑ یﺮﺑرﺎﮐ مﺎﻧ و هﺪﺷ ﺐﺴﮐ زﺎﯿﺘﻣا ﻦﯾﺮﺘﺸﯿﺑ ،زﺎﯿﺘﻣا ﻦﯾﺮﺘﺸﯿﺑ ،یزﺎﺑ مﺎﻧ ﺪﻨﻧﺎﻣ ﺗﺎﻋﻼﻃا یوﺎﺣ سﻼﮐ ﻦﯾا .ﻢﯾا ﻪﺘﺷﻮﻧ
.ﺪﺷﺎﺑ ﻣ ﺖﺳا هدﺮﮐ ﺐﺴﮐ ار زﺎﯿﺘﻣا ﻦﯾﺮﺘﺸﯿﺑ ﻪﮐ ﻨ ﯾزﺎﺑ //gameinfo.h
#include<iostream>
#include<string>
using namespace std;
class GameInfo{
private:
string name;
int id;
int max_score;
int best_score;
string top_user_id;
public:
string getName(){return name;}
int getId(){return id;}
int getMax_score(){return max_score;}
int getBest_score(){return best_score;}
string getTop_user_id(){return top_user_id;}
void setId(int i){id=i; }
void setName(string str){name = str;}
void setMax_score(int s){max_score=s;}
void setBest_score(int s){
if(best_score <= max_score) best_score = s;
else
cout<<"Error: Best score connat be bigger than Max score:"<<endl;
}
void setUser_id(string str){top_user_id = str;}
};
هﺪﺷ هدوﺰﻓا نآ ﻪﺑupdate_gaming_data()ﻊﺑﺎﺗ ﺎﺠﻨﯾا رد .ﻢﯾا هدﺮﮐ ﺮﺘﻠﻣﺎﮐ ار Application سﻼﮐ .ﺪﻨﮐ ﻣ یراد ﻪﮕﻧ ار هﺪﺷ ﺖﺒﺛ یﺎﻫدرﻮﮐرgame_dataرﻮﺘﮐو .ﺖﺳا هﺪﻣآ ﺖﺳﺪﺑ زﺎﯿﺘﻣا ﺖﺒﺛ یاﺮﺑ ﻪﮐ ﺖﺳا //application.h
#include<string>
#include<vector>
#include "user.h"
#include "gameinfo.h"
#include "gamememory.h"
class Application{
private:
vector <User> user_data;
string active_user_id;
vector <GameInfo> game_data;
int get_user_index(string str);
public:
Application();
void addUser();
void login();
void update_gaming_data(int game_id, int score, string user_id);
string getActiveUserID();
void setActiveUserID(string str);
void print_gaming_data();
};
Application سﻼﮐ ﻪﺑ هﺪﺷ ﻪﻓﺎﺿا ﻊﺑاﻮﺗ یزﺎﺳ هدﺎﯿﭘ void Application:: print_gaming_data(){
GameInfo g;
for(int i=0;i<game_data.size();i++){
g=game_data[i];
cout<<"\n GameName="<<g.getName()<<"
BestScore="<<g.getBest_score()<<"
TopUser="<<g.getTop_user_id()<<endl;
} }
string Application::getActiveUserID(){
return active_user_id;
}
void Application::setActiveUserID(string str){
active_user_id=str;
}
Application::Application(){
GameInfo g;
g.setId(1);
g.setName("MemoryGame");
g.setMax_score(30);
g.setBest_score(0);
g.setUser_id(" ");
game_data.push_back(g);
}
void Application::update_gaming_data(int game_id, int score, string user_id){
GameInfo g;
for(int i=0;i<game_data.size();i++){
g=game_data[i];
if(game_id==g.getId() && score > g.getBest_score()){
g.setBest_score(score);
g.setUser_id(user_id);
game_data[i] = g;
} } }
.ﺪﻫد ﻣ نﺎﺸﻧ ار ﺎﻬﺳﻼﮐ زا هدﺎﻔﺘﺳا ﻪﻧﻮﻤﻧ ﯾ ﺮﯾز زاﺪﻧا هار ﻪﻣﺎﻧﺮﺑ //game.cpp
#include<iostream>
#include "application.h"
using namespace std;
int main(){
Application app;
app.addUser();
app.login();
MemoryGame g;
int s=g.play();
cout<<"\n score="<<s;
app.update_gaming_data(1,s,app.getActiveUserID());
app.print_gaming_data();
return 0;
}