• Tidak ada hasil yang ditemukan

ﺧﻼﺻﻪ درس ﻧﻬﻢ ١ ﺑﺎزی ﺣﺎﻓﻈﻪ

N/A
N/A
Protected

Academic year: 2024

Membagikan "ﺧﻼﺻﻪ درس ﻧﻬﻢ ١ ﺑﺎزی ﺣﺎﻓﻈﻪ"

Copied!
9
0
0

Teks penuh

(1)

٩٧ رﺎﻬﺑ ‐ ﻪﺘﻓﺮﺸﯿﭘ ﺴﯾﻮﻧ ﻪﻣﺎﻧﺮﺑ یﺮﻫﻮﺟ ﻦﯿﺴﺣ :ﻂﺳﻮﺗ ﺲﯾرﺪﺗ ﺳﻮﻃ ﻦﯾﺪﻟاﺮﯿﺼﻧ ﻪﺟاﻮﺧ هﺎ ﺸﻧاد ‐ ﺿﺎﯾر هﺪ ﺸﻧاد

ﻢﻬﻧ سرد ﻪﺻﻼﺧ

:سرد ﻦﯾا ﻢﯿﻫﺎﻔﻣ constructor هﺪﻧزﺎﺳ (ﻞﺒﻗ سرد ﻪﻣادا) اﺮﮔ ﺷ ﺣاﺮﻃ و سﻼﮐ ﺎﺑ ﻦﯾﺮﻤﺗ

ﻪﻈﻓﺎﺣ یزﺎﺑ ١

،ﻢﯾراﺬﮔ ﻣ ﻪﻈﻓﺎﺣ یزﺎﺑ ار نآ ﻢﺳا ﻪﮐ یزﺎﺑ ﻦﯾا رد .ﻢﯾزادﺮﭘ ﻣ هدﺎﺳ هﺮﻔﻧ ﯾ یزﺎﺑ ﯾ ﺣاﺮﻃ ﻪﺑ ﺖﻤﺴﻗ ﻦﯾا رد ﺖﺸﭘ و ﺖﺳا هﺪﺷ هﺪﯿﺸﮐ ﻞ ﺷ ﯾ یزﺎﺑ ترﺎﮐ ﺮﻫ یور .ﻢﯾراد رﺎﯿﺘﺧا رد یزﺎﺑ ترﺎﮐ یﺮﺳ ﯾ ﻢﯿﻨﮐ ﻣ ضﺮﻓ 2nعﻮﻤﺠﻣ رد ﺲﭘ .دراد دﻮﺟو ترﺎﮐ ود ﻞ ﺷ ﺮﻫ زا و ﻢﯾراد ﻒﻠﺘﺨﻣ ﻞ ﺷnﻪﮐ ﺪﯿﻨﮐ ضﺮﻓ .ﺖﺳا ﻟﺎﺧ نآ ﺮﺑ ار ﺎﻬﺗرﺎﮐ .ﺖﺳا ﺖﯾور ﺖﻠﺑﺎﻗ ﺎﻬﻧآ ﺖﺸﭘ ﺎﻬﻨﺗ ﻪﮐ ﺪﯾﺮﯿﮔ ﻣ یرﻮﻃ ار ﺎﻬﺗرﺎﮐ ﺪﻨﮐ ﻣ یزﺎﺑ ﻪﮐ یدﺮﻓ .ﻢﯾراد ترﺎﮐ

،ﺪﻨﺷﺎﺑ نﺎﺴ ﯾ هﺪﺷ ور یﺎﻬﺗرﺎﮐ ﺮﮔا .ﺪﻨﮐ ﻣ ور ار ﺎﻬﺗرﺎﮐ زا ﺎﺗ ود رﺎﺑ ﺮﻫ لﺎﺣ .ﺪﻨﯿﭼ ﻣ ﻦﯿﻣز یور ار ﺎﻬﻧآ ﺪﻧز ﻣ .ﺪﺷﺎﺑ ﻻﺎﺑ ﻪﺑ ور نﺎﺸﺘﺸﭘ ﺎﺗ ﺪﻧادﺮﮔﺮﺑ هرﺎﺑود ار ﺎﻬﺗرﺎﮐ ﺪﯾﺎﺑ ترﻮﺻ ﻦﯾا ﺮﯿﻏ رد دراﺬﮔ ﻣ دﻮﺧ لﺎﺣ ﻪﺑ ار ﺎﻬﺗرﺎﮐ ﻌﺳ داﺪﻌﺗ ﻪﺑ ﮕﺘﺴﺑ هﺪﺷ ﺐﺴﮐ زﺎﯿﺘﻣا ﺖﺳا ﻦﺷور .ﺪﻧﻮﺷ ور ﺎﻬﺗرﺎﮐ ﻪﻤﻫ ﻪﮑﻨﯾا ﺎﺗ ﺪﻨﮐ ﻣ اﺪﯿﭘ ﻪﻣادا رﺪﻘﻨﯾا یزﺎﺑ .ﺮﺘﺸﯿﺑ زﺎﯿﺘﻣا ،ﺮﺘﻤﮐ یﺎﻄﺧ و ﻌﺳ ﻪﭼ ﺮﻫ .دراد ﺎﻫﺎﻄﺧ و

.ﻢﯾﺮﯿﮔ ﻣ ار ﺮﯾز یﺎﻬﺿﺮﻓ ،یزﺎﺑ ﻦﯾا یزﺎﺳ هدﺎﯿﭘ ﻞﯿﻬﺴﺗ ﺖﻬﺟ .ﺖﺳا10ﺎﻬﺗرﺎﮐ داﺪﻌﺗ ﻨﻌﯾ .n = 5ﻢﯿﻨﮐ ﻣ ضﺮﻓ • ﺮﺼﻨﻋ10ﺎﺑ یﺮﺘﮐارﺎﮐ ﻪﯾارآ ﯾ زا رﻮﻈﻨﻣ ﻦﯾا یاﺮﺑ .ﻢﯿﻫد ﻣ ﺶﯾﺎﻤﻧ ﺎﺒﻔﻟا زا فﺮﺣ ﯾ ﺎﺑ ار ﻞ ﺷ ﺮﻫ •

.ﺪﺷﺎﺑ ﻣ ﺎﻫﺮﺘﮐارﺎﮐ ﺳا ﺪﮐ یوﺎﺣ ﻊﻗاو رد ﻪﯾارآ .ﻢﯿﻨﮐ ﻣ هدﺎﻔﺘﺳا فوﺮﺣ هﺮﯿﺧذ یاﺮﺑ

(2)

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();

};

(3)

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 یﺎﻫ ﻪﯾارآ

(4)

ﺖﻣﻼﻋ ﺮﺘﮐارﺎﮐ ﺳا ﺪﮐ لدﺎﻌﻣ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;

}

(5)

.ﺖﺳا هﺪﺷ هدروآ 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 سﻼﮐ ،ﺪﻨﻨﮐ ﻣ ﺖﺒﺛ یزﺎﺑ ﻦﯿﺣ رد ناﺮﺑرﺎﮐ ﻪﮐ ﯽﯾﺎﻫدرﻮﮐر ﺺﺧﻻﺎﺑ و تازﺎﯿﺘﻣا ﺖﺒﺛ یاﺮﺑ یﺮﺑرﺎﮐ مﺎﻧ و هﺪﺷ ﺐﺴﮐ زﺎﯿﺘﻣا ﻦﯾﺮﺘﺸﯿﺑ ،زﺎﯿﺘﻣا ﻦﯾﺮﺘﺸﯿﺑ ،یزﺎﺑ مﺎﻧ ﺪﻨﻧﺎﻣ ﺗﺎﻋﻼﻃا یوﺎﺣ سﻼﮐ ﻦﯾا .ﻢﯾا ﻪﺘﺷﻮﻧ

(6)

.ﺪﺷﺎﺑ ﻣ ﺖﺳا هدﺮﮐ ﺐﺴﮐ ار زﺎﯿﺘﻣا ﻦﯾﺮﺘﺸﯿﺑ ﻪﮐ ﻨ ﯾزﺎﺑ //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;}

};

(7)

هﺪﺷ هدوﺰﻓا نآ ﻪﺑ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();

};

(8)

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;

} } }

(9)

.ﺪﻫد ﻣ نﺎﺸﻧ ار ﺎﻬﺳﻼﮐ زا هدﺎﻔﺘﺳا ﻪﻧﻮﻤﻧ ﯾ ﺮﯾز زاﺪﻧا هار ﻪﻣﺎﻧﺮﺑ //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;

}

Referensi

Dokumen terkait