ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › הצעה למימוש האצת הזמן
- This topic has 0 תגובות, משתתף 1, and was last updated לפני 18 שנים, 11 חודשים by DL!.
-
מאתתגובות
-
31 בדצמבר 2005 בשעה 03:46 #77146DL!משתתף
שלום!
בהמשך מפורטת הצעה למימוש נושא "האצת הזמן" בקודגורו אקסטרים הקרוב.
אתם מוזמנים להעיר הערות, או להעלות הצעה אלטרנטיבית.
ניסיתי לשמור על העקרונות הבאים:- לא להשפיע על המשחק יותר מדי: מקסימום האצה היא "כפול2", לא משהו מופרע לגמרי.
- ככל שההאצה הנוכחית גבוהה יותר, צריך להשקיע יותר משאבים כדי להגדיל אותה עוד, ולא לינארית.
- אם מפסיקים להשקיע, ההאצה דועכת.
- אפשר להגיע למצב של האצה קבועה נתונה, למשל "כפול1.5" לאורך כל המשחק.
לא להבהל… זה טיפה מסובך.
____________________________________________טרמינולוגיה:
סיבוב – הרצה מחזורית של כל השורדים, לפחות אופקוד אחד מכל שורד.
תוספת זמן – הרצת אופקוד נוסף של שורד ספציפי, בסיבוב ספציפי.
לדוגמא:
בסיבוב אמיתי מס' 73 של תחרות מסויימת השורדים הראשון והשני מקבלים תוספת זמן, ולכן המנוע מריץ שני אופקודים שלהם. השורד השלישי לא מקבל תוספת זמן, ולכן המנוע מריץ אופקוד אחד בלבד שלו.
____________________________________________
אלגוריתם:
לכל שורד יהיה אוגר וירטואלי נוסף (בלתי נגיש ישירות) בשם "אנרגיה", בגודל 16 ביט.
הערך ההתחלתי של האוגר יהיה 0, ובכל מקרה כל 5 אופקודים המנוע יחסיר 1 מערכו. אם היה אפס, ישאר אפס.
רצף של 4 בתים שהיום מייצגים אופקוד לא חוקי יוגדרו במנוע כאופקוד ייעודי בשם
NRG
כל קריאה לאופקוד תוסיף 1 לאוגר האנרגיה.
בכל סיבוב תחושב "מהירות" השורד עפ"י הנוסחא הבאה:
Speed = log2(Energy) + 1
אם ה"אנרגיה" היא אפס, גם המהירות תוגדר לאפס. בכל מקרה המהירות תהיה בתחום 0-10.
"מהירות השורד" תשמש לקבוע האם השורד יקבל תוספת זמן-
נניח המהירות היא 5, המשמעות תהיה שבסיכוי 50% המנוע יריץ אופקוד נוסף של השורד.בשורה התחתונה, בכל סיבוב המנוע יריץ לפחות אופקוד אחד של כל שורד, ולכל היותר שני אופקודים של כל שורד.
____________________________________________שאלה: למה להכניס אקראיות לעניין? למה שהמנוע לא יקבע בצורה דטרמיניסטית האם שורד מסויים יקבל תוספת זמן?
תשובה: נניח שמהירות השורד היא 5, ז"א המנוע אמור להריץ 1.5 אופקודים שלו… בעיה! פתרון אפשרי יכול להיות לתת לשורד תוספת זמן פעם בשני סיבובים באופן דטרמיניסטי (נניח כל סיבוב זוגי), אבל כיוון שמהירות השורד יכולה להשתנות בינתיים – יהיה קשה יותר לחזות מה בדיוק יקרה.
-
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.