ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › Phobia קוד מקור
- This topic has 17 תגובות, 4 משתתפים, and was last updated לפני 10 שנים, 8 חודשים by Idan Dor.
-
מאתתגובות
-
22 בפברואר 2014 בשעה 10:44 #76751kirill578משתתף
אז למי שמעוניין לראות איך פוביה הוביל, לפני שכולם עלו עלינו מוזמן להסתכל פה:
https://github.com/kirill578/phobia_codeguru9
לקוד קיימות שלוש גירסות שונות, הגירסה השניה כנראה הטובה ביותר, אך נהצלנו להוריד את רוב הקוד בהרצה אחרונה כדי להימנע מהתקפה חכמה (מה שלא ממש עזר)
השתדל להוסיף במהשך סבר בויקי
23 בפברואר 2014 בשעה 08:49 #77913Idan Dorמשתתףשלום קיריל, רציתי לשאול מה אתם עושים עם הזומבים לאחר
שהישתלטם עליהם.בנסוף לגבי ה "~" שיש לכם בתחילת השם, הבנתי שהוא נותן
לכם להיות מיד אחרי הזומבים אבל לא יותר יעיל להיות0000phobia
וכך אתם מרווחים עוד אופקוד לפני כל דבר שקשור לזומבים ואתם בכל זאת מיד אחריהם.
עידן דור
קבוצת קנגורו
23 בפברואר 2014 בשעה 13:11 #77911kirill578משתתףאחרי שהשטלטנו על הזומבים, הם מגבים את החלק הלולאה של הבדיקה שבא אנחנו רצים רוב הזמן, ואז כותבים אותה כל הזמן בחזרה, הדבר מונע מוות כאשר כותבים עלינו בצורה אנחית.
כאשר הזומבי השני שנפס מגן על שאר הזומבים באותה צורה שאנחנו מגנים על עצמינולגבי הטילדה בשם, זה מאפשר לנו לרוץ ראשונים בכל סיבוב. הסיבה לכך היא לא בגלל שאנחנו מרווחים אופקוד נוסף אלה שאנחנו רצים מייד אחרי הזומבים. (הזומבים תמיד יהיו אחרונים).
כאשר אנחנו רצים אחרי הזומבים וכותבים לנו כל הקוד, הזומבים יתקנו לנו את הקוד רגע לפני שאנחנו מריצים אותו.
שים לב שבמידה ואתה רוצה להריץ את הקוד חיבים להריץ עם עוד 3 קבוצות של שורדים, כך שהסגמנט שהמשותף של הזומבים יהיה 2500
23 בפברואר 2014 בשעה 13:29 #77910Idan DorמשתתףQuote:שים לב שבמידה ואתה רוצה להריץ את הקוד חיבים להריץ עם עוד 3 קבוצות של שורדים, כך שהסגמנט שהמשותף של הזומבים יהיה 2500אוקיי זה מסביר למה זה היה נראה לי שאתם סתם הורגים אותם.
תודה רבה25 בפברואר 2014 בשעה 13:42 #77908ddtמשתתףבשעות האחרונות אני מנסה לכתוב את השורד הראשון שלי.
אפשר לדעת מה המשפט הבא אומר:
"זה מאפשר לנו לרוץ ראשונים בכל סיבוב. הסיבה לכך היא לא בגלל שאנחנו מרווחים אופקוד נוסף אלה שאנחנו רצים מייד אחרי הזומבים. (הזומבים תמיד יהיו אחרונים"
אם הזומבים תמיד יהיו אחרונים? איך אתם רצים מייד אחרי הזומבים? איך אתם רצים תמיד ראשונים בכל סיבוב וגם רצים מייד אחרי הזומבים?
איפה בקוד של המנוע יש את קטע הקוד שמאפשר לכם לעשות את זה?
מה סדר הריצה של השורדים והזומבים בתחרות?"כאשר אנחנו רצים אחרי הזומבים וכותבים לנו כל הקוד, הזומבים יתקנו לנו את הקוד רגע לפני שאנחנו מריצים אותו. "
איזה קוד שלכם הזומבים מתקנים? איך הם עושים את זה?
האם כל הזומבים מתקנים אותו הדבר או כל אחד מתקן משהו אחר?" הדבר מונע מוות כאשר כותבים עלינו בצורה אנחית"
איך עושים דבר כזה? למה זה קורה?"שים לב שבמידה ואתה רוצה להריץ את הקוד חיבים להריץ עם עוד 3 קבוצות של שורדים, כך שהסגמנט שהמשותף של הזומבים יהיה 2500"
לא הבנתי בכלל את המשפט הזה – אפשר להסביר למה התכוונתם כאן?
גם על איזה קוד מדובר? של איזה שורד או זומבי?
איך עושים את החישוב של 2500?28 בפברואר 2014 בשעה 14:19 #77895ddtמשתתףמי שכתב את השורד הזה יכול לענות?
אני עדיין לא מבין מה הוא עושה שם1 במרץ 2014 בשעה 11:06 #77892kirill578משתתףאם הזומבים תמיד יהיו אחרונים?
כןאיך אתם רצים מייד אחרי הזומבים?
אנחנו רצים ראשונים בכל סיבוב, והזומבים אחרונים. כך שאף אחד לא רץ בינינואיך אתם רצים תמיד ראשונים בכל סיבוב וגם רצים מייד אחרי הזומבים?
אחרי השורד האחרון רץ הראשוןאיפה בקוד של המנוע יש את קטע הקוד שמאפשר לכם לעשות את זה?
הנה קטע הקוד שמסדר את השורדים לפני סדר האלף ב', כמובן שטילדה היא לפנות האות a
https://github.com/kirill578/corewars8086/blob/master/corewars8086/src/il/co/codeguru/corewars8086/war/WarriorRepository.java#L79מה סדר הריצה של השורדים והזומבים בתחרות?
לפי סדר האלפבת, ואז הזומביםאיזה קוד שלכם הזומבים מתקנים? איך הם עושים את זה?
בשלב האתחול של הזומבים הם מגבים אצלם באזור הפרטי את תוכל הלולאה ואת קוד הבירחה שלנו. לאחר שלב ההתחול הזומבים מעתיקים את הקוד המגובה למקום בו אנחנו רצים. כל הזומבים מתקנים את אותו קוד, אך במרווח של כמה כתובות בודדות.האם כל הזומבים מתקנים אותו הדבר או כל אחד מתקן משהו אחר?
כל הזומבים חוץ מהזומבי השני מתקנים, הזמבי השני מגן על הזומבים, כאשר הזומבי השני יזה התקרבות לקוד של הזומבים הוא יעתיק את הקוד למקום אחר ויקפיץ את כל הזומבים למקום החדשאיך עושים דבר כזה? למה זה קורה?
כאשר מישהו כותב לנו על הקוד, הזומבים שרצים לפנינו יתקנו את הפגם בקוד לפני שאנחנו נריץ אותולא הבנתי בכלל את המשפט הזה – אפשר להסביר למה התכוונתם כאן?
כאשר המנוע מכין את הזירה הוא מקציב אזורי זיכרון עבור כל השורדים, כאשר כל קטע זיכרון בא לאחר הקטע הקודם. אם תסתכל על הקוד של הזומבים, תראה שהוא לא משמר את הקוד של הסיגמנט המשותף שלהם.
אבל במידה ומריצים 4 קבוצות שורדים שבכל אחת יש 2 שורדים. אז אזור הפרטי של הזומבים יהיה 2500
במידה ותנסה להריץ את את השורד ללא עוד 3 קבוצות כל הזומבים ימותו כי הם ינסו לכתובת 2500 שהי הינה הזיכרון הפרטי במיקרה אחרגם על איזה קוד מדובר? של איזה שורד או זומבי?
השאלה לא ברורהאיך עושים את החישוב של 2500?
פשוט תריץ את המנוע עם עוד 4 קבוצות ותראה מה הערך של האזור הפרטי של הזומבים (בעזרת הדיבגר)2 במרץ 2014 בשעה 02:55 #77887ddtמשתתףלאחר שאתם משתלטים על הזומבים האם אתם משנים את הקוד שלהם כדי שיעשו משהו אחר?
איזה חלק מכל הקוד של הזומבים אתם משתלטים עליו?ראיתי שבאתר כתבו "הסדר בו ישחקו השורדים בכל סיבוב נקבע בתחילת המשחק באופן אקראי, ואינו משתנה במהלכו."
איך זה מסתדר עם מה שאתה כתבת ש:
"אנחנו רצים ראשונים בכל סיבוב, והזומבים אחרונים. כך שאף אחד לא רץ בינינו "
אז זה בג במנוע של התחרות שמישהו אמור לתקן ולא יופיע בתחרות הבאה?ולגבי הזומבים של השנה – היו שישה כאלו
האם כל הזומבים עושים אותו הדבר או שיש להם תפקיד שונה
או שמה שרשמת "כל הזומבים חוץ מהזומבי השני מתקנים, הזמבי השני מגן על הזומבים, כאשר הזומבי השני יזה התקרבות לקוד של הזומבים הוא יעתיק את הקוד למקום אחר ויקפיץ את כל הזומבים למקום החדש "
זה כבר אחרי שהשתלטם עליהם
זה יפה מאוד מה שעשיתם איתם שהם עושים לכם גיבוי כזהמי זכה בתחרות של השנה? מצאתי את השורדים אבל לא ראיתי איפה רשמו
2 במרץ 2014 בשעה 08:57 #77884CodeGuruמנהל בפורוםתודה על התזכורת – עדכנו את הזוכים באתר
http://codeguru.co.il/Xtreme/winners.htm
אם פספסנו משהו (איות של שם, בית ספר או משהו אחר) אנא ספרו לנו ונתקן.2 במרץ 2014 בשעה 12:37 #77883kirill578משתתףלאחר שאתם משתלטים על הזומבים האם אתם משנים את הקוד שלהם כדי שיעשו משהו אחר?
לאחר שאנחנו מגלים את מיקום הזומבים אנחנו מקפיצים אותם לקוד שלנואיזה חלק מכל הקוד של הזומבים אתם משתלטים עליו?
מחליפים את הפקודה האחרונה של הקפיצה לקפיצה אבסולוטית, למקום בוא כל הזומבים שלנו רציםראיתי שבאתר כתבו "הסדר בו ישחקו השורדים בכל סיבוב נקבע בתחילת המשחק באופן אקראי, ואינו משתנה במהלכו."
איך זה מסתדר עם מה שאתה כתבת ש:
"אנחנו רצים ראשונים בכל סיבוב, והזומבים אחרונים. כך שאף אחד לא רץ בינינו "
הדבר היחידי שאני רואה בקוד שהוא אקראי הוא מיקום השורדים בזירה, אשמח אם יתקנו אותי. בכל מקרה באמת זה סוג בעיה שצריך לתקן, אבל אפשר להסתדר איתו.
(אתה מוזמן לנסות לתקן את הבאג בעצמך, ולעשות פולל-ריקויסט בגיט-חאב) (אני משתדל לכתוב בעיברית כדי שלא היה בלגן עם הסדר של המילים)ולגבי הזומבים של השנה – היו שישה כאלו
האם כל הזומבים עושים אותו הדבר או שיש להם תפקיד שונה
—-
הם עושים כמעט אותו הדבר, כל אחד מהם רושם את השארית בחילוק של הכתובת שלו עם המספר המופיע בכתובת
0cXdeh
כאשר איקס הוא המספר של הזומבי
ואת התוצאה של החילוק ניתן למצוא לאחר מספר דפקי שעון בכתובת
0cXddh
כאשר איקס הוא שוב המספר של הזומבי.3 במרץ 2014 בשעה 01:17 #77877ddtמשתתףאיפה רואים בקוד שהזומבים רצים אחרי השורדים?
הייתי שמח לקבל את השורה המדויקת כמו שרשמת למעלה
ואיזה תו הוא תמיד יהיה הכי ראשון?
אני מניח שטילדה כי זה מה ששמו בשם של מי שרצה לנצל את הבג הזה נכון?
או כמה טילדות כדי להיות לפני מישהו ששם טילדה
או הרבה טילדות כדי להיות לפני מישהו ששם כמה טילדות3 במרץ 2014 בשעה 12:13 #77875kirill578משתתףאיפה רואים בקוד שהזומבים רצים אחרי השורדים?
הייתי שמח לקבל את השורה המדויקת כמו שרשמת למעלה
הזומבים נטענים אחרי השורדים למערך, סדר הרצת השורדים הוא כסדר המערך
https://github.com/kirill578/corewars8086/blob/master/corewars8086/src/il/co/codeguru/corewars8086/war/WarriorRepository.java#L109ואיזה תו הוא תמיד יהיה הכי ראשון?
השווה בין מחרוזות בג'ווה מתבצעת ע"י השווה בין ארכי היוניקוד, הערך הכי נמוך של תו ביוניקוד שניתן להדפיס הוא 21 אקסה
שזה סימן קריאה!אני מניח שטילדה כי זה מה ששמו בשם של מי שרצה לנצל את הבג הזה נכון?
כן, אבל בהרצה הסופית לא הייתה לה משמעות כי הרצנו ללא הקוד של הזומבים
התילדה הכפולה הייתה לבדוק אם השורד ששלחנו התקבל (בדיקה ויזואלית שהשם באמת מתחיל בשני תילדות)או כמה טילדות כדי להיות לפני מישהו ששם טילדה
או הרבה טילדות כדי להיות לפני מישהו ששם כמה טילדות
—
עדיף לתקן את הבאג ולסגור את הסיפור4 במרץ 2014 בשעה 22:23 #77871CodeGuruמנהל בפורוםכמו שקיריל אמר – הכי פשוט לתקן את המנוע כך שיבחר סדר הרצה מקרי בכל פעם.
באותה הזדמנות אפשר גם להפוך את סדר ריצת התחרות למקרי כדי למנוע את היתרון הזמני שניתן לשמות הראשונים בכך שהם מורצים קודם; כך גם אפשר יהיה להריץ בלא חשש אלף ריצות ובכל נקודה שנעצור את הריצה היא תהיה הוגנת.מי מתנדב להרים את הכפפה ולהציע לדני תיקון למנוע?
5 במרץ 2014 בשעה 13:31 #77870Idan Dorמשתתףהאם סדר ההרצה המקרי יהיה מקרי לחלוטין או שבאותה קבוצה תמיד שורד מספר 1 יהיה לפני 2 כי אם זה לא ישמר המון שורדים מהעבר ישברו ויהיה יותר מסובך לתקשר בין השורדים באותה קבוצה…
בכל מקרה צריך להחליט תושבה לשאלה זו6 במרץ 2014 בשעה 05:07 #77865ddtמשתתףלגבי מה שקבוצת CGX רשמו
באותה הזדמנות אפשר גם להפוך את סדר ריצת התחרות למקרי
לא הבנתי
יש שתי בעיות של מקריות שצריך לתקן? -
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.