HutsHuts

עמוד

התגובות שלי בפורום

מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • מאת
    תגובות
  • בתגובה ל: על CALL FAR וחולשתו #78365
    HutsHuts
    משתתף

    1. הקוד שלך גם לא התקמפל לי, איזה אסמבלר השתמשת?
    2. בקשר ל REPE SCASW
    זה אכן יהיה מהיר יותר, אבל בשורד שלנו החלטנו לשים את הדגש יותר על פגיעות הקוד, ופחות על מהירות השורד.
    לשורד שלנו 2 שדות בגודל 2 בתים, וכל 100 תורות בערך השורד מבצע בהם בדיקה האם השתנו…
    צריך לזכור שלהיות מהיר יותר זה לא בהכרח טוב יותר
    בלופ הראשי, בו השורד בודק את השדות עד לשינוי אחד מהם, פגיעות השורד היא בערך 1.1 בתים
    אולם לאחר הפגיעה באחד השדות, השורד עובר ללולאת ההריגה של ה CALL FAR
    ושמה, פגיעות השורד היא כ-20 בתים ולכן אין מה למהר…
    אם תריץ את השורד שלך נגד הרבה שורדים הכותבים
    CALL FAR לא רציף
    תגלה שהשורד לא יהיה חזק ואף יפסיד בהרבה
    השורד שלנו איטי ולכן אם תריץ נגד שורדים המשתמשים ב CALL FAR
    ומעתיקים את עצמם מהר לדוגמא כל 256 פקודות, השורד לא יספיק להרוג אותם לעולם
    זה כמובן היה החשש שלנו וזו הסיבה שלא שלחנו את השורד המקורי כבר בהתחלה

    בתגובה ל: על CALL FAR וחולשתו #78368
    HutsHuts
    משתתף

    לא בדיוק, השם הוץהוץ נוצר למעשה במשחק ארץ עיר. אחד מחברי הקבוצה היה צריך לחשוב על חיה באות ה' ולא הצליח, אז הוא פשוט המציא כזו וקרא לה "הוץהוץ".

    אבל גם הפרוש שלך מקורי…

    בתגובה ל: על CALL FAR וחולשתו #78373
    HutsHuts
    משתתף

    קוד המקור זמין להורדה בקישור:
    http://www.sendspace.com/file/layuvv

    בתגובה ל: על CALL FAR וחולשתו #78374
    HutsHuts
    משתתף

    לאחר שעות רבות של עבודה וכתיבת הערות, צוות הוץהוץ גאה להציג את קוד המקור השורד HutsHuts בגרסאתו שלאחר העדכון (ניתן לקימפול בעזרת האסמבלר a86 שמופיע באתר).

    כמה הערות לגבי השורד:
    1. האנגלית שלנו סבירה, אבל לא מדהימה, מצטערים על שגיאות הכתיב והתחביר.
    2. השורד במתכונתו המופיעה כאן אינו זהה לגמרי שורד שנשלח בתחרות. בתחרות היו אלה שני שורדים שהעתיקו כל אחד את מחצית הקוד לסגמנט המשותף כדי לבצע העתקה מהירה יותר. בנוסף לכך, גרסה זו כתובה בצורה ידידיותית יותר מאשר הגרסה המקורית (כדי להקל על הבנתה).
    3. ניסינו ככל האפשר להסביר כל פעולה ושורה בקוד בעזרת תיעוד, אבל עדיין קשה מאוד להבין אותו, בהצלחה!
    4. ד"א, יש גם שורדים שמשתמשים בcallfar ועדיין מנצחים את השורד הזה, תשברו ת'ראש לבד (לא רק bimp ו-cannon)

    להלן הקוד המתועד:

    בתגובה ל: על CALL FAR וחולשתו #78375
    HutsHuts
    משתתף

    יש לבדוק זאת CALL FAR כיוון שלא ניתן להניח שכל נקודה במסך הותקפה ע"י

    תחילה הבהרה קצרה,
    אם נכתוב באמצעות הפקודה STOSW
    ES:DI יכתב לתוך AX
    אך הכתובת האמיתית השמורה במחשב תהיה:
    ES*10+DI

    הוא 1000 CS ערכו ההתחלתי של
    (בהקסדצימלי)
    לכן כדי שהכתובת שאנו קוראים תהיה הגיונית, הכתובת השמורה במחשב צריכה להיות בין 10000 לבין 20000 כלומר
    כלומר ספרת העשרות אלפים צריכה להיות 1

    יש לשים לב שחייבת להתבצע בדיקה, אחרת השורד ינסה לתקוף מקום שלא בזירה, ויעוף

    ולבסוף השורד:

    mov bx,ax
    inc cx
    @loop:
    add bx,9
    les di,[bx]
    ;es,di gets the value in bx
    sub di,2
    mov dx,es
    mov ax,010h
    mul dx
    ;dx:ax equals to 10*es
    add ax,di
    ;now if the carry flag is true if ax+di>10000
    jnc @glisha
    inc dx
    @glisha:
    ;checks if 10000<es*10+di<20000
    cmp dx,1
    jne @loop
    @sa:
    mov ax,0CCCCh
    stosw
    jmp @loop

    שני הקבצים קומפלו באמצעות A86

    זוהי הגרסה הראשונית ביותר לשורד הוצהוץ, השורד מכיל עוד כמה אסטרטגיות שיוסברו בהמשך

מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)