שלום לכולם.

astalavista

New member
שלום לכולם.

לפני איזה 4-5 חודשים היה פה כמה אנשים שניסו להרים פה פרוייקט משותף של הפורם (בסיגנון טקטיקו\אסטרטגו) סתם רציתי לדעת מה בסוף נגמר עם זה.
 

אלדד28

New member
האנשים שרצו להשתתף בפרויקט,

לא הביאו את עצמם לעבודה אמיתית על הפרויקט. הם רצו, ולא עשו (ברובם, למעט 2-3 אנשים שניסו).
 

אלדד28

New member
לא נדרש לזה הרבה זמן,

וזמן מינימלי לא הושקע על ידי 90% מהאנשים. למעט "כן, כן, אני רוצה להשתתף" רוב האנשים לא נקפו אצבע.
 

Scipio

New member
יש לי התחלה - מודל המשחק

בסוף לא יצא מזה הרבה - או יותר נכון כלום - אבל יצא לי כמה מחשבות על זה. ונסיתי לראות איך אפשר לבנות את המשחק בצורה פשוטה (כהגדרה) . בכל מקרה - הנה תרגיל מחשבתי (שיישמתי על עצמי) כמה זמן צריך בשביל לפתח מודל של המשחק עצמו (כזה שמכיל את כל החוקים בלי ממשק למשתמש) ברמת פירוט של קוד ? ותוך כמה שורות אפשר לממש את זה? (מודל של המשחק - שוב רק המשחק עצמו) חשבתי ניסיתי כתבתי (בקיצור יש לי קוד ב ++C שבונה את כל מודל המשחק לרבות כל חוקיו (בלי ממשק למשתמש).. סתם מעניין לראות מה דעתם של אנשים אחרים - כמה זמן יקח לכם לכתוב קוד כזה - תוך הנחה שאתם 1. רוצים להגיע לתוצאה (משחק טקטיקו ) הכי מהר שאפשר (חוקים מקוריים) 2. עד כמה רובוסטי יהיה הקוד שלכם לשינויים?
 

Scipio

New member
אם מישהו מעוניין בקוד

אשמח להחליף רעיונות וגם אין לי בעיה להפיץ את הקוד..
 

Scipio

New member
הקוד למודל משחק הטקטיקו

כל שחקן צריך ליצור CLASS חדש שיורש מ TaktikoPlayer ולממש שתי פונקציות initSetup - על מנת לאתחל את כליו getAction - על מנת לשחק. יש דבר אחד אשר אינו במודל (אלא אם כן שכחתי) - זה ההגבלה איפה לשים את החיילים בתחילת הקרב. אבל חוץ מזה אני חושב (שוב לא הקדשתי לזה יותר מדי זמן) שזה מכיל את כל החוקים זמן שהוקדש : אני מעריך שבערך 5-6 שעות עבודה נטו שורות קוד : (גם כן מטריקה) - 432 זהו קוד שהיה מאד מכוון תוצאה וכמובן שאילו הייתי צריך לעשות אותו ב PRODUCTION QUALITY אז מן הסתם הוא היה קצת יותר רובוסטי - אבל שיהיה אשמח לשמוע תגובות הערות וכיוצא ואם מישהו מתכון להתשמש בקוד - אשמח לשמוע גם כן אפשר לשפר את הקוד במספר אופנים (בלי להוסיף פונקציונליות וכלליות רבה מדי ) אשמח לשמוע את הרעיונות השונים - אפשר ל"מוטט" את ההירכיות ולפשט את הקוד ככה. רעיונות לשינויים וזויות ראיה שונות מעניינות אותי
 

yair24

Member
בלי שום קשר

אני התחלתי לעשות דבר כזה לבד בMFC בלי קשר לפורום... יש לי עכשיו לוח שאפשר לסדר בו את הכלים של הלבן ואחר כך השחור שם את הכלים שלו (שזה המחשב...) לקח לי כמה שבועות כאשר כל יום שישי ישבתי על זה כמה שעות... אם סופרים א תהשעות אני מעריך שלקח לי גם כן איזה 5-6 שעות נטו... אבל זה עדיין לא מוכן. הקטע הכי קשה נשאר לי שזה לסדר את לוח השחור לפי אלגוריתם ואחרי זה לכתוב את אלגוריתם המשחק של המחשב. אני יכול להביא לפה את הEXE של המשחק כפי שהוא היום אם זה מעניין מישהו... יאיר
 

yair24

Member
יפה מאוד...

אם לא אכפת לך הדפסתי את העבודה שלך בשביל לקבל קצת רעיונות זה די רענן לי את כל הנושא של C++ כבר המון זמן לא נגעתי בזה. הקוד כתוב ממש יפה כל הכבוד... והתכנון מצא חן בעיני. דרך אגב הוא די דומה לתכנון שלי רק שלדעתי ממומש קצת יותר יפה אני חושב שאני אקח לך (ברשותך) את הרעיון של מחלקת LOCATION אמנם אצלי הלוח מורכב ממשבצות ואפשר לקבל LOCATION מהמשבצות אבל לא עשיתי את זה בתור מחלקה נפרדת וזה יוצר לי כל הזמן סיבוכים של חישובים אז בכל מקרה אני כנראה אוסיף מחלקה כזאת. דרך אגב מצאתי טעות אחת בפונקציה CANMOVE שמקבלת פרמטרים, תתקן אותה... אני אשאיר לך למצוא את הטעות
יאיר
 

Scipio

New member
שימוש חופשי חופשי

מכיוון שזנחתי את הרעיון (או יותר נכון הוא מיצה את עצמו אצלי) אני לא מתכוון לדוש בקוד - אבל אשמח לדעת מה הבאג בפונקציה (CanMove (של מי?). בכל מקרה - הקטע של סידור הלוח והאסטרטגיה של המחשב זה אכן דבר הרבה יותר מעניין. - אשמח לשמוע איך אתה מתכוון ליישם זאת ואני חושב שאוכל לתרום מעט רעיונות אם אתה מעוניין). הקוד שלי הוא לא הכי נקי בעולם - אבל הוא די פשוט ברובו. כמו כן יש הירכיות של קלאסים אשר במימוש הנוכחי הם אובר קיל (בגלל שאין ממש הירכיה אלא שרשרת.) ה EXE לא כל כך מעניין - יותר מעניין הקוד - אז אם אתה רוצה תעלה אותו ואוכל להביט בו ולחוות חו"ד. (תאמין לי - סטארט אפ מזה לא תעשה
סקיפיו אפריקנוס קרטגו חייבת ליפול
 

Scipio

New member
צודקים - ה PATCH בדרך

הנה ה PATCH 164a165,167 > if ( from.m_x != to.m_x && from.m_y != to.m_y) > return false; >
 

yair24

Member
האמת לא לזה התכוונתי...

הנה הקוד עם הטעות, מי מוצא?
bool Soldier::canMove( Location from , Location to ) const { if ( !canMove() ) return false; if ( from == to ) return false; int distance = 1; if ( m_rank == SCOUT) distance == 10000; if ( ( from.m_x == to.m_x && ( abs ( from.m_y - to.m_y) > distance )) || ( from.m_y == to.m_y && ( abs ( from.m_x - to.m_x) > distance )) ) return false; return true; }​
יאיר
 

yair24

Member
בתור התחלה

את סידור הלוח אני כנראה אעשה סידור אחד שיהיה כל הזמן. ואז אני אוכל להתחיל לעבוד על אסטרטגיית המשחק של המחשב, אחרי שהיא תהיה מוכנה, אני אחזור לסידור הלוח ובטח כבר יהיו לי יותר רעיונות לאיך לסדר אותו... (אני מוכרח לעשות קודם סידור פשוט על מנת שאוכל להמשיך עם אסטרטגיית המשחק כי אי אפשר לשחק בלי שהלוח יהיה מסודר קודם...) אם יש לך כיווני רעיונות לגבי אסטרטגיית המשחק או הסידור אני אשמח לשמוע אותם. הרעיון הכללי לאסטרטגייה הוא שהמחשב מתביית על כלי מסוים מגלה אותו עם כלי חלש ואז הולך להתקיף אותו עם הכלי הכי קרוב אליו שיותר חזק ממנו זה בכלליות... לגבי סידור הלוח חשבתי על משהו כזה: דגל תמיד מוקף בפצצות ונמצא בשורה האחרונה, ליד הפצצות יש תמיד מספרים נמוכים מ8, בשורות הראשונות יש בערך 5 תשיעיות שאר התשיעיות בשורה השניה בשאר המשבצות של השורות הראשונות איפה שאין תשיעיות יהיה 5 או 4 והשאר איפה שנשאר אולי בצור הרנדומאלית או משהו... יאיר
 

Scipio

New member
סידור לוח ואסטרטגיה

להלן מספר נקודות למחשבה 1. אסטרטגיה דטרמיסיטית יותר קל לחזות - בהנחה שלומדים אותה אז יותר קל לנצח - שילוב של אלמנט אקראי (לאו דווקא טיפשי) יחזק את השחקן 2. המחשב יכול לעבור בין אסטרטגיות על שונות על פי הערכה שלו למצבו - למשל להיות אגרסיבי יותר כאשר יש יתרון - או לחלופין להיות במערך הגנתי כאשר יש מספר מצומצם של כוחות 3. ישנם מצבים אשר אפשר לתכנת מראש טקטיקות - למשל איך ללכוד שחקן חלש באמצעות 2 חיילים חזקים יותר. 4. יכול להיות שתרצה מחשב שיש לו זיכרון לקוי (כמו לאנשים) 5. ניתוח מצב ובחירת אסטרגיה לפי איזורים. 6. יכולת של המחשב "ללמוד" את האדם מולו (תוקפני / סידור כלים ) 7. לימוד עצמי (מחשב משחק מול עצמו ) - לימוד סידור לוח...
 

ilankt

New member
תוכנה קטנה שמישהו עשה, מצאתי

ב-GameDev.net. זה לא עקרוני ממש, כי אתה יכול להעתיק מה++VC לתוך מסמך DOC, וכל הצבעים ישמרו.
 

KKnDoIt

New member
גם ב- VIM יש פקודה שעושה את זה

ביחד עם VIM מגיע סקריפט שמאפשר לעשות את זה. קוראים לו 2html.vim
 
למעלה