شبیهساز شیءگرا (OOP) جام جهانی فوتبال ۲۰۲۶ با فرمت کلاسیک ۳۲ تیمی، نوشتهشده با پایتون. این برنامه اطلاعات تیمها را از یک فایل CSV میخواند، قرعهکشی گروهها را بر اساس سیدبندی رسمی فیفا انجام میدهد، مرحله گروهی و تمام مراحل حذفی را شبیهسازی میکند و در نهایت قهرمان تورنمنت را مشخص میکند.
- 📂 خواندن اطلاعات ۳۲ تیم (قدرت حمله، قدرت دفاع، رتبه فیفا) از فایل CSV
- 🎲 قرعهکشی خودکار گروهها بر اساس ۴ سید فیفا (هر گروه دقیقاً یک تیم از هر سید)
- ⚽ شبیهسازی واقعگرایانهی گلها با توزیع پواسون (numpy)
- 🏆 اجرای کامل مرحله گروهی با رتبهبندی طبق قوانین فیفا (امتیاز → تفاضل گل → گلزده → رودررو)
- 🥅 مراحل حذفی کامل: یکهشتم، یکچهارم، نیمهنهایی و فینال
- ⏱️ وقت اضافه و ضربات پنالتی در صورت تساوی مرحله حذفی
- 📊 اجرای هزارانبارهی کل تورنمنت و محاسبهی درصد آماری شانس قهرمانی هر تیم
- 🖥️ منوی تعاملی ساده در خط فرمان با مدیریت کامل خطاها
├── worldcup_simulator.py # کد اصلی برنامه
├── worldcup_2026_teams.csv # اطلاعات ۳۲ تیم شرکتکننده
├── WorldCup_Report.pdf # گزارش کار پروژه
└── README.md
| کلاس | مسئولیت |
|---|---|
Team |
نگهداری اطلاعات تیم و شبیهسازی نتیجه یک مسابقه |
Match |
اجرای یک مسابقه و بهروزرسانی آمار دو تیم |
Group |
اجرای بازیهای درونگروهی و رتبهبندی نهایی |
KnockoutStage |
مدیریت یک دور از مرحله حذفی (مثلاً یکهشتم یا فینال) |
WorldCupSimulator |
هماهنگی کل فرآیند از بارگذاری تیمها تا اعلام قهرمان |
- Python 3.8+
- numpy
pip install numpypython worldcup_simulator.pyپس از اجرا، منوی زیر نمایش داده میشود:
=====شبیه ساز جام جهانی=====
1) بارگذاری تیمها از فایل CSV
2) انجام قرعهکشی گروهها (سیدبندی خودکار)
3) اجرای مرحله گروهی و نمایش جدول هر گروه
4) اجرای کامل جام (گروهی + حذفی) و نمایش قهرمان
5) شبیهسازی 1000 باره و گزارش درصد قهرمانی
6) نمایش براکت حذفی آخرین شبیهسازی
7) خروج
برای شروع، ابتدا گزینه 1 را انتخاب کن و نام فایل CSV را وارد کن (یا Enter بزن تا
worldcup_2026_teams.csv بهصورت پیشفرض بارگذاری شود).
name,attack,defense,rank
Argentina,95,92,1
France,94,89,2
...===== Group A =====
1. Brazil: 9 pts, GD +4, GF 7
2. France: 4 pts, GD 0, GF 4
3. Argentina: 2 pts, GD -1, GF 3
4. Japan: 1 pts, GD -3, GF 2
===== FINAL =====
Spain 2-0 England -> برنده: Spain
Champion: Spain
با اجرای گزینهی «شبیهسازی ۱۰۰۰ باره»، درصد شانس قهرمانی هر تیم محاسبه و گزارش میشود.
توضیحات کامل معماری پروژه، دلیل استفاده از کتابخانههای numpy و matplotlib و نمونه
نمودار آماری در فایل WorldCup_Report.pdf موجود است.