راکت

ایجاد براکت بندی با لاراول

11 پاسخ

سلام دوستان
برای ایجاد براکت بندی با لارول به صورت زیر:
براکت بندی

کسی ایده ای داره که چجوری میشه این براکت ها رو داینامیک کرد؟ فرانتش رو پیاده سازی کردم اما مشکلم اینه که مثلا ادمین توی پنل بتونه توی دور اول تیم ها رو مشخص کنه و سر جاهاشون بنویسه و حالا اطلاعاتی که نیازه مثل زمان برگزاری و اینها رو مشخص کنه
و بعدش توی هردور تیم برنده رو مشخص کنه (مثلا یه چک باکس باشه که هرتیمی که برنده شد براش تیک بزنه) و سیستم خودش این تیم رو بندازه توی براکت مرحله بعدی و تیم های برنده به هم بخورن.
متاسفانه هیچ ایده ای برای داینامیک کردنش ندارم و ممنون میشم راهنمایی کنید.
@hosseinshirinegad98 @mohsenbostan @milad @hesammousavi @TimeRunner2359 @forughi.vahid @ali.bayat @arian

ثبت پرسش جدید

پاسخ‌ها

11
محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

سلام در مورد دیتابیست بیشتر توضیح بده ؟ برای هر تیم یک کلاس در نظر گرفتی ؟ یا یک جدول توی دیتابیست به هر تیم اختیار داره چطوریه؟

جواد کرمی
جواد کرمی
@javadkarami

تخصص: توسعه دهنده وب و اپلیکیشن | فرانت اند

@mohsen.mehri6101
یه جدول برای تورنومنت داریم. شامل قیمت برای ثبت نام و بقیه مشخصات.
یه جدول برای تیم ها داریم. هرکس که توی تورنومنت ثبت نام میکنه اسم تیم و آیدی هم تیمی هاش رو وارد میکنه و بعد از اعتبار سنجی و پرداخت هزینه، توی جدول تیم، اسم اون تیم به همراه تورنومنت آیدی مربوطه ذخیره میشه
توی یک جدول دیگه آیدی تیم و آیدی بازیکنانی که توی اون تیم حضور دارن دخیره میشن. به این صورت تیم کشی ها کامل انجام میشه.
حالا هر تورنومنت شامل تعدادی مسابقه میشه تا اینکه قهرمان تورنومنت مشخص بشه.
از اینجا به بعد رو نمیدونم باید با چه روشی پیاده کنم:
اینجا قراره توی پنل مثلا همچین براکتی وجود داشته باشه(که اینجا یه مشکل اینه که براکت چجوری با توجه به تعداد تیم ها مثلا 32تیم یا 64تیم به صورت خودکار تشکیل بشه) توی مرحله اول جای تیم ها select box باشه که ادمین تیم هارو سر جاشون بچینه و اطلاعات مسابقه مثل زمان مسابقه رو وارد کنه(که به صورت خودکار زمان مسابقه و آی پی سرور برای اعضای تیم ارسال میشه که این قسمتش کاری نداره)
بعد از اتمام هر مسابقه هم ادمین نتیجه رو وارد میکنه و تیم برنده رو مشخص میکنه و سیستم اون تیم رو توی براکت میبره مرحله بعد.

شاید پاسخ شما همین‌جا باشد

محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

خب عزیز همین نتایج رو ادمین توی کدوم جدول وارد میکنه ؟؟
به نظر من یک جدول در نظر بگیر به نام مسابقه (race)
توی هر رکورد این جدول که شامل فیلد های زیر باشه

  1. تیم اول ( id اش)
  2. تیم دوم("")
  3. تیم برنده(")
  4. تعداد گل تیم اول
  5. تعداد گل تیم دوم
  6. کلید خارجی تونومنت
  7. و تمام اطلاعات مربوط به یک بازی ( شامل ساعت بازی ، تعداد خطا و ... هر چی که میخای)
    یک جدول داریم که تمام تیم ها توش ذخیره شده
    یک جدول رابط باید بین تورنومنت و جدول تیم هات باشه که توی اون مشخص باشه هر تیم توی کدوم تورنومنت حضور داره
    بعدش به صورت رندوم هر تیمی رو توی یک تورنومنت گذاشتی که هر تورنومنت شامل 32 تیمه
    حالا دوباره به صورت رندوم تیم ها رو به صورت جفتی انتخاب میکنی و توی جدول مسابقه ذخیره میکنی
    بعد از اینکه معلوم شد کدوم تیم ها برنده شدن با فیلتر کردن جدول مسابقه با فیلد "تیم برنده" تیم های برنده به دست میاد
    باز اینا رو جفت جفت توی همین جدول مسابقه ذخیره میکنی
محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

یک فیلد هم در نظر بگیر که بازی انجام شده، یا انجام نشده رو مشخص میکنه
سپس با متد chunck میتونی توی هر ستون اونا رو فیلتر کنی به تعداد و نمایش بدی به ترتیب
از اونجایی که id به صورت مرتب تولید میشه مشکلی پیش نمیاد
البته همه این مفروضات در این حالت که هر تورنومنتت فقط 32 تا تیم داشته باشه ، میشه راحت با این روش پیاده سازیش کرد، هر چند برای نوع های دیگه اش هم همین میشه
اینجا نمیشه بهتر از این توضیح داد بازم خواستی بیشتر توضیح بده تا منم بتونم بیشتر کمکت کنم

جواد کرمی
جواد کرمی
@javadkarami

تخصص: توسعه دهنده وب و اپلیکیشن | فرانت اند

@mohsen.mehri6101
خب با این روش که گفتید که جدول مسابقات رو اینطوری بسازیم که آیدی تیم اول و دوم و بقیه موارد، توی این حالت ادمین درواقع باید برای هر دو تیم باید یکبار اون مسابقه رو بسازه. بعد به فرض یه تورنومنت 32 تیم داره، یه تورنومنت 64، یکی 128 تیم حتی
چجوری براکت ها براساس تعداد تیم ساخته میشه خود به خود؟
براکتی که عکسش رو فرستادم رو درنظر بگیر. فکر کن کلا خالیه و تازه میخوایم تورنومنت رو برگذار کنیم. اینجا ادمین میاد توی لول اول براکت توی هرخونه select box رو باز میکنه و تیم ها رو انتخاب میکنه و اینطوری تیم ها چیده میشن توی خونه های براکت. کنار هرخونه مثلا یه دکمه هست که میزنی یه modal باز میشه ساعت مسابقه و بقیه موارد هم وارد میشه. حالا دکمه ثبت رو میزنیم و باید تمام این اطلاعات توی دیتابیس ثبت بشه. مثلا جدول race رو به اینصورت با یه دکمه باید ثبت کنیم
id | team_id1 | team_id2 | time | status | ...
سوال اینه که با چه متدی باید تمام اطلاعاتی که توی تک تک خونه ها وارد کرده رو بگیریم و همرو یه جا به این صورت توی سطر های مختلف ثبت کنیم؟
برای بهینه تر شدن کدها، مسلما نباید 32 بار یه کد رو تکرار کنیم که برای هر خونه اطلاعات بگیریم.

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

سلام دوست عزیز برای جواب گرفتن منو تگ کرده بودین میبخشین نتونستم جوابی به سوال شما بدم امیدوارم که تو مسیرکاری تون موفق باشین.@javadkarami

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

درود...
پیوند زیر:
GOJS

جواد کرمی
جواد کرمی
@javadkarami

تخصص: توسعه دهنده وب و اپلیکیشن | فرانت اند

@endworld
سلام
لینکی که فرستادید فکر میکنم مربوط به پیاده سازی سمت فرانت این قضیه هست که من توش مشکلی ندارم
مشکل من نحوه پیاده سازی سمت سروره که هیچ ایده ای براش ندارم.

جواد کرمی
جواد کرمی
@javadkarami

تخصص: توسعه دهنده وب و اپلیکیشن | فرانت اند

@hosseinshirinegad98 سلام خواهش میکنم ممنونم از توجهتون🙏

وحید
وحید
@forughi.vahid

تخصص: Fullstack

@javadkarami
سه تا موجودیت دارید ،
تیم ها : آیدی ، نام و ...
تورنمنت ها : آیدی ، تعداد تیم ها و ...
مسابقات : آیدی ، تورنمنت ، تیم 1 ، تیم 2 ، برنده و ...
هر تورنمنت میتونه چند مسابقه داره و و هر مسابقه فقط توی تورنمنت مشخصی هست ، پس یه رابطه یک به چند داریم.
هر مسابقه یه تیم اول داره یه تیم دوم داره و یه تیم برنده ، سه تا رابطه یک به چند.
میتونید با یه json کل اطلاعات رو بفرستید سمت سرور ، مثلا متد پست domain.com/api/tornoments/5

Matchs: [
    { team_id1: 11, team_id2: 7, ... },
    { team_id1: 1, team_id2: 8, ... },
    { team_id1: 3, team_id2: 9, ... },
    { team_id1: 2, team_id2: 12, ... },
    ...
]

سمت سرور اطلاعات رو ذخیره میکنید

$tornoment->matchs()->create(json_decode($request->matchs))

برای تیم برنده و ویرایش مسابقه , هم میتونید یکی یکی ذخیره کنید روی api مسابقات یا اینکه روی متد پوت همین api تورنمنت اطلاعات رو بروز کنید

foreach($json_decode($request->matchs) as $match){
    Match::update($match)
}
محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

سلام از Collection ها توی لاراول استفاده کن

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام