You are on page 1of 4

‫﷽‬

‫تحلیل و بررسی کد‬


‫آز مهندسی نرمافزار‬

‫دانشجو‪ :‬ایمان قوامی‬


‫شماره دانشجویی‪9817023141 :‬‬
‫زمان کالس‪ :‬شنبهها ساعت ‪ 16‬تا ‪18‬‬
‫خالصه برنامه‬
‫یک بازی نوشته شده به زبان برنامهنویسی پایتون که در آن تعدادی بازیکن با مقداری مشخص سکه در ابتدا‪ ،‬وجود‬
‫دارد‪ .‬به تعداد دفعات مشخص‪ ،‬هر بار به صورت تصادفی دو بازیکن انتخاب میشوند و و با یکدیگر مسابقه میدهند کی طی‬
‫آن یک بازیکن برنده و بازنده خواهیم داشت که بازیک برنده باید یک سکه به بازیکن برنده بدهد‪ .‬در نهایت موجودی سکه‬
‫هر بازیکن را به صورت نموداری نشان میدهیم‪.‬‬

‫شرح کد‬
‫‪ -‬کتابخانه‬
‫• ‪ :Random‬هدف استفاده از این کتابخانه‪ ،‬تولید اعداد تصادفی است که ما از آن در برنامه جهت انتخاب‬
‫دو بازیکن تصادفی استفاده میکنیم‪.‬‬
‫‪import random‬‬

‫• ‪ :Matplotlib‬هدف استفاده از این کتابخانه‪ ،‬رسم انواع مختلف نمودارها است که ما از آن در برنامه جهت‬
‫نمایش موجودی سکه هر بازیکن پس از انجام کامل بازی استفاده میکنیم‪.‬‬
‫‪import matplotlib.pyplot as plt‬‬

‫‪ -‬متغییر‬
‫• تعداد بازیکنهایی که میخواهند بازی کنند را مشخص میکنیم‪.‬‬
‫• تعداد دفعاتی که میخواهیم بازی انجام شود را مشخص میکنیم‪.‬‬
‫• تعداد سکههای اولیه هر بازیکن را مشخص میکنیم‪.‬‬
‫• یک آرایه برای ذخیره تعداد سکه هر بازیکن در طول برنامه میسازیم‪.‬‬
‫‪ -‬تابع‬
‫در برنامه به نوشتن یک تکه کد احتیاج داریم که مانند قلب بازی عمل کند‪ .‬تابعی که طی آن برنده و بازنده و‬
‫موجودی سکهها را مشخص میکند‪ .‬به همین دلیل تابع ‪ kaya‬را نوشتهایم که از ما دو تا بازیکن ‪ p1‬و ‪ p2‬را‬
‫میگیرد و طبق فرض برنامه‪ ،‬بازیکن ‪ p1‬بازنده محسوب میشود و باید یک سکه به بازیکن برنده ‪ p2‬بدهد‪.‬‬
‫‪ -‬حلقه‬
‫• حلقه اول‪ :‬موجودی سکه هر بازیکن را برابر با تعداد سکههای اولیه قرار میدهیم‪.‬‬
‫• حلقه دوم‪ :‬به اندازه تعداد دفعاتی که میخواهیم بازی صورت گیرد‪ ،‬هر بار دو بازیکن تصادفی را انتخاب‬
‫میکنیم به طوری که موجودی سکه بازیکن اول بیشتر از ‪ 0‬باشد و بازیکن دوم مخالف بازیکن اول باشد‪.‬‬
‫دو بازیکن با هم مسابقه میدهند (طبق تابع ‪ )kaya‬و در نهایت موجودی سکه هر دو بازیکن‪ ،‬آپدیت‬
‫خواهد شد‪.‬‬
‫‪ -‬سایر کارها‬
‫• ‪ : import … as plt‬دلیل استفاده از این کار‪ ،‬نوشتن نام مستعار به جای نام طوالنی کتابخانه در برنامه‬
‫است‪ .‬ممکن است کار ما با کتابخانه طوالنی باشد و هی مجبور به نوشتن نام طوالنی آن باشیم که این‬
‫کار خستهکننده است‪ .‬برای راحتی میتوانیم نام مستعار برای آن بنویسیم (‪ )plt‬و از آن جهت اشاره به‬
‫کتابخانه استفاده کنیم‪.‬‬
‫• )(‪ :random.seed‬این تابع اعداد تصادفی را با آرگومان بذر شده برای ما ترسیم میکند‪ .‬هر عدد تصادفی‬
‫تولید شده بعد از این تابع‪ ،‬شماره ترسیم شده را برمیگردانند‪.‬‬
‫• )(‪ : player.sort‬بعد از اینکه بازی به صورت کامل انجام شد‪ ،‬موجودی سکه بازیکنها را به صورت‬
‫صعودی مرتب میکنیم که در نهایت نمودار ما زیباتر باشد‪.‬‬
‫• )‪ :print(player‬موجودی سکه بازیکنها را در قالب یک لیست برای ما چاپ میکند‪.‬‬
‫• )(‪ :plt.plot(person, “-”) & plt.show‬موجودی سکه بازیکنها را به صورت یک نمودار که با (‪)-‬‬
‫مشخص شدهاند را چاپ میکند‪.‬‬

‫ارزیابی نهایی‬
‫هرچه تعداد دفعات انجام بازی بیشتر شود‪ ،‬بازیکنهای بیشتری با موجودی سکه ‪ 0‬حاصل میشود و ممکن است در‬
‫نهایت تمامی سکهها به یک بازیکن برسد‪.‬‬

You might also like