PDA

نسخه کامل مشاهده نسخه کامل : ساخت یک بازی با زبان Turbo C++]l] (پست اول مشاهده گردد) در اینجا !



Harvest_moon_majid
27-05-2013, 19:48
به نام خداوند بخشنده و مهربان




بر آن شدم از جزوات خودم و آموخته های خودم و از منابع و کتاب ها یک سورس برنامه استخراج کنم و برای عزیزان به نمایش بگزارم.... :دی

بگزریم از این مسایل شما به آشنایی با زبان C یا C++l احتیاج دارید.

برنامه های مورد نیاز :


Turbo C++ 3.0.0
or
Microsoft Visual C++ 2005 Express Edition
احتیاج دارید و باید به C++l حداقل یک آشنایی داشته باشید...

+++++این برنامه با Turbo بهتر نوشته می شود...

+++++این برنامه از یک سورس بسیار قدیمی است...

+++++سوال فقط پ.خ


++++++برای تشکر از دکمه تشکر استفاده نمیایید! :دی

و در آخر عاشقتم : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]




منبع اصلی :

آموزش Turbo C++d

نویسنده : استفان.آر.دیویس

مترجم :مهندس کیوان فلاح مشفقی

چاپ 1375 هجری شمسی !

ناشر اصلی : Addison-Wesley

ناشر ایرانی :انتشارات جزیل

قیمت :1500 تومان!

تعداد صفحات :512 صـــــ

نکته مهم:

برای اجرای این بازی احتیاج به یک Win قدیمی مثل 95,Xp

و یا حداقل یک MS-Dos

و یا Linux,Unix,Minix




تشکر شما نشانه رضایت و ابته (شخصیت) شماستـــــــ
م.ن.ح.خ

Harvest_moon_majid
27-05-2013, 20:28
به نام خدا


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

بازی که به توضیحش خواهیم پرداخت کرم یا Worm نام دارد.

و هر سوالی که پیش آمد پ.خ بدید و هرگز, تکرار می کنم هرگز :اسپم ندهید ... :l

بازی زیر نحوه ایجاد ارتباط بین وظایف با انواع مختلف را نشان میدهد.

این ارتباط توسط پیام های مبادله شونده برقرار می گردد.در این شبیه ساز وظایف در حال اجرا (یا به عبارتی :در حال حرکت)

((کرم)) یا ((worm)) نامیده می شود.

این کرمها در طول صفحه تصویر می خزند و در پشت سر خود یک ((اثر)) یا ((رد پا)) به جای می گذارند. کرمها نه می توانند
مسیر یک کرم دیگر را قطع کنند یا از صفحه خارج شوند.

هنگامی که یک کرم بایستد کار آن تمام است و آخرین کرم باقیمانده برنده می شود .

اخلاق کرمها : کرمها مخلوقات نادان وابله هستند. پیش از هر حرکت آنها باید از یک وظیفه که عمل هدایت کننده کرم در نظر گرفته شده است و آنها پرسش می کنند که باید کدام مسیر را انتخاب کنند و نیز در صورت عدم وجود امکان حرکت این وظیه آنها را ((می کشد)).

به منظور آنکه استفاده کننده قادر به انجام بازی می گردد دو نوع وظیفه (Task) هدایت کننده کرم در نظر گرفته شده.

اکثر کرمها از وظیفه هدایت کننده اتوماتیک که صفحه تصویر را بررسی کرده و مکانی که کرم باید به آن یرود را تعیین می کند درخواست می کنند که مسیر حرکتشان را تعیین کند.

یک کرم نیز از وظیفه ای که عمل هدایت را بصورت دستی انجام میدهدانجام می دهد درخواست تعیین مسیر می کند.این وظیفه دستور عمل ها ی خود را از کلید های جهتی واقع در سمت راست Key Board دریافت می کند.

از اینرو استفاده کننده از این برنامه در واقع با وظیفه هدایت کننده اتوماتیک کرمها رقابت می کرده و سعی می کند که کرم های بیشتری را زنده نگه دارد. این بازی هنگامی خاتمه می یابد که استفاده کننده کلید End را بفشارد.

لیست کامل برنامه ها در ضمینه "C" ارایه شده است.

در اینجا تنها به تشریح نکات اصلی این بازی خواهیک پرداخت.


با تشکر بسیار
فقط ==>[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
""برای تشکر از دکمه تشکر استفاده شود""

م.ن.ح.خ

Harvest_moon_majid
27-05-2013, 20:39
++++++حتما به انگلسی مسلط باشید یا کمی آشنایی داشته باشد+++++++

Harvest_moon_majid
27-05-2013, 20:42
خب شروع شد.

فقط لطفا اسپم ندید و گرنه :====[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

------------------------------------------------------>
وظایف هدایت کننده ها بر اساس کلاس Direction
بصورت زیر تعریف شده اند :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Harvest_moon_majid
27-05-2013, 21:43
خب آموزش طراحی کرمها

------------------------------------

کرمها بر اساس کلاس Worm طراحی می شوند که بصورت زیر باید تعریف شود :




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


اینم از طراحی کرم ها

Harvest_moon_majid
30-05-2013, 21:14
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

معذرت از غیبتم این چند روز.

و خیلی متشکرم از اسپمر معروف کسی که چند ایمیل را تا الان به طور قطع پر از اسپم کرده آقای ehsan_wwe عزیز .
تشویــــــــــــ

[اسپم جدید :ehsan_wwe] تایپیکو می فرستم بالا [/اسپم جدید : ehsan_wwe]

؟؟؟
جان؟؟؟
بله؟؟
به گوشم کجا؟؟ بالا؟؟؟ Up؟؟ هوا؟؟


اسپم ندید تایپیک جونم خراب میشه [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

.
.
.
--------------------------------------------------------------

+++ توضیحاتی مربوطه به کرمها +++

هر کرم دارای یک رنگ مخصوص/یک علامت نمایشی/ است که آنها را از هم متمایز می فرماید...

و همچنین هر کرم در یک مسیر / یک موقعیت حرکت می کند .

ولی در نهایت یک کرم از آدرس وظیفه ای که باید تعیین جهت حرکت خود به آن رجوع کند مطلع است ! (اصل فیزیکی مجید :دی)

این مقادیر در سازنده یا Constructor (درست نوشتم؟؟؟[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ) کلاس Worm مقداردهی اولیه می گردند.

در این شبیه سازی ما از یک سازنده دارای سه آرگومان استفاده کردیم . آن هم در کلاس Task !!!

++ توضیح آرگومان ها ++

>> این آرگومانها فضای حافظه ای انباره ای یا Stack را از طریق حافظه Heap تخصص دهی می کنند <<

+++ اجرای عملیات کرمها +++

دوباره باید تایپ کنم.... ): ....[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

خب شروع :

اجرای عملیات کرمها از طریق تابع WormTask :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



م.ن.ح.خ

Harvest_moon_majid
30-05-2013, 22:31
با سلام مجدد به دوستان

توضیحاتی راجع به کد قبل .
---------------------------------------------

احصار تابع ()tDely سرعت کرمها را تا حد سرعت انسان کم می کند.

طرح کلی مابقی محتویات این تابع نکته با اهمیتی ندارد.

یک کرم جهت خود را از طریق تابع getNewDirection پرس جو می کند سپس این کرم موقعیت صفحه تصویری خود را توسط تابع updateLoc نوسازی کرده و نهایتا با استفاده از تابع

operator<<(ostream&, Worm&) D

نماد مربوط به خود را به خروجی می فرستد.
-------------------------------------------------------------------------------------

توضیح خوبی بود؟ _\(^_^)/_


یک نکته مهم:

اساخت این بازی به دانش شما هم نیاز دارد. این ها همه کلی اند و ما فقط سورس + نحوه عمل را در اختیار شما می گزاریم.

برای اجرا در ویندوز های Xp به بالا به Dos Box احتیج دارید.
برای اجرا در غیر ویندور می توانید از Linux,Unix,Minix استفاده کنید
برای اجرا در سیستم عامل Ms - Dos استفاده کنید.

م.ن.ح.خ
;k



gs

Harvest_moon_majid
31-05-2013, 16:41
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


با عرض ادب به همه (به جز یک نفر[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] )

شوخی بود ولی حتما پاک کنید.


+ خیلی ممنون تایژیکو به قول خودت فرستادی بالا ... (:

ولی خودمونیم شیشه خورده داریا (:دی خه خه خه )

--------------------------------------------------------------------------------------

این چیه؟ getnewDirection؟


این تابع خیلی مهم است.

یک پیام را تهیه کرده و آن را به وظیفه هدایت کننده مناسب می فرستد .

سپس این تابع به انتظار عکس العمل این وظیفه باقی مانده و پس از دریافت آن را ذخیره می کند :



Code ++d :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Harvest_moon_majid
31-05-2013, 16:53
سلام مجدد به دوستان عزیزم.

امید وارم تا اینجا خوب توضیح داده باشم[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



و گرنه ==== [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

------------------------------------------------------------------------------

سازه ها


سازه های Structures موسوم به ReauestMsg و AnswerMsg بصورت ذیل تعریف می گردند :

Code ++d :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Harvest_moon_majid
31-05-2013, 17:05
نکته مهم : " توجه نمایید که تابع getNewDirection باید آدرس شیء از کلاس Task که متعلق به آن است را پیش از فرستادنآن در پیامی ذخیره کند ; در غیر این صورت

وظیفه Direction کشک محسوب می شود و نخواهد دانست که عکس العمل خود را به کجا باید بفرستد (چقدر خنگول)

------------------------------------------

تعجب کردید ؟؟؟

اگر اینجوری بشوید شاید امیدی باشه :> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اگر اینجوری شاید آره و شاید نه :> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اگر اینجوری امیدی نیست :> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


و اگه اینجوری شد .... >[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ... ( به اولین تیمارستان خودتونو معرفی کنید و با کامپیوتر [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] این کارو نکنید!!!!)

م.ن.ح.خ

sajjad3011
23-07-2013, 04:31
شرمنده این یک اسپم رو مجبورم بدم.بهتره روی موتور و ساخت بازی برید جلو نه صرفا همه چیز با کد.چون خیلی دیر پیشرفت می کنید.

Harvest_moon_majid
27-07-2013, 22:47
شرمنده این یک اسپم رو مجبورم بدم.بهتره روی موتور و ساخت بازی برید جلو نه صرفا همه چیز با کد.چون خیلی دیر پیشرفت می کنید.

سلام به همه و معذرت از غیبت طولانی ( به زودی ادامه تایپیک ....)

فدای لحن ساده ات شوم عزیز دل برادر اما درون برنامه نویسی توربو که BitMap جایی نداره دیگه من چه موتوری بزارم ؟؟؟ یکمی کد های دقت نمایید لطفا ... لطفا !!!! چه موتوری !!! اصن چه کشکی ؟؟؟؟ دقیقا رو چه حسابی گفتی موتور؟؟؟

موتور اصن نباید می گفتی چون کامپلایر نقش موتور رو ایفا می کنه عزیزم .

Hosseinspell
06-04-2014, 14:23
سلام:n18: خسته نباشین نمیدونم اینو اسپم حساب میکنین یا نه مجبورم بگم:n15:
آقا من هر جا که رفتم برای آموزش C++ همه کد میزارن و از اینجور چیزا آخه کسی نمیگه که این کد های لعنتی رو چی کارکنم :n30:
عایا برنامه ای نیازه ؟ (100% که نیازه) خوب اون برنامه چیه اسمش چیه یه راهنمایی کنین...:n28:

ehsan_wwe
06-04-2014, 20:45
سلام خوب کد هارو هم میتونی تو visual studio اجرا کنی
هم تو هر محیط دیگه ایی مثل turbo C plus plus

برو آموزش برنامه نویسی سی دی هاشو بخر ( برای مبتدی ها )
می فهمی چی به چیه

همه زبون های برنامه نویسی دنیا شبیه همند یکیشو یاد بگیری همشو یاد گرفتی

Hosseinspell
08-04-2014, 22:37
ببخشین سایتی برای فروش چنین آموزش هایی سراغ دارین؟ لینکشو بدین:n26:
mr30

ADRIEN
08-04-2014, 22:56
یکی از بهترین منابع برنامه نویس دات او آر جی

Hosseinspell
09-04-2014, 14:10
دات او آر جی (.org) ؟؟؟:n13:

forever1
10-06-2014, 18:34
سلام دوستان
به نظر من بهترین کتاب واسه آموزش C++ کتاب برنامه نویسی به زبان C انتشارات سمپاد هست.
برنامه رو به زبان خیلی ساده آموزش می ده.
من خودم که برنامه نویسی رو از اون کتاب یاد گرفتم.

lord arthas
10-06-2014, 23:39
2 تا بهترین وجود داره ! یکی ماله انتشارات Herbert Schildt یکی دیگه هم یادم نمیاد یک زنبوری بود :n13: