Skip to content

Repository files navigation

⚽ شبیه‌ساز جام جهانی 2026 | World Cup 2026 Simulator

شبیه‌ساز شیءگرا (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 numpy

🚀 نحوه اجرا

python worldcup_simulator.py

پس از اجرا، منوی زیر نمایش داده می‌شود:

=====شبیه ساز جام جهانی=====
1) بارگذاری تیم‌ها از فایل CSV
2) انجام قرعه‌کشی گروه‌ها (سیدبندی خودکار)
3) اجرای مرحله گروهی و نمایش جدول هر گروه
4) اجرای کامل جام (گروهی + حذفی) و نمایش قهرمان
5) شبیه‌سازی 1000 باره و گزارش درصد قهرمانی
6) نمایش براکت حذفی آخرین شبیه‌سازی
7) خروج

برای شروع، ابتدا گزینه 1 را انتخاب کن و نام فایل CSV را وارد کن (یا Enter بزن تا worldcup_2026_teams.csv به‌صورت پیش‌فرض بارگذاری شود).

📄 فرمت فایل 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 موجود است.

About

شبیه‌ساز جام جهانی ۲۰۲۶ - پروژه درس برنامه‌سازی پیشرفته

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages