C++ میں بنیادی متن پر مبنی گیم کیسے بنائیں

C My Bnyady Mtn Pr Mbny Gym Kys Bnayy



متن پر مبنی گیمز کھلاڑی کے ساتھ تعامل کے لیے ٹیکسٹ کریکٹرز اور کمانڈ لائن انٹرفیس پر انحصار کرتے ہیں۔ ان کے پاس گرافیکل امیجز، آوازیں، یا متحرک تصاویر نہیں ہیں۔ صارف کنسول ونڈو کے ذریعے کمانڈ داخل کرتا ہے۔

C++ میں بنیادی متن پر مبنی گیم کیسے بنائیں

C++ میں ٹیکسٹ پر مبنی گیمز کھلاڑی کو کنسول ونڈو کے ذریعے کمانڈ داخل کرنے کی اجازت دیتے ہیں، اور پروگرام کھلاڑی کی چالوں پر کارروائی کرتا ہے۔ یہاں، میں نے ٹیکسٹ پر مبنی ایک ٹک ٹاک ٹو گیم بنایا ہے جو صارف کو کھیلنے کے لیے دو اختیارات دیتا ہے۔ صارف یا تو C++ کمپائلر کے ساتھ یا کسی ساتھی انسان کے ساتھ کھیل سکتا ہے۔ اس گیم میں ایک خصوصیت ہے جو جیتنے والے کھلاڑی کے سکور میں اضافہ کرتی رہتی ہے۔ پہلی گیم کے نتائج کے اعلان کے بعد، دوبارہ میچ کا آپشن دستیاب ہے۔

گیم جیتنے کے اصول

دو کھلاڑی ٹک ٹیک ٹو گیم کھیلتے ہیں، X اور 0 کو متبادل طور پر تین بائی تھری گرڈ پر نو دستیاب جگہوں میں سے ایک میں رکھ کر۔ یہ گیم پہلے کھلاڑی کے ذریعے جیتی جاتی ہے جس نے عمودی، افقی یا اخترن سمت میں اپنے لگاتار تین نمبر حاصل کیے ہیں۔ ہر کھلاڑی کو ہوشیاری سے سوچنا ہوگا اور دوسرے کھلاڑی کے اگلے اقدام کا انتظار کرنا ہوگا۔







ٹیکسٹ پر مبنی ٹک ٹاک ٹو گیم ڈیزائن کرنے کے کوڈ میں مختلف حصے ہوتے ہیں، جنہیں فعالیت کی بنیاد پر تقسیم کیا جاتا ہے۔ پہلے حصے میں، صارف فیصلہ کرتا ہے کہ آیا کمپیوٹر کے ساتھ کھیلنا ہے یا کسی ساتھی انسان کے ساتھ۔ نفع کے موڈ کا فیصلہ کرنے کے بعد، پروگرام صارف سے ان پٹ کے لیے پوچھتا ہے۔ دونوں کھلاڑی ایک کے بعد ایک ان پٹ داخل کرتے ہیں۔



// کھلاڑیوں سے ان پٹ لیں۔
باطل پلیئر ان پٹ ( کھلاڑی اور کھلاڑی ) {
int پوزیشن ;
cout << endl ;
cout << ' \t ' << کھلاڑی getName ( ) << 'موڑ:' ;
cout << ' \t پوزیشن درج کریں ' <> پوزیشن ;
پوزیشن - = 1 ;
اگر ( خالی انڈیکس [ پوزیشن ] == 1 ) {
cout << '------پوزیشن خالی نہیں------' << endl ;
پلیئر ان پٹ ( کھلاڑی ) ;
} اور {
خالی انڈیکس [ پوزیشن ] = 1 ;
خالی شمار - = 1 ;
کھلاڑی getName ( ) . موازنہ ( 'کھلاڑی I' ) == 0 ? بورڈ [ پوزیشن ] = 'ایکس' : بورڈ [ پوزیشن ] = 'او' ;
}

}

صارف سے ان پٹ لینے کے بعد، یہ جیت کے اصول کو چیک کرتا ہے۔ checkWin() فنکشن میں دو پیرامیٹرز p1 اور p2 ہیں یہ چیک کرنے کے لیے کہ آیا کھلاڑی جیت گیا ہے یا نہیں۔ فنکشن میں مختلف متغیرات کا اعلان i، j، اور k انٹیجر متغیرات ہیں جو لوپ کے لیے اعلان کیے گئے ہیں اور فلیگ جیت کی حالت کو چیک کرنے کے لیے بولین فنکشن ہے۔ لوپ پہلی پوزیشن سے شروع ہوتا ہے اور تمام نو پوزیشنوں کے لیے اعادہ کرتا رہتا ہے۔ first_symbol ایک کریکٹر ہے جو 0 یا X ہو سکتا ہے اگر یہ سچ ہے تو جیتنے والے اصول کے لیے تمام ممکنہ امتزاج کی جانچ پڑتال کی جاتی ہے۔ بصورت دیگر، تکرار کرنے والا اگلی پوزیشن پر چلا جاتا ہے، اور جب تک تمام ممکنہ پوزیشنز کو چیک نہیں کر لیا جاتا تب تک یہی چلتا رہتا ہے۔ اگر جھنڈا درست ہونے پر سیٹ کیا جاتا ہے، تو ایک فاتح کا اعلان کیا جاتا ہے، اور پروگرام دوبارہ انتخاب کرنے کو کہتا ہے۔



باطل چیک ون ( کھلاڑی اور p1، کھلاڑی اور p2 ) {
int i، j، k ;
bool پرچم = جھوٹا ;
چار پہلا_علامت ;
کے لیے ( میں = 0 ; میں < 8 ; میں ++ ) {
پہلا_علامت = بورڈ [ جیت کی فہرست [ میں ] . قطار [ 0 ] ] ;

اگر ( ( پہلا_علامت ! = 'ایکس' ) && ( پہلا_علامت ! = 'او' ) ) {
پرچم = جھوٹا ;
جاری رہے ;
}
پرچم = سچ ;
کے لیے ( جے = 0 ; جے < 3 ; جے ++ ) {
اگر ( پہلا_علامت ! = بورڈ [ جیت کی فہرست [ میں ] . قطار [ جے ] ] ) {
پرچم = جھوٹا ;
توڑنا ;
}
}
اگر ( پرچم ) {
کھیل شروع = 0 ;
اگر ( پہلا_علامت == 'ایکس' ) {
cout << '-----------------------------------' << endl ;
cout << ' \t میں جیتنے والا کھلاڑی' << endl ;
cout << '-----------------------------------' << endl ;
p1۔ جیت لیا ( ) ;
} اور {
p2۔ جیت لیا ( ) ;
اگر ( کمپیوٹر کے خلاف ) {
cout << '------------------------------------------------' << endl ;
cout << ' \t کمپیوٹر جیت گیا' << endl ;
cout << '------------------------------------------------' << endl ;
} اور {
cout << '------------------------------------------------' << endl ;
cout << ' \t پلیئر II جیت گیا' << endl ;
cout << '------------------------------------------------' << endl ;

}
}
ڈسپلے سکور ( p1، p2 ) ;
توڑنا ;
}

کوڈ کا یہ حصہ گیم کا سکور دکھاتا ہے۔ اگر گیم کمپیوٹر کے خلاف ہے، تو پلیئر 1 اور کمپیوٹر کا سکور ظاہر ہوتا ہے، بصورت دیگر، پلیئر 1 اور پلیئر 2 کا سکور ظاہر ہوتا ہے۔





باطل ڈسپلے سکور ( کھلاڑی اور p1، پلیئر اور p2 ) {
cout << endl ;
cout << ' \t سکور: \t ' ;
اگر ( کمپیوٹر کے خلاف )
cout << 'پلیئر I:' << p1۔ getScore ( ) << ' \t کمپیوٹر: ' << p2۔ getScore ( ) << endl ;
اور
cout << 'پلیئر I:' << p1۔ getScore ( ) << ' \t کھلاڑی II: ' << p2۔ getScore ( ) << endl ;
}

یہ دو کھلاڑیوں کے لیے ٹک ٹیک ٹو گیم کے عمل کا بنیادی کوڈ ہے۔ صارف سوئچ کیس سٹیٹمنٹ کا استعمال کرتے ہوئے مختلف طریقہ کار میں سے انتخاب کر سکتا ہے۔ یہ کوڈ C++ کمپائلر پر گیم کھیلنے کے لیے صارف دوست انٹرفیس فراہم کرتا ہے، اور کوڈ اس وقت تک کام کرتا رہتا ہے جب تک کہ صارف باہر نکلنے کا اختیار منتخب نہیں کرتا۔

int مرکزی ( )
{
int چودھری ;

جبکہ ( 1 ) {
cout << ' ----------مینو----------' << endl ;
cout << ' \t 1. 1 پلیئر گیم' << endl ;
cout << ' \t 2. 2 پلیئر گیم' << endl ;
cout << ' \t 3. باہر نکلنے کے لیے ' << endl ;
cout << '      ---------' << endl ;
cout << endl ;
cout << ' \t ایک آپشن منتخب کریں' <> چودھری ;
سوئچ ( چودھری ) {
معاملہ 1 : {
کھیل * کھیل = نئی کھیل ;
کھیل - > گرمی ( ) ;
کھیل - > ایک پلیئر گیم ( ) ;
}
توڑنا ;
معاملہ 2 : {
کھیل * کھیل = نئی کھیل ;
کھیل - > گرمی ( ) ;
کھیل - > دو پلیئر گیم ( ) ;
}
توڑنا ;
معاملہ 3 :
واپسی 0 ;
پہلے سے طے شدہ :
cout << 'OOPs غلط آپشن! دوبارہ کوشش کریں' ;
}

}
واپسی 0 ;
}

ٹیکسٹ پر مبنی Tic-Tac-Toc گیم کے لیے مکمل کوڈ

یہ ٹیکسٹ پر مبنی tic-tac-toe گیم کے ڈیزائن اور اس پر عمل درآمد کے لیے ایک مکمل کوڈ ہے۔



# شامل کریں
# شامل کریں< فہرست>
#include
#include
# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;

typedef ساخت {
int * قطار ;
} ون لسٹ ;


کلاس کھلاڑی {
نجی :
تار کا نام ;
int سکور ;
عوام :
کھلاڑی ( ) : کھلاڑی { '' } { }
کھلاڑی ( تار n ) : سکور { 0 } ، نام { n } { }

باطل جیت لیا ( ) {
// اسکور میں اضافہ کریں۔
سکور ++ ;
}
int getScore ( ) { واپسی یہ - > سکور ; }

string getName ( ) { واپسی یہ - > نام ; }
} ;

کلاس کھیل {
نجی :
چار بورڈ [ 9 ] ;
int خالی انڈیکس [ 9 ] ;
int گیم آن، کمپیوٹر کے خلاف ;
int خالی شمار ;
WinList winlist [ 8 ] ;

باطل ڈسپلے بورڈ ( ) {
cout << endl ;
cout << '   |   |  ' << endl ;
cout << ' << بورڈ [ 0 ] << '|' << بورڈ [ 1 ] << '|' << بورڈ [ 2 ] << endl ;
cout << '   |   |  ' << endl ;
cout << '------------' << endl ;
cout << '   |   |  ' << endl ;
cout << ' << بورڈ [ 3 ] << '|' << بورڈ [ 4 ] << '|' << بورڈ [ 5 ] << endl ;
cout << '   |   |  ' << endl ;
cout << '------------' << endl ;
cout << '   |   |  ' << endl ;
cout << ' << بورڈ [ 6 ] << '|' << بورڈ [ 7 ] << '|' << بورڈ [ 8 ] << endl ;
cout << '   |   |  ' << endl ;
cout << endl ;
}

باطل کمپیوٹر ان پٹ ( ) {
int پوزیشن ;
پوزیشن = رینڈ ( ) % 10 ;
اگر ( خالی انڈیکس [ پوزیشن ] == 1 ) {
اگر ( خالی شمار < 0 )
واپسی ;
کمپیوٹر ان پٹ ( ) ;
} اور {
cout << 'کمپیوٹر کا انتخاب کریں:' << پوزیشن + 1 << endl ;
خالی انڈیکس [ پوزیشن ] = 1 ;
خالی شمار - = 1 ;
بورڈ [ پوزیشن ] = 'او' ;
}

}

باطل پلیئر ان پٹ ( کھلاڑی اور کھلاڑی ) {
int پوزیشن ;
cout << endl ;
cout << ' \t ' << کھلاڑی getName ( ) << 'موڑ:' ;
cout << ' \t پوزیشن درج کریں ' <> پوزیشن ;
پوزیشن - = 1 ;
اگر ( خالی انڈیکس [ پوزیشن ] == 1 ) {
cout << '------پوزیشن خالی نہیں------' << endl ;
پلیئر ان پٹ ( کھلاڑی ) ;
} اور {
خالی انڈیکس [ پوزیشن ] = 1 ;
خالی شمار - = 1 ;
کھلاڑی getName ( ) . موازنہ ( 'کھلاڑی I' ) == 0 ? بورڈ [ پوزیشن ] = 'ایکس' : بورڈ [ پوزیشن ] = 'او' ;
}

}

باطل چیک ون ( کھلاڑی اور p1، کھلاڑی اور p2 ) {
int i، j، k ;
bool پرچم = جھوٹا ;
چار پہلا_علامت ;
کے لیے ( میں = 0 ; میں < 8 ; میں ++ ) {
پہلا_علامت = بورڈ [ جیت کی فہرست [ میں ] . قطار [ 0 ] ] ;

اگر ( ( پہلا_علامت ! = 'ایکس' ) && ( پہلا_علامت ! = 'او' ) ) {
پرچم = جھوٹا ;
جاری رہے ;
}
پرچم = سچ ;
کے لیے ( جے = 0 ; جے < 3 ; جے ++ ) {
اگر ( پہلا_علامت ! = بورڈ [ جیت کی فہرست [ میں ] . قطار [ جے ] ] ) {
پرچم = جھوٹا ;
توڑنا ;
}
}
اگر ( پرچم ) {
کھیل شروع = 0 ;
اگر ( پہلا_علامت == 'ایکس' ) {
cout << '-----------------------------------' << endl ;
cout << ' \t میں جیتنے والا کھلاڑی' << endl ;
cout << '-----------------------------------' << endl ;
p1۔ جیت لیا ( ) ;
} اور {
p2۔ جیت لیا ( ) ;
اگر ( کمپیوٹر کے خلاف ) {
cout << '-----------------------------------' << endl ;
cout << ' \t کمپیوٹر جیت گیا' << endl ;
cout << '-----------------------------------' << endl ;
} اور {
cout << '------------------------------------------------' << endl ;
cout << ' \t پلیئر II جیت گیا' << endl ;
cout << '------------------------------------------------' < 0 ) && ( کھیل شروع ! = 0 ) ) {

اگر ( کمپیوٹر کے خلاف )
ہاتھ == 1 ? کمپیوٹر ان پٹ ( ) : پلیئر ان پٹ ( p2 ) ;
اور
ہاتھ == 1 ? پلیئر ان پٹ ( p1 ) : پلیئر ان پٹ ( p2 ) ;
ہاتھ = ! ہاتھ ;
ڈسپلے بورڈ ( ) ;
چیک ون ( p1، p2 ) ;
}
اگر ( خالی شمار <= 0 ) {
cout << '      ----------------------' << endl ;
cout << ' \t کوئی فاتح نہیں' << endl ;
cout << '      ----------------------' << endl ;
}
cout << endl ;
cout <> دوبارہ میچ ;
اگر ( ( دوبارہ میچ == 'اور' ) || ( دوبارہ میچ == 'اور' ) ) {
گرمی ( ) ;
کھیلیں ( p1، p2 ) ;
}

}
باطل ڈسپلے سکور ( کھلاڑی اور p1، پلیئر اور p2 ) {
cout << endl ;
cout << ' \t سکور: \t ' ;
اگر ( کمپیوٹر کے خلاف )
cout << 'پلیئر I:' << p1۔ getScore ( ) << ' \t کمپیوٹر: ' << p2۔ getScore ( ) << endl ;
اور
cout << 'پلیئر I:' << p1۔ getScore ( ) << ' \t کھلاڑی II: ' << p2۔ getScore ( ) << endl ;
}

عوام :
کھیل ( ) : خالی شمار { 0 } ، کھیل شروع { 1 } ، کمپیوٹر کے خلاف { 0 } {
گرمی ( ) ;
جیت کی فہرست [ 0 ] . قطار = نئی int [ 3 ] { 0 ، 1 ، 2 } ;
جیت کی فہرست [ 1 ] . قطار = نئی int [ 3 ] { 3 ، 4 ، 5 } ;
جیت کی فہرست [ 2 ] . قطار = نئی int [ 3 ] { 6 ، 7 ، 8 } ;
جیت کی فہرست [ 3 ] . قطار = نئی int [ 3 ] { 0 ، 3 ، 6 } ;
جیت کی فہرست [ 4 ] . قطار = نئی int [ 3 ] { 1 ، 4 ، 7 } ;
جیت کی فہرست [ 5 ] . قطار = نئی int [ 3 ] { 2 ، 5 ، 8 } ;
جیت کی فہرست [ 6 ] . قطار = نئی int [ 3 ] { 0 ، 4 ، 8 } ;
جیت کی فہرست [ 7 ] . قطار = نئی int [ 3 ] { 2 ، 4 ، 6 } ;
}

باطل گرمی ( ) {
کھیل شروع = 1 ;

خالی شمار = 0 ;
srand ( وقت ( 0 ) ) ;
کے لیے ( سائز_ٹی میں = 0 ; میں < 10 ; میں ++ ) {
خالی انڈیکس [ میں ] = 0 ;
بورڈ [ میں ] = ( میں + 1 ) + '0' ;
خالی شمار ++ ;
}
خالی شمار -- ;
}

باطل ایک پلیئر گیم ( ) {
// پلیئر بنانا
کھلاڑی پی ( 'کھلاڑی I' ) ;
کھلاڑی c ( 'کمپیوٹر' ) ;
cout << '       -----------------------' << endl ;
cout << ' \t کھلاڑی I: ایکس \t کمپیوٹر: O' << endl ;
cout << '       -----------------------' << endl ;
cout << endl ;
کمپیوٹر کے خلاف = 1 ;
کھیلیں ( ج، ص ) ;

}

باطل دو پلیئر گیم ( ) {
// پلیئر بنانا
کھلاڑی پی ( 'کھلاڑی I' ) ;
کھلاڑی c ( 'پلیئر II' ) ;
cout << '       -----------------------' << endl ;
cout << ' \t کھلاڑی I: ایکس \t کھلاڑی II: O' << endl ;
cout << '       -----------------------' << endl ;
cout << endl ;
کمپیوٹر کے خلاف = 0 ;
کھیلیں ( ج، ص ) ;
}
} ;

int مرکزی ( )
{
int چودھری ;

جبکہ ( 1 ) {
cout << ' ----------مینو----------' << endl ;
cout << ' \t 1. 1 پلیئر گیم' << endl ;
cout << ' \t 2. 2 پلیئر گیم' << endl ;
cout << ' \t 3. باہر نکلنے کے لیے ' << endl ;
cout << '      ---------' << endl ;
cout << endl ;
cout << ' \t ایک آپشن منتخب کریں' <> چودھری ;
سوئچ ( چودھری ) {
معاملہ 1 : {
کھیل * کھیل = نئی کھیل ;
کھیل - > گرمی ( ) ;
کھیل - > ایک پلیئر گیم ( ) ;
}
توڑنا ;
معاملہ 2 : {
کھیل * کھیل = نئی کھیل ;
کھیل - > گرمی ( ) ;
کھیل - > دو پلیئر گیم ( ) ;
}
توڑنا ;
معاملہ 3 :
واپسی 0 ;
پہلے سے طے شدہ :
cout << 'OOPs غلط آپشن! دوبارہ کوشش کریں' ;
}

}
واپسی 0 ;
}

یہ ٹک ٹیک ٹو گیم کے عمل کے لیے ایک مکمل کوڈ ہے، جسے دو طریقوں سے کھیلا جا سکتا ہے، یا تو کمپیوٹر یا کسی ساتھی انسان کے ساتھ۔ یہ ایک ورسٹائل کوڈ ہے، جس میں تمام ممکنہ کمانڈز شامل ہیں۔ جب صارف ایک ایسی پوزیشن داخل کرتا ہے جو پہلے سے بھری ہوئی ہے، تو وہ اس پوزیشن کو اوور رائٹ نہیں کرتا اور اس اقدام کو غلط سمجھتا ہے۔

اب تک ایک کھلاڑی نے پہلا باکس منتخب کیا ہے اور پھر اگلی باری میں کمپیوٹر نے چھٹے باکس کو نشان زد کیا ہے:

دونوں کھلاڑیوں نے اب تک دو خانوں کو منتخب کیا ہے اور اگلی باری میں کھلاڑی میں ساتویں باکس کا انتخاب کرتا ہوں جس کے نتیجے میں لگاتار عمودی پیٹرن بنتا ہے:

صارف گیم کھیلنے کے لیے کمپیوٹر استعمال کرنے کا انتخاب کرتا ہے، اس لیے تین چالیں لینے کے بعد، صارف کمپیوٹر سے جیت جاتا ہے اور ایک سکور پلیئر 1 کے ریکارڈ میں شامل ہو جاتا ہے۔ پہلا میچ ختم ہونے کے بعد، کمپائلر دوبارہ میچ کے لیے کہتا ہے۔ صارف اختیارات سے فیصلہ کرتا ہے اور پروگرام مرکزی حصے میں واپس آجاتا ہے۔ آپشن تین کو منتخب کرنے کے بعد کمپائلر موجود کوڈ پر عمل درآمد کرتا ہے۔

نتیجہ

متن پر مبنی گیمز کھلاڑی کے ساتھ تعامل کے لیے ٹیکسٹ کریکٹرز اور کمانڈ لائن انٹرفیس پر انحصار کرتے ہیں۔ ان کے پاس گرافیکل امیجز، آوازیں، یا متحرک تصاویر نہیں ہیں۔ صارف کنسول ونڈو کے ذریعے کمانڈ داخل کرتا ہے۔ صارف دوست ٹیکسٹ پر مبنی ٹک ٹاک ٹو گیم C++ کا استعمال کرتے ہوئے بنایا گیا ہے۔ یہ ایک گیم بنانے کے لیے مختلف کمانڈز کا استعمال کرتا ہے جسے یا تو کمپیوٹر یا کسی دوسرے ساتھی کھلاڑی کے ساتھ کھیلا جا سکتا ہے۔