HW4.pdf

‫تمرین سری چهارم‬
‫درس مبانی برنامه نویسی‬
‫موعد ارسال‪ 3 :‬خرداد‬
‫تمرین سری چهارم درس مبانی برنامه نویسی‬
‫موعد ارسال‪ 3 :‬خرداد‬
‫نکات کلی‬
‫‪ ‬موعد تحویل ساعت ‪( 11:11‬ظهر) روز ‪ 3‬خرداد بوده و به هیچ عنوان تمدید نخواهد شد‪.‬‬
‫‪ ‬تأخیر تا ‪ 1‬ساعت‪ ،‬به ازای هر ‪ 3‬دقیقه موجب کسر شدن ‪ %1‬نمره‪ ،‬از ‪ 1‬ساعت تا ‪ 42‬ساعت موجب کسر شدن‬
‫‪ %42‬نمره‪ ،‬از ‪ 42‬ساعت تا ‪ 41‬ساعت‪ ،‬به ازای هر ‪ 4‬دقیقه موجب کسر شدن ‪ %1‬نمرهی دیگر و بین ‪ 41‬ساعت‬
‫تا ‪ 24‬ساعت باعث کسر شدن ‪ %12‬نمره میشود ‪ .‬از ‪ 24‬ساعت تا ‪ 21‬ساعت نیز‪ ،‬به ازای هر ‪ 1.4‬دقیقه موجب‬
‫کسر شدن ‪ %1‬درصد نمره ی دیگر می شود‪ ( .‬بدیهی است که با تاخیر بیش از ‪ 21‬ساعت ‪ %122‬نمره از شما‬
‫کسر شده و دیگر از این تمرین نمره ای نمی گیرید )‬
‫‪ ‬قطع بودن اینترنت خوابگاه‪ ،‬کندی پایگاه اینترنتی دانشکده‪ ،‬تمام شدن کارت اینترنت و … هیچکدام دلیل‬
‫موجهی برای تأخیر نیستند‪ .‬بنابراین پیشنهاد میشود جوابهای خود را در دانشکده ارسال کنید‪.‬‬
‫‪ ‬هرگونه رونوشت‪ ،1‬برای منبع رونوشت و همچنین نسخههای رونویسی شده ‪ -4‬نمره در پی خواهد داشت‪.‬‬
‫‪ ‬تالش برای استفاده از منابع سیستم مانند کارت صدا و پرینتر و ‪ ...‬منجر به دریافت نمرهی صفر میشود‪.‬‬
‫‪ ‬سواالت خود را در صفحه درس مبانی برنامه سازی در سایت ‪ piazza.com‬مطرح کنید‪.‬‬
‫تمرین سری چهارم درس مبانی برنامه نویسی‬
‫‪1‬‬
‫کپی یا همان کُپ‬
‫‪1‬‬
‫بازی دوز‬
‫بازی دوز‪ ،‬یک بازی دو نفره است‪ ،‬که در آن افراد یک جدول ‪ 3 * 3‬را با مهرههای ‪ X‬و ‪ O‬پر می کنند‪ ،‬هر شخصی که‬
‫بتواند یک سطر یا یک ستون یا یک قطر را از مهرههای خود پر کند‪ ،‬برنده میشود‪ ،‬در صورتی که در طول بازی‪ ،‬هیچ‬
‫بازیکنی برنده نشود‪ ،‬بازی زمانی تمام میشود که جدول پر شود‪.‬‬
‫در این تمرین‪ ،‬قرار است که شما بازی دوز را با کمی تغییر پیاده کنید!!!‬
‫بازی دوزی که قرار است‪ ،‬شما پیاده کنید این امکان را دارد که ابعاد آن و حتی بعد آن!! افزایش یابد‪ ،‬قواعد بازی‬
‫همچنان پا برجاست‪ ،‬یعنی هر شخصی که بتواند یک سطر‪ ،‬یا یک ستون‪ ،‬یا یک قطر را از مهرههای خود پر کند‪ ،‬برنده‬
‫میشود‪ .‬دقت کنید که در حالت سه بعدی باید همه قطرها را در نظر بگیرید‪.‬‬
‫روند بازی را به صورت زیر پیاده کنید‪:‬‬
‫در ابتدا مشخصات زمین بازی (یعنی ابعاد و تعداد خانهها در هر یال) را دریافت میکنید‪ .‬زمین بازی حداکثر سه بعدی‬
‫است‪.‬‬
‫>‪<Dimension> <number-of-cells in each edge‬‬
‫به عنوان مثال ‪ 3 2‬یک زمین بازی سه بعدی (مکعب شکل) به طول ‪ 2‬است‪.‬‬
‫سپس نام دو بازیکن را دریافت می کنید‪،‬‬
‫تمرین سری چهارم درس مبانی برنامه نویسی‬
‫‪4‬‬
‫‪Player 1:‬‬
‫‪Player 2:‬‬
‫بازی با بازیکنی که اول نام خود را وارد می کند‪ ،‬شروع میشود‪.‬‬
‫در هر مرحله بازیکنی که نوبت او است‪ ،‬محلی که می خواهد مهره خود را در آن قرار دهد‪ ،‬را به فرمت زیر وارد می کند‪،‬‬
‫که به ترتیب نام بازیکن‪ ،‬مؤلفههای خانه انتخاب شده در جدول است‪( .‬توجه کنید‪ ،‬بسته به اینکه زمین بازی چند بعدی‬
‫است‪ ،‬تعداد مؤلفه های الزم برای مشخص کردن یک خانه از زمین بازی مشخص میشود‪).‬‬
‫برای زمین سه بعدی‪:‬‬
‫‪<name-of-player> x y z‬‬
‫برای زمین دو بعدی‪:‬‬
‫‪<name-of-player> x y‬‬
‫در صورتی که بازیکنی که نوبت او نیست‪ ،‬انتخاب خود را وارد کند‪ ،‬باید پیام زیر چاپ شود‪.‬‬
‫!>‪It is not your turn <player-name‬‬
‫اگر در طول بازی بازیکنی برنده شود‪ ،‬پیام زیر چاپ شده و بازی تمام میشود‪.‬‬
‫!‪<player-name> win‬‬
‫در صورتی که هیچ بازیکنی برنده نشود‪ ،‬بازی با پر شدن جدول خاتمه می یابد و باید پیام زیر چاپ شود‪.‬‬
‫!‪We tied‬‬
‫شما باید در هر مرحله زمین بازی را چاپ کنید‪.‬‬
‫به عنوان مثال‬
‫‪ :X‬نشان دهنده مهرههای بازیکن اول‬
‫‪ :O‬نشان دهنده مهرههای بازیکن دوم‬
‫‪ :+‬نشان دهنده خانههای خالی‬
‫شکل ‪ . 1‬زمین بازی دو بعدی ‪4 * 4‬‬
‫نکته ‪ 02 :‬درصد نمره مربوط به زمین بازی دو بعدی می شود‪.‬‬
‫تمرین سری چهارم درس مبانی برنامه نویسی‬
‫شکل ‪. 2‬زمین بازی سه بعدی ‪3 * 3‬‬
‫‪3‬‬