محدودیتها
محدودیتهایی که محل قرارگیری درسها را تعیین میکنند، نحوه افزودن آنها، مفهوم واقعی وزن و اهمیت ترتیب لیست.
کلاسها مشخص میکنند چه چیزی باید تدریس شود. محدودیتها مشخص میکنند کجا میتواند قرار گیرد: این استاد روز جمعه در دسترس نیست، آن آزمایشگاه فقط میتواند یک کلاس را در یک زمان برگزار کند، این درس نباید آخرین کلاس روز باشد.
آنها به دو بخش تقسیم میشوند، زیرا FET آنها را به عنوان دو مشکل جداگانه در نظر میگیرد. محدودیتهای زمانی مربوط به زمان هستند. محدودیتهای مکانی مربوط به مکان هستند.

دو قانونی که شما ننوشتهاید
هر برنامه درسی دو محدودیت را در خود دارد که آن را ایجاد نکرده است: یک قانون اجباری اساسی برای زمان و یکی برای مکان. آنها پایه و اساس هستند — هیچ استاد یا گروه دانشجویی در دو مکان به طور همزمان، هیچ اتاقی دو بار رزرو نشده باشد.
FET آنها را الزامی میداند، بنابراین همیشه با وزن کامل هستند و نمیتوان آنها را غیرفعال کرد. آنها در لیست با عنوان الزامی ظاهر میشوند، با کلید فعالسازی قفل شده.
وزن، کل ایده است
هر محدودیت دیگری دارای وزنی بین ۰ تا ۱۰۰ است. شما میتوانید این عدد را برای برخی از انواع انتخاب کنید و برای برخی دیگر نه — قانون در ادامه این صفحه توضیح داده شده است.
۱۰۰٪ سخت است. باید رعایت شود. اگر نتواند، برنامه درسی وجود نخواهد داشت.
زیر ۱۰۰٪ یک ترجیح است، و وزن آن نشاندهنده میزان اهمیت شما به آن است. یک قانون با ۹۵٪ رعایت خواهد شد مگر اینکه رعایت آن چیز دیگری را غیرممکن کند؛ یک قانون با ۴۰٪ یک تلنگر است. این چیزی است که به یک برنامه اجازه میدهد خوب باشد تا صرفاً قانونی — شما میتوانید بیان کنید ترجیح میدهم نه، اما اگر مجبور باشم انجام میدهم، که نحوه کار مدارس واقعی است.
لیست هر ردیف را دقیقاً بر این اساس سخت یا نرم برچسبگذاری میکند، و شما میتوانید لیست را بر اساس محدوده وزن فیلتر کنید تا هر چیزی را که سخت کردهاید، یا هر چیزی را که به عنوان یک آرزو باقی گذاشتهاید، پیدا کنید.
اکثر انواع محدودیتها اصلاً نمیتوانند وزندهی شوند. FET لیستی از انواع را که میتوانید آزادانه وزندهی کنید، نگه میدارد و هر نوعی را که در آن لیست نباشد رد میکند.
⛔ این یک تشریفات نیست. FET این مقدار را دو بار رد میکند: گفتگوی خود آن آن را ذخیره نمیکند، و مولد آن قبل از شروع متوقف میشود. فایلی که یکی از این انواع را زیر ۱۰۰٪ داشته باشد، برنامه درسی بدتری به شما نمیدهد. بلکه هیچ برنامهای به شما نمیدهد.
ویرایشگر فیلد وزن را برای آن انواع غیرفعال میکند و دلیل آن را به شما میگوید. بنابراین نمیتوانید عددی را تایپ کنید که FET آن را رد کند.
دو مورد دیگر ۱۰۰٪ را اجباری میکنند:
- قوانین اجباری بالا
- یک قانون اتاق ترجیحی برای یک اتاق مجازی که به اتاقهای واقعی خاصی پین شده است — این یک الزام خود FET است. این مورد به محتوای قانون بستگی دارد، نه به نوع آن، بنابراین با ویرایش لیست اتاقها تغییر میکند.
یک نکته ظریف صادقانه وجود دارد. فایلی که از FET وارد شده است هرگز تنظیم نمیشود، حتی اگر یکی از آن قوانین را با وزن کمتر از کامل داشته باشد. بازنویسی بیصدا فایل شخص دیگری، قول اینکه آنچه وارد میشود همان خارج میشود را زیر پا میگذارد. بنابراین لیست وزنی را نشان میدهد که ذخیره شده است، با دلیلی که به عنوان راهنما (tooltip) نمایش داده میشود، به جای اینکه عددی را به شما نشان دهد که در فایل نیست.
افزودن یک مورد
افزودن یک انتخابگر از هر نوع محدودیتی که FET پشتیبانی میکند را باز میکند، که بر اساس دستهبندی گروهبندی شده و قابل جستجو است. تعداد زیادی وجود دارد، و جعبه جستجو راه حل است — room، یا gap، یا consecutive را تایپ کنید و ببینید چه چیزی وجود دارد.
انتخاب یک نوع، ویرایشگر آن را باز میکند، که از تعریف خود آن نوع ساخته شده است، بنابراین فیلدهایی که دریافت میکنید، فیلدهایی هستند که آن نوع واقعاً دارد. در کنار آن یک پنل راهنما وجود دارد که توضیح میدهد محدودیت چه کاری انجام میدهد. خواندن آن ارزشمند است: نام محدودیتها مختصر هستند، و چندین نوع نزدیک به هم هستند که در یک جنبه مهم تفاوت دارند.
جایی که یک محدودیت به اسلاتهای زمانی نیاز دارد، شما لیستی را پر نمیکنید — شما یک جدول روزها × ساعتها دریافت میکنید و روی خانهها کلیک میکنید. تعداد کمی از انواع به مجموعههایی از اسلاتها نیاز دارند به جای یک انتخاب؛ اینها به شما یک جدول واحد میدهند که در آن هر خانه به یک مجموعه شمارهگذاری شده رنگآمیزی میشود، بنابراین میتوانید مجموعهها را در مقابل یکدیگر ببینید به جای اینکه چندین لیست را در کنار هم نگه دارید.
همه کلاسها، یا فقط برخی؟
این موضوع افراد را گیج میکند، و ارزش دارد که به وضوح بیان شود: در بسیاری از انواع محدودیتها، فیلدهایی که نام استاد، درس یا گروه را مشخص میکنند، تعیین نمیکنند چه کسی تحت تأثیر قرار میگیرد — آنها تعیین میکنند که قانون به کدام کلاسها نگاه میکند.
آنها یک فیلتر بر روی کلاسها هستند، نه یک هدف. خواندن یک فیلد فرم به عنوان این قانون در مورد آقای اسمیت است در حالی که به معنای کلاسهای مربوط به آقای اسمیت را در نظر بگیرید است، منجر به قوانینی میشود که بیصدا کاری انجام نمیدهند. پنل راهنمای هر نوع مشخص میکند که کدام یک است.
ترتیب
لیست دارای یک ترتیب است، و این تزئینی نیست: این ترتیبی است که محدودیتها در فایل خروجی نوشته میشوند.
ردیفها را با دستگیره آنها بکشید تا مرتب شوند، یا از مرتبسازی الفبا برای الفبایی کردن کل بخش و ذخیره آن استفاده کنید. کشیدن فقط زمانی ارائه میشود که شما در حال مشاهده لیست کامل به ترتیب طبیعی آن هستید — در حالی که یک جستجو، مرتبسازی یا فیلتر آن را محدود میکند، موقعیتی که به آن میکشید بیمعنی خواهد بود. قوانین اجباری توسط FET مدیریت میشوند و هرگز جابجا نمیشوند.
تغییر ترتیب قابل بازگرداندن است.
کار با یک لیست طولانی
این بخش دارای یک نوار دستهبندی، یک جعبه جستجو، یک فیلتر فعال/غیرفعال و نوار لغزنده محدوده وزن است. با استفاده از آنها معمولاً میتوانید از مشکلی در جمعه وجود دارد به چند قانونی که به آن اشاره میکنند برسید.
انتخاب ردیفها به شما امکان میدهد تا در یک عمل فعال، غیرفعال، وزندهی یا حذف کنید. غیرفعال کردن مورد مفید است — این کار قانون و تنظیمات آن را حفظ میکند در حالی که آن را از بازی خارج میکند، که روشی است برای آزمایش اینکه آیا یک قانون چیزی است که برنامه درسی شما را غیرممکن میکند.
هر محدودیت در یک عمل گروهی به صورت مستقل مجاز است. کسی که از طریق یک پیوند اشتراکگذاری محدود کار میکند، آنچه را که مجاز به تغییر آن است، تغییر میدهد و بقیه دستنخورده باقی میماند به جای اینکه کل عمل با شکست مواجه شود. تغییر وزن گروهی همچنین هر چیزی را که از جابجایی آن خودداری کرده است، نام میبرد.
بالای لیست، ویرایشگران یک خلاصه یک خطی قبل از اجرا دریافت میکنند. اگر گزارشی از یک تضاد مسدودکننده بدهد، این یک اثبات است تا یک هشدار، و ارزش دارد قبل از ادامه کار آن را پیگیری کنید.