Professional Documents
Culture Documents
סיום
אסמבלי
טיפים
קרדיט:
דנה שמחה אבן חיים
עומר דוידי
ברק גונן
Random
הצורך :קוביות משחק ,הטלת מטבע ,ערבוב קלפים ,גלגול רולטה וכדומה.
נדרשת רמת דיוק גבוהה בכל הקשור לסטטיסטיקה מדעית או קריפטוגרפיה.
האם ניתן לייצר מספרים רנדומליים באמצעות המחשב?
מספרים פסאודו אקראיים
מהו גרעין)?(seed
RANDOM
סוגי גרעינים שימושיים:
שעון המערכת
קואורדינטות העכבר
הפרשי זמן בין הקשות מקלדת
קלט משתמש
נתוני ניהול זיכרון
RANDOM - Algorithm
:הגרעין
נקרא את ערך מונה
הטיימר בכתובת
השעון מתעדכן כל 55מילי שניות, 0040:006Ch
אם נרצה ליצור מספרים שונים בפרק
זמן קצר ,לא נקבל גיוון בתוצאות .או :לדוגמה
שמיד נבחין בקשר בין המספרים... -לעשות לבתים שהתקבלו
ביצוע אלגוריתם מתמטי על
פעולת xorעם ביטים
הגרעין
כלשהם מהזיכרון.
לעיתים ,שימוש בקריאת ערך הפיקסל מהמסך יכול להיות מאוד נוח לשימושים
כאלה.
הפיקסל הבא איננו שחור? נפסלתי.
הפיקסל מעט מעל הראש איננו כחול?
נפסלתי/הפיקסל במיקום הבא הוא ורוד? אכלתי!
אנימציה
mov bx, offset pic1 :מה צריך
push bx
פסיקה של שיהוי זמן
call print
call delay
פסיקת הדפסה
mov bx, offset pic2 כל אחת:תמונות שמורות בתיקייה
push bx בפוזיציה שונה
call print
call delay
……
תנועה
איך נזיז תמונה על רקע קבוע?
הבעיה:
אם נדפיס את סופר מריו
במיקום ,X+1
הוא "יימרח" על פני המסך
אפשרויות:
א .להדפיס את כל המסך מחדש ,כאשר סופר מריו במיקום - X+1עלול לגרום לריצוד מסך.
( ואז להדפיס אותו שוב במיקום .X+1 ב .להדפיס ריבוע בצבע הרקע במיקום הישן של סופר מריו )
קוד בתנועה
Move Mario left
proc MoveLeft
push [MarioX]
push [MarioY]
push [MarioWidth]
push [MarioHeight]
push [bgColor]
call PrintBg
add cx, 1
push offset MarioDraw
call PrintLeftMario
ret
endp MoveLeft
MOVEMENT - ADVANCED
איך להזיז תמונה על פני רקע לא אחיד?
שיטת המיסוך
מסיכה: דמות:
בכל ערכי הדמות יש פיקסלים שחורים) (00והרקע שמסביבה הוא לבן)(15 דמות צבעונית שמסביבה יש פיקסלים שחורים )(00
כן
הלולאה הסתיימה?
לא
כן
נריץ לולאה שבודקת אם עברה חצי שנייה. הערך השתנה?
אם פרק הזמן עבר -אז מבצעים משהו )מפילים בלוק( .אם פרק הזמן לא
האם המשחק נגמר?
עדיין לא עבר ,אז מריצים קטע קוד אחר )בדיקה אם השחקן הזיז את לא
הבלוק(.
לא כן
האם הוקש על
המקלדת?
לא נותנים למעבד לחכות עד שהזמן יעבור,
אלא נותנים לו משימות אחרות ובלולאה בודקים אם הזמן עבר. כן
לא
לא
האם טבעה?
כן
אין תיעוד