جواد کرمی
4 سال پیش توسط جواد کرمی مطرح شد
11 پاسخ

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

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

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


ثبت پرسش جدید
محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

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


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 4 سال پیش مطرح شد
0

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


محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

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

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

محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

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


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 4 سال پیش مطرح شد
0

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


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش آپدیت شد
0

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


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 4 سال پیش مطرح شد
0

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


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 4 سال پیش مطرح شد
0

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


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 4 سال پیش مطرح شد
1

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


وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش آپدیت شد
0

@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)
}

محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

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


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

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