Final_Project.pdf

‫هوالعلیم‬
‫مبانی برنامهسازی (‪)40151‬‬
‫)‪Fundamentals of Programming (Pascal‬‬
‫دانشگاه صنعتی‬
‫شریف‬
‫پروژه نهایی درس‬
‫دانشکده مهندسی کامپیوتر‬
‫مدرس‪ :‬صادق دری نوگورانی‬
‫مهلت تمرین‪ :‬شنبه‪ 01 ،‬تیر ‪0930‬‬
‫توضیحات کلی‬
‫شما دو حق انتخاب برای پروژه دارید که به ترتیب بازی های ‪ Hex‬و ‪ Tic-Tac-Toe‬هستند‪ .‬انتخاب این دو پروژه‬
‫هیچ برتری ای نسبت به هم ندارد‪ .‬برای اطالعات بیشتر از بازی ها میتوانید به صفحههای ویکی پدیا آنها مراجعه کنید و‬
‫یا بازی را دانلود کرده و یا به صورت برخط(‪ )Online‬بازی کنید‪.‬‬
‫پروژه میتواند در گروههای یک یا دو نفره انجام شود‪ .‬انجام پروژه به صورت تکی ‪ %02‬نمرهی اضافی دارد‪ .‬دقت کنید که‬
‫اگر پروژه را دو نفره انجام میدهید باید تقسیم بندی وظایف از ابتدا مشخص باشد‪ .‬برای مثال پیاده سازی هوش‬
‫مصنوعی که گزینه ی نمره ی اضافه است به همراه گرافیک را یک نفر برعهده بگیرد و پیادهسازی منطق بازی نیز‬
‫برعهده ی شخص دیگری باشد‪ .‬اگر پروژه به صورت فردی نوشته شود ولی گروهی ارائه شود‪ ،‬نفری که در کار حضور‬
‫نداشته است‪ ،‬نمره ای نخواهد گرفت و از نمره ی شخص دیگر(نویسنده) نیز ‪ %02‬کسر خواهد شد‪.‬‬
‫شما در پروژه باید موارد زیر را به طور کامل پیادهسازی کنید‪:‬‬
‫‪ ‬منطق بازی باید کامل باشد‪ .‬این قسمت از پروژه ‪ %02‬کل نمره را دربردارد‪ .‬در صورتی که منطق بازی ناقص‬
‫باشد‪ ،‬نمره از شما کسر خواهد شد‪.‬‬
‫‪ ‬واسط کاربری بازی باید گرافیکی باشد‪ .‬این بخش از پروژه ‪ %02‬کل نمره را در بر دارد‪.‬‬
‫‪ ‬عالوه بر این گزینهی ضریب تسلط وجود دارد که در کل نمرهی شما ضرب میشود‪ .‬اگر کد را خودتان بنویسید‬
‫نگرانی از این بابت نداشته باشید‪ .‬مطمئناً هر فرد به کدی که خودش روی آن وقت گذاشته است‪ ،‬مسلط است‪.‬‬
‫‪ ‬اگر هر گونه ابهام یا مشکل در مورد تمرین داشتید که فکر میکنید پاسخ آن برای همه مفید خواهد بود‪ ،‬لطفا‬
‫آن را به گروه پستی درس ارسال کنید‪ .‬در غیر این صورت به آدرس ‪ [email protected]‬و یا‬
‫‪ [email protected]‬بفرستید‪.‬‬
‫‪1‬‬
‫انتخاب اول هگز(‪)Hex‬‬
‫برای آشنایی بیشتر با بازی ‪ Hex‬کافی است به صفحهی ویکی آن به آدرس زیر مراجعه کنید‪:‬‬
‫‪http://en.wikipedia.org/wiki/Hex_%28board_game%29‬‬
‫بازی در یک لوزی به صورت ‪ 11‬در ‪ 11‬برگزار می شود که شکل آن آمده است‪ .‬هر بازیکن یک رنگ مشخص دارد‪ .‬در هر نوبت‬
‫بازیکنی که نوبت اوست‪ ،‬یک خانه را با رنگ خودش پر می کند‪ .‬خانه قبال نباید رنگ شده باشد‪ .‬هدف اصلی این است که گونه ای‬
‫خانه ها را رنگ کند که بین دو ضلع مقابل هم لوزی یک اتصال ایجاد شود قبل از این که حریف بتواند چنین کاری انجام دهد‪.‬‬
‫اولین بازیکنی که اتصال خود را تشکیل بدهد برندهی بازی است‪ .‬هر بازیکن دو ضلع لوزی را در اختیار دارد و این دو ضلع را باید‬
‫به هم متصل نماید‪.‬‬
‫‪ ‬برای سادگی کار میتوانید به جای شش ضلعی خانهها را به صورت مربع بکشید و به جای لوزی هم یک مربع ‪ 11‬در‬
‫‪ 11‬داشته باشید‪ .‬طراحی خانهها به صورت ششضلعی نمرهی اضافه دارد‪.‬‬
‫‪‬‬
‫واسط گرافیکی بسیار مناسب و کاربرپسند – تا ‪%12‬‬
‫‪‬‬
‫خالقیت – خالقیت تعریف کلی دارد‪ .‬مثالً نمایش انتخاب های بازیکن می تواند خالقیت تلقی شود – تا ‪%12‬‬
‫‪‬‬
‫هوش مصنوعی به صورتی که کامپیوتر بتواند خودش بازی کند‪ .‬نمره ی شما بستگی به میزان باهوش بودن هوش‬
‫مصنوعی دارد – تا ‪%02‬‬
‫‪‬‬
‫کشیدن لوزی به جای مربع ‪%12‬‬
‫‪‬‬
‫امکان ذخیره ی یک بازی در فایل و همچنین بارگذاری(‪ )load‬بازی توسط فایل ذخیره شده در برنامه‪%11 .‬‬
‫‪0‬‬
‫انتخاب دوم بازی ‪Tic-Tac-Toe‬‬
‫برای آشنایی بیشتر با بازی ‪ Tic-Tac-Toe‬به آدرس زیر رجوع کنید‪:‬‬
‫‪http://en.wikipedia.org/wiki/Tic-tac-toe‬‬
‫حتما با بازی ‪ x-o‬آشنا هستید‪ .‬در این بازی هر بازیکن یکی از اشکال ‪ x‬و یا ‪ o‬را برای خود انتخاب میکند و بازی آغاز می شود‪.‬‬
‫بازی در یک جدول ‪ 3‬در ‪ 3‬انجام می شود و بازیکنی که یک ردیف‪ ،‬یک ستون و یا یک قطر را با شکل خود پر کند‪ ،‬برنده ی بازی‬
‫خواهد بود‪.‬‬
‫حال ما می خواهیم این بازی را در سه بعد پیاده سازی کنیم‪ .‬فرض کنید سه صفحه ی ‪ 3‬در ‪ 3‬روی هم سوار شده است‪ .‬اگر هر‬
‫بازیکن در یکی از این صفحات یک ستون یک سطر و یا یک قطر را پر کند برنده ی بازی است‪ .‬همچنین بازیکن امکان برد در بعد‬
‫سوم را دارد یعنی می تواند عالوه ب ر تشکیل یک سطر و یا ستون و یا قطر در روی یکی از صفحات این عمل را روی محور ‪ z‬انجام‬
‫دهد‪ .‬توضیحات بیشتر سر کالس حل تمرین داده خواهد شد‪.‬‬
‫‪3‬‬
‫‪‬‬
‫واسط گرافیکی بسیار مناسب و کاربرپسند – تا ‪%12‬‬
‫‪‬‬
‫خالقیت – خالقیت تعریف کلی دارد‪ .‬مثالً نمایش انتخاب های بازیکن می تواند خالقیت تلقی شود – تا ‪%12‬‬
‫‪‬‬
‫هوش مصنوعی به صورتی که کامپیوتر بتواند خودش بازی کند‪ .‬نمره ی شما بستگی به میزان باهوش بودن هوش‬
‫مصنوعی دارد – تا ‪%02‬‬
‫‪‬‬
‫امکان ذخیره ی یک بازی در فایل و همچنین بارگذاری(‪ )load‬بازی توسط فایل ذخیره شده در برنامه‪%11 .‬‬
‫‪0‬‬