דף 1 מתוך 3

[חידה] תוכנית בשפת C [נפתרה]

נשלח: ה' יולי 01, 2010 9:30 pm
על ידי Og
הנה תוכנית בשפת C:

קוד: בחירת הכל

void main()
{
int TARGET=0;
while(TARGET==0)
{
 TARGET=SEEK_FUNCTION();
}
while(LOCATION!=TARGET)
{
 MOVMENT(TARGET);
}
ACTION=CHOOSE_ACTION();
ACTION_FUNCTION(TARGET,ACTION);
exit(0);
}



int CHOOSE_ACTION()
{
 int ACTION1=5;
 int ACTION2=4;
 int ACTION3=3;
 int ACTION4=999;
 int ACTION5=1;
 int SELECTED_ACTION=0;

 if(ACTION1 > SELECTED_ACTION)
   SELECTED_ACTION=ACTION1;
 if(ACTION2 > SELECTED_ACTION)
   SELECTED_ACTION=ACTION2;
 if(ACTION3 > SELECTED_ACTION)
   SELECTED_ACTION=ACTION3;
 if(ACTION4 > SELECTED_ACTION)
   SELECTED_ACTION=ACTION4;
 if(ACTION5 > SELECTED_ACTION)
   SELECTED_ACTION=ACTION5;
return(SELECTED_ACTION);
}
אני אשמח אם מישהו יוכל לומר של מה התכנית הזו, אבל אני אקבל כתשובה גם את שם המשחק.

עדכון: החידה נפתרה ע"י BluePrint לאחר 4 שעות וללא רמזים. הפתרון:
הצג/הסתר תוכן

Re: [חידה] תוכנית בשפת C

נשלח: ה' יולי 01, 2010 9:33 pm
על ידי Og
אני מאד מקווה שהחידה פחות אידיוטית ממה שאני חושב ואני גם מקווה שלא נדרש ידע בשפת C כדי לפתור אותה.

אם היא כן אידיוטית וסתם הייתי אופטימי בצורה מוגזמת, אנא סלחו לי.

לאלה שכן מבינים שפת C, אני אציין שהתכנית לא תקנית, לא הגיונית, ולא תעבוד.

Re: [חידה] תוכנית בשפת C

נשלח: ה' יולי 01, 2010 10:27 pm
על ידי C-man
איפה הקונבנציות, איפה תמונה

כואב לי לנסות להבין את הכוונה בקוד הזה :?

על פניו נראה שמה שהפסאודו תוכנית הזו עושה זה לחפש מטרה, לנוע עד אליה, לבחור פעולה* ולבצעה על המטרה.

*בהנחה שבכוונה עשית if.. if.. if.. ובהנחה ש selected_action מיצד קלט משתמש/בחירה רנדומאלית
אז תמידה תבחר הפעולה הרביעית אלא אם selected action קטן מ 1

אם היה צריך להיות שם if .. else if.. else if.. אז רק פעולה 1 או ארבע יכולות להבחר

אם ההנחות שלי לא נכונות אז אני פשוט לא מבין מה הכוונה בקטע קוד הזה.. :/


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

Re: [חידה] תוכנית בשפת C

נשלח: ה' יולי 01, 2010 10:33 pm
על ידי עידן
משחק בו רובוטים אכזריים מנסים לחסל גיבור תמים? אני יכול למצוא הרבה כאלו :twisted:

ברצינות-זה לא אומר לי יותר מידי

Re: [חידה] תוכנית בשפת C

נשלח: ה' יולי 01, 2010 10:44 pm
על ידי astralc
אם אין מטרה: חפש מטרה.
אם המיקום הוא לא מטרה: לך למטרה.
בצע פעולה 999 עם מטרה.

המשחק אולי הוא
הצג/הסתר תוכן

Re: [חידה] תוכנית בשפת C

נשלח: ו' יולי 02, 2010 12:05 am
על ידי Og
וואו, כ"כ הרבה הפתעות... :shock:

נתחיל מזה שלא ציפיתי שמישהו יגיב בכלל. נמשיך בזה שלא ציפיתי שיש כאן אנשים שדוברים שפת C (ונראה שיותר מאלה שלא דוברים). גם לא ציפיתי שמישהו שכן מבין C יבין את התכנה המבולבלת הזו. וגם לא ציפיתי שמי שכן הבין, יגלה לכולם ולא ישים את הפענוח בתגית ספויילר (HINT :cussing: ). ציפיתי שמי שכן מכיר את המשחק יזהה מיד לאחר שהבין את התכנית (וזה לא קרה, מסתבר, כי יש לפחות אחד כזה).
C-man כתב:איפה הקונבנציות, איפה
על מה אתה מדבר? על זה שהפונקציה לא מוגדרת בתחילת התכנית?
C-man כתב:כואב לי לנסות להבין את הכוונה בקוד הזה
למה? בגלל שאין צבעים? בכל מקרה, אתה לא אמור "להריץ" את התוכנית, אתה אמור להבין את הכוונה בלי להתאמץ יותר מדי, קח בחשבון שכיוונתי גם לאנשים שלא מבינים שפת C.
C-man כתב:בהנחה שבכוונה עשית if.. if.. if.. ובהנחה ש selected_action מיצד קלט משתמש/בחירה רנדומאלית
שרשרת הIF מכוונת. יכולתי להשתמש ב ELSE IF אבל רציתי לפשט למי שלא מבין וזה בסדר, זה מה שהתכנית אמורה לעשות (בערך...). בקשר ל-selected_action, לא בדיוק... אבל זה לא חשוב כרגע...
astralc כתב:המשחק אולי הוא
Nope.

Don't get anal about it

נשלח: ו' יולי 02, 2010 12:42 am
על ידי BluePrint
אני לא יודע C או כל שפה אחרת...
הצג/הסתר תוכן

Re: [חידה] תוכנית בשפת C

נשלח: ו' יולי 02, 2010 12:49 am
על ידי Og
ידעתי שאני יכול לסמוך עליך בלופרינט ידידי! :)

מה שמסקרן אותי, לעומת זאת, זה האם היית פותר גם אם C-man ו- astralc לא היו מפרשים את התכנית עבורך?



הסברים, שו"ת, התנצלות של C-Man על כך שלא זיהה את המשחק למרות שהוא מכיר אותו, ושאר ירקות - מחר כי אני עייף.
(חוץ מההתנצלות של סימן, את זה הוא צריך לעשות ולכן זה יכול להיות מתי שהוא רוצה :-D )

Re: [חידה] תוכנית בשפת C [נפתרה]

נשלח: ו' יולי 02, 2010 12:52 am
על ידי Octarine
אם אפשר לשאול: מה?
מבחינתי התשובה של BP יותר חידתית מהמקור (שאותו די הבנתי, למרות ידע התכנות המינימלי שלי)

Re: [חידה] תוכנית בשפת C [נפתרה]

נשלח: ו' יולי 02, 2010 1:03 am
על ידי Og
רציתי לעשות את זה מחר, אבל אם אתה מתעקש...

אבל לפני ההסבר(שהוא בעצם קישור), אני חייב לומר משהו חשוב: לרוב אני לא ממליץ על משחקים ישנים שאהבתי אלא אם כן האדם מגלה עניין בז'אנר. אחד מהמשחקים (ישנים או לא) הבודדים בעולם שיוצא דופן, לעומת זאת, הוא המשחק הנחוד וזאת מכיוון שהוא לא משחק רגיל - הוא יצירת מופת אומנותית שכל אחד, ואני מתכוון כל אחד (עם ידע ממוצע+ באנגלית) צריך להכיר. ולכן דווקא לא הייתי ממליץ לך לקרוא את ההסבר אם עדיין לא שיחקת במשחק.

ולאחר ההקדמה:
http://wiki.uqm.stack.nl/Probe" target="_blank
(תחת הכותרת Miscellaneous>Programming תוכל למצוא את התכנה כפי שהיא מופיעה במשחק)

Lost in translation

נשלח: ו' יולי 02, 2010 1:16 am
על ידי BluePrint
Og כתב:מה שמסקרן אותי, לעומת זאת, זה האם היית פותר גם אם C-man ו- astralc לא היו מפרשים את התכנית עבורך?
לא פירשו עבורי, או לפחות לא הספיקו. כשראיתי את סדר העדיפויות מיד צעקתי AWESOME וציפיתי לראות מישהו שענה לפני, אפילו התרגשתי כשראיתי את ההודעה של astralc, הייתי בטוח שהבין.
אולי הבורות זה מה שאפשר לי להסתכל מעבר לתכנות הבדוי אל הפרטים החשובים.

Re: [חידה] תוכנית בשפת C [נפתרה]

נשלח: ו' יולי 02, 2010 3:10 am
על ידי Radioactive Grandpa
רק רציתי להגיד Og, שאני כרגיל לא מכיר את המשחק, וגם את שפת C אני לא מכיר באופן אישי ("שלום שלום", אבל בד"שים), אבל דווקא כן אהבתי מאד את הרעיון וקיוויתי מאד שזה כן יהיה משחק שאכיר כדי שאהיה רלוונטי לסוג החידה הזה. מאד לא דבילי לדעתי, הייתי מגיב באותה צעקת Awesome לו היה לי הרקע לזהות מה שזיהה BP.

Re: [חידה] תוכנית בשפת C [נפתרה]

נשלח: ו' יולי 02, 2010 9:56 am
על ידי Octarine
אני לא בטוח שאני אוהב, למרות ההמלצה הנמרצת של עוג. הנסיון שלי עם משחקי RPG (?) בחלל מסתכם ב-NOMAD, אני לא יודע איך הוא בהשוואה ל-Star Control אבל מהקצת שקראתי בויקי אני מבין שהקונספט דומה. הבעיה שהייתה לי ב-NOMAD היא באג שקורה בשלב מסוים ודי תוקע את המשחק, אז עזבתי אותו וחזרתי לקווסטים, אהבתי האמיתית.

איפה אפשר להשיג את Star Control היום? (להשיג חוקית, כמובן)

Re: [חידה] תוכנית בשפת C [נפתרה]

נשלח: ו' יולי 02, 2010 10:01 am
על ידי Og
Radioactive Grandpa כתב:רק רציתי להגיד Og, שאני כרגיל לא מכיר את המשחק, וגם את שפת C אני לא מכיר באופן אישי ("שלום שלום", אבל בד"שים), אבל דווקא כן אהבתי מאד את הרעיון וקיוויתי מאד שזה כן יהיה משחק שאכיר כדי שאהיה רלוונטי לסוג החידה הזה. מאד לא דבילי לדעתי, הייתי מגיב באותה צעקת Awesome לו היה לי הרקע לזהות מה שזיהה BP.
BluePrint כתב:לא פירשו עבורי, או לפחות לא הספיקו. כשראיתי את סדר העדיפויות מיד צעקתי AWESOME וציפיתי לראות מישהו שענה לפני, אפילו התרגשתי כשראיתי את ההודעה של astralc, הייתי בטוח שהבין.
מצוין! אני מאד שמח שהצלחתי להעביר את המסר שרציתי. בהתחלה כשחשבתי על הרעיון, התלהבתי, אבל בזמן הביצוע עלו בי ספקות.
BluePrint כתב:אולי הבורות זה מה שאפשר לי להסתכל מעבר לתכנות הבדוי אל הפרטים החשובים.
למען האמת, יתכן שיש בזה משהו יותר מצניעות... תבין, לא ציפתי שאנשים יתחילו לפענח את התכנה באופן מעשי ויש בה משהו קצת מטעה... כפי שastralc אמר, התכנה "מבצעת 999", ובהתאם למשחק, הפעולה עצמה לא צריכה להיות 999, אלא העדיפות שלה צריכה להיות 999. יכולתי לייצג את זה בתכנית אבל זה היה מסבך את הקוד משמעותית עם מערכים, פויינטרים או תנאים מורכבים.

Re: [חידה] תוכנית בשפת C [נפתרה]

נשלח: ו' יולי 02, 2010 10:11 am
על ידי Sabre Runner
כן, זיהיתי את זה אחרי חצי דקה בערך בלי לקרוא אף אחת מהתגובות. ניסיתי להריץ את התוכנית בראש עד שהבנתי שלא הוגדרה SEEK_FUNCTION ואז פשוט ניסיתי לראות מה בדיוק קורה כאן. זה ה-999 שסגר את הפתרון.

ואני לא יודע מה זה Nomad אבל בשבילי, כל פעם שצריך דוגמה למשחק נהדר שהוא מופת למשחקים, משהו שאפשר לחזור אליו עוד פעם ועוד פעם ועוד פעם ואחרי זה לשים על המדף כיצירת אמנות לדורות הבאים, אז אני אומר Star Control II - The Ur-Quan Masters.

ומאז שהקוד של המשחק שוחרר, יצאו כמה שכפולים שלו וכמה עיצובים מחדש. הטוב מכולם הוא, ללא ספק, The Ur-Quan Masters.
http://sc2.sourceforge.net/