15-10-2006, 18:27
|
|
|
חבר מתאריך: 21.04.06
הודעות: 55
|
|
(כמעט) סיימתי!! :)
בזכותכם ורק בזכותכם!
אני מעריכה מאוד מאוד את התמיכה שלכם, השקעת הזמן וכו'- אין עליכם!!
למה כתבתי בכותרת "כמעט"?
בגלל הבג שהזכרתי בשרשור קודם..
היו לי כמה באגים בעניין הבדיקה אם מתקיים ניצחון- את כולם (נראה לי..) מצאתי ותיקנתי מלבד אחד שאני בהחלט לא מבינה מה גורם לו.
בדיקת הנצחון מחולקת לשלוש בדיקות- אם יש ניצחון בשורה, בעמודה או באלכסון.
התקלה שלי נמצאת בבדיקה האם קיים ניצחון בעמודה.
על העמודה הראשונה והשניה הוא עובד טוב מאוד.
לבדיקה של העמודה השלישית הוא נכנס שוב ושוב (כמו לולאה אינסופית) וגורם להפסקת ההרצה.
הנה הטבלה שוב (תיקנתי שהשמות של התאים מול המערך יהיו מקבילים- שניהם מתחילים מ-0):
6 3 0
7 4 1
8 5 2
הקוד שבודק ניצחון בעמודה הוא:
קוד:
for (i=0;i<=6;i+=3){
if (Status[i]==Status[i+1] and Status[i]==Status[i+2] and Status[i]!=0){
_root.wiener(tor,i,i+1,i+2);
}
}
יש פה:
שלוש כניסות ללולאה, כאשר I קופץ בשלוש. (כדי שתיהיה גישה לראשי העמודות:0,3,6).
כל כניסה מתבצעת בדיקה האם המקום הI שווה למקום שאחריו ושאחרי אחריו ושונה ממצב מובי קליפ התחלתי: מצב0. (ה"מקום" הוא במערך שמסמן איזה סוג חייל נמצא בתא..).
אם נמצא שאכן הנ"ל מתקיים- הוא קורא לפונקצית ההצהרה על הניצחון (זו מהשרשור הקודם).
כמו שאמרתי- הבג שלי נמצא כאשר I=6. כשהוא שווה 3 או 0 אין כל בעיה...
איפה לדעתכם טמונה התקלה?
רק זה נשאר כדי שהמשחק יעבוד 100%.
נ.ב
הבדיקה של ניצחון בשורה, עמודה או אלכסונים מתבצעת כשעוזבים לחיצה:
קוד:
_root.onMouseUp = function() {
נערך לאחרונה ע"י U did it בתאריך 15-10-2006 בשעה 18:32.
|