Professional Documents
Culture Documents
SoftwareEngineeringLab Ex2
SoftwareEngineeringLab Ex2
شرح کد
-کتابخانه
• :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حاصل میشود و ممکن است در
نهایت تمامی سکهها به یک بازیکن برسد.