לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #18  
ישן 09-07-2006, 18:41
צלמית המשתמש של EvyatarBH
  EvyatarBH EvyatarBH אינו מחובר  
 
חבר מתאריך: 13.05.02
הודעות: 8,468
מידע טוב, לאור המגבלות וחוסר זמן, אני לא אשתתף באתגר, אבל...
בתגובה להודעה מספר 1 שנכתבה על ידי danben שמתחילה ב "אתגר - ביקשתם. קיבלתם."

אני כן אציג את האופן בו מימשתי שתי פונקציות עיקריות - בדיקת רצף של שלושה סימנים ובדיקה אם הלוח מלא.
יש לציין שהכנתי את זה בג'אווה עם משטח לחצנים בגודל NXN כאשר האיקס והעיגול הם כיתוב על גבי הלחצנים.
אחרי ההבהרה הזו -





קוד:
//Main engine - check if 3 buttons in a row got same caption boolean seriesCheck (){ boolean win=false; for (int x=0;x<boardSize;x++){ for (int y=0;y<boardSize;y++){ String XorO=btnArray[x][y].getLabel(); if (XorO!="") { //Horizontal if(x-1>=0 && XorO==btnArray[x-1][y].getLabel() && x+1<boardSize && XorO==btnArray[x+1][y].getLabel()) win=true; //Vertical if(y-1>=0 && XorO==btnArray[x][y-1].getLabel() && y+1<boardSize && XorO==btnArray[x][y+1].getLabel()) win=true; //Diagonal1 if(x-1>=0 && y+1<boardSize && XorO==btnArray[x-1][y+1].getLabel() && x+1<boardSize && y-1>=0 && XorO==btnArray[x+1][y-1].getLabel()) win=true; //Diagonal2 if(x+1<boardSize && y+1<boardSize && XorO==btnArray[x+1][y+1].getLabel() && x-1>=0 && y-1>=0 && XorO==btnArray[x-1][y-1].getLabel()) win=true; } } } return win; } //Check if board is full = round over and nobody won boolean allFullCheck (){ boolean draw=false; int counter=0; for (int x=0;x<boardSize;x++){ for (int y=0;y<boardSize;y++){ String XorO=btnArray[x][y].getLabel(); if (XorO=="")counter++; } } if (counter==0) draw=true; return draw; }




בתקווה שזה ברור מספיק.
בהצלחה לכולם!
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #19  
ישן 10-07-2006, 18:57
  danben danben אינו מחובר  
 
חבר מתאריך: 19.06.03
הודעות: 549
חוו"ד
בתגובה להודעה מספר 18 שנכתבה על ידי EvyatarBH שמתחילה ב "טוב, לאור המגבלות וחוסר זמן, אני לא אשתתף באתגר, אבל..."

הפונקציה שבודקת אם הלוח מלא - קצת עקומה לטעמי.
מעבר לעובדה שאני לא בטוח שהיא חיונית ללוח (למה הלוח צריך לדעת אם הוא מלא או לא?!), היא נעשית בצורה קצת מוזרה.
1) אתה מבצע סריקה של כל הלוח וסופר כמה משבצות לא ריקות
2) אם מונה המשבצות הריקות שלך הוא 0 אתה מחזיר אמת אחרת אתה מחזיר שקר.

למה אתה צריך לספור בכלל?! למה אתה צריך להמשיך את הסריקה ברגע שהגעת למשבצת ריקה(הלוח לא מלא)?
מעבר לזה, אם הלוח מלא זה לא אומר שיש תיקו.
X|X|X
====
O|O|X
====
X|O|O
(הלוח מלא ו X מנצח).
אתה יכול לחסוך את הבדיקה הזו של הלוח ע"י זה שאתה פשוט סופר כמה סיבובים שוחקו...

את המימוש של הפונקציה הזאת, אם בכלל הייתי ממש אותה, הייתי ממש באופן הבא:
1) עבור X =1...N
2) עבור Y = 1...N
3) אם משבצת X,Yריקה החזר FALSE
4) החזר TRUE (אם הגעת לפה - לא היתה משבצת ריקה).

לגבי הפונקציה שבודקת האם קיים ניצחו אני מעדיף בשלב זה לא להגיב.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #23  
ישן 10-07-2006, 20:12
צלמית המשתמש של EvyatarBH
  EvyatarBH EvyatarBH אינו מחובר  
 
חבר מתאריך: 13.05.02
הודעות: 8,468
אני חושב שאתה קצת מגזים...
בתגובה להודעה מספר 22 שנכתבה על ידי Goldfinger שמתחילה ב "חחחחחחחחחחח"

השקעתי הרבה מאד מחשבה בפרוייקט ההוא ואני די גאה בפונקציה שבודקת אם יש רצף (ובתוצאה הסופית בכלל).
ברור לי שזה "לא בעיה" לקבל 100 בפרוייקטים כאלו (למרות שמדובר על קורס באוניברסיטה)
ואמרתי את זה סתם בצחוק.
חוץ מזה, עשיתי את זה לפני שנה וחצי בערך וסביר להניח שהיום הייתי עושה את הדברים טוב יותר.

אגב, להגיד דברים מעליבים ואז להגיד שאתה לא מתכוון להעליב זה לא ממש לעניין.
"בכל הפונקציות"...
הבאתי את החלק המרכזי בתוכנה ולא ראית את כל הפונקציות.
בהחלט השתדלתי בפרוייקט הזה לבצע את כל הדרישות ביעילות מירבית (למרות שלא על הכל חשבתי בזמנו)
וכתבתי את כל התוכנה ב-500 שורות קוד בערך.
יש לציין שהתוכנה המלאה כוללת ממשק GUI ב-JAVA, אפשרות למספר סיבובים,
שורת סטטוס שמתעדכנת במהלך המשחק, אפשרות לבצע UNDO ועוד.

בקיצור, נא לא לדבר שטויות ותמיד לזכור שיש אנשים מהצד השני של המקלדת.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #24  
ישן 10-07-2006, 20:40
צלמית המשתמש של Goldfinger
  Goldfinger Goldfinger אינו מחובר  
 
חבר מתאריך: 20.04.05
הודעות: 127
אני מצטער אם הגזמתי בתגובה
בתגובה להודעה מספר 23 שנכתבה על ידי EvyatarBH שמתחילה ב "אני חושב שאתה קצת מגזים..."

אבל המשמעות זהה...בתוכנית הזאת אין חוט מחשבה ברור...למה אתה סופר כמה משבצות ריקות יש?....לא יותר פשוט כל פעם שאתה מוסיף סימן להוסיף למונה?...זה לא הגיוני...באמת ובאמת שלא התכוונתי להעליב, אבל לפי דעתי בן אדם צריך לחשוב למה קורים לזה אתגר...המטרה היא לעשות את התוכנית הטובה ביותר ולא להסתפק בבינוניות....אני מצטער אם פגעתי בך, אבל פשוט אמרתי לך מהי הערכתי לתוכנית...לא לך...וכל מה שאמרתי יוחס אליה. אתה נשמע כמו אדם נחמד מאוד ולא רציתי להעליב אותך. "שולם"?...=)
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 11:43

הדף נוצר ב 0.09 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר