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

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

מנהלים: Gordi, Radioactive Grandpa, Octarine, Og, אופיר

Og
מנהל
מנהל
הודעות: 12293
הצטרף: ו' מאי 28, 2004 10:34 am
מיקום: Delta Lyncis

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

שליחה על ידי 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 שעות וללא רמזים. הפתרון:
הצג/הסתר תוכן
Og
מנהל
מנהל
הודעות: 12293
הצטרף: ו' מאי 28, 2004 10:34 am
מיקום: Delta Lyncis

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

שליחה על ידי Og »

אני מאד מקווה שהחידה פחות אידיוטית ממה שאני חושב ואני גם מקווה שלא נדרש ידע בשפת C כדי לפתור אותה.

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

לאלה שכן מבינים שפת C, אני אציין שהתכנית לא תקנית, לא הגיונית, ולא תעבוד.
סמל אישי של משתמש
C-man
מנהל
מנהל
הודעות: 4120
הצטרף: ד' דצמבר 24, 2003 12:13 pm

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

שליחה על ידי C-man »

איפה הקונבנציות, איפה תמונה

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

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

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

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

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


בכל אופן אני מתאר לעצמי שהקוד אמור להצביע על צורת התנהגות מוזרה של AI במשחק כלשהו, אני לא יודע איך אפשר לזהות אותו בלי רמזים נוספים.
סמל אישי של משתמש
עידן
מנהל
מנהל
הודעות: 6865
הצטרף: ש' ספטמבר 28, 2002 6:23 pm
איש קשר:

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

שליחה על ידי עידן »

משחק בו רובוטים אכזריים מנסים לחסל גיבור תמים? אני יכול למצוא הרבה כאלו :twisted:

ברצינות-זה לא אומר לי יותר מידי
סמל אישי של משתמש
astralc
משתמש רשום
משתמש רשום
הודעות: 933
הצטרף: א' ספטמבר 18, 2005 9:51 pm

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

שליחה על ידי astralc »

אם אין מטרה: חפש מטרה.
אם המיקום הוא לא מטרה: לך למטרה.
בצע פעולה 999 עם מטרה.

המשחק אולי הוא
הצג/הסתר תוכן
Og
מנהל
מנהל
הודעות: 12293
הצטרף: ו' מאי 28, 2004 10:34 am
מיקום: Delta Lyncis

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

שליחה על ידי 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.
סמל אישי של משתמש
BluePrint
משתמש רשום
משתמש רשום
הודעות: 3085
הצטרף: ו' דצמבר 20, 2002 1:28 pm
מיקום: בבית
איש קשר:

Don't get anal about it

שליחה על ידי BluePrint »

אני לא יודע C או כל שפה אחרת...
הצג/הסתר תוכן
Og
מנהל
מנהל
הודעות: 12293
הצטרף: ו' מאי 28, 2004 10:34 am
מיקום: Delta Lyncis

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

שליחה על ידי Og »

ידעתי שאני יכול לסמוך עליך בלופרינט ידידי! :)

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



הסברים, שו"ת, התנצלות של C-Man על כך שלא זיהה את המשחק למרות שהוא מכיר אותו, ושאר ירקות - מחר כי אני עייף.
(חוץ מההתנצלות של סימן, את זה הוא צריך לעשות ולכן זה יכול להיות מתי שהוא רוצה :-D )
סמל אישי של משתמש
Octarine
מנהל
מנהל
הודעות: 3292
הצטרף: ג' יולי 07, 2009 11:48 pm
מיקום: בין חושך לאור

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

שליחה על ידי Octarine »

אם אפשר לשאול: מה?
מבחינתי התשובה של BP יותר חידתית מהמקור (שאותו די הבנתי, למרות ידע התכנות המינימלי שלי)
Og
מנהל
מנהל
הודעות: 12293
הצטרף: ו' מאי 28, 2004 10:34 am
מיקום: Delta Lyncis

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

שליחה על ידי Og »

רציתי לעשות את זה מחר, אבל אם אתה מתעקש...

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

ולאחר ההקדמה:
http://wiki.uqm.stack.nl/Probe" target="_blank
(תחת הכותרת Miscellaneous>Programming תוכל למצוא את התכנה כפי שהיא מופיעה במשחק)
סמל אישי של משתמש
BluePrint
משתמש רשום
משתמש רשום
הודעות: 3085
הצטרף: ו' דצמבר 20, 2002 1:28 pm
מיקום: בבית
איש קשר:

Lost in translation

שליחה על ידי BluePrint »

Og כתב:מה שמסקרן אותי, לעומת זאת, זה האם היית פותר גם אם C-man ו- astralc לא היו מפרשים את התכנית עבורך?
לא פירשו עבורי, או לפחות לא הספיקו. כשראיתי את סדר העדיפויות מיד צעקתי AWESOME וציפיתי לראות מישהו שענה לפני, אפילו התרגשתי כשראיתי את ההודעה של astralc, הייתי בטוח שהבין.
אולי הבורות זה מה שאפשר לי להסתכל מעבר לתכנות הבדוי אל הפרטים החשובים.
סמל אישי של משתמש
Radioactive Grandpa
מנהל
מנהל
הודעות: 5893
הצטרף: ד' ספטמבר 01, 2004 4:08 am
איש קשר:

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

שליחה על ידי Radioactive Grandpa »

רק רציתי להגיד Og, שאני כרגיל לא מכיר את המשחק, וגם את שפת C אני לא מכיר באופן אישי ("שלום שלום", אבל בד"שים), אבל דווקא כן אהבתי מאד את הרעיון וקיוויתי מאד שזה כן יהיה משחק שאכיר כדי שאהיה רלוונטי לסוג החידה הזה. מאד לא דבילי לדעתי, הייתי מגיב באותה צעקת Awesome לו היה לי הרקע לזהות מה שזיהה BP.
סמל אישי של משתמש
Octarine
מנהל
מנהל
הודעות: 3292
הצטרף: ג' יולי 07, 2009 11:48 pm
מיקום: בין חושך לאור

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

שליחה על ידי Octarine »

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

איפה אפשר להשיג את Star Control היום? (להשיג חוקית, כמובן)
Og
מנהל
מנהל
הודעות: 12293
הצטרף: ו' מאי 28, 2004 10:34 am
מיקום: Delta Lyncis

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

שליחה על ידי Og »

Radioactive Grandpa כתב:רק רציתי להגיד Og, שאני כרגיל לא מכיר את המשחק, וגם את שפת C אני לא מכיר באופן אישי ("שלום שלום", אבל בד"שים), אבל דווקא כן אהבתי מאד את הרעיון וקיוויתי מאד שזה כן יהיה משחק שאכיר כדי שאהיה רלוונטי לסוג החידה הזה. מאד לא דבילי לדעתי, הייתי מגיב באותה צעקת Awesome לו היה לי הרקע לזהות מה שזיהה BP.
BluePrint כתב:לא פירשו עבורי, או לפחות לא הספיקו. כשראיתי את סדר העדיפויות מיד צעקתי AWESOME וציפיתי לראות מישהו שענה לפני, אפילו התרגשתי כשראיתי את ההודעה של astralc, הייתי בטוח שהבין.
מצוין! אני מאד שמח שהצלחתי להעביר את המסר שרציתי. בהתחלה כשחשבתי על הרעיון, התלהבתי, אבל בזמן הביצוע עלו בי ספקות.
BluePrint כתב:אולי הבורות זה מה שאפשר לי להסתכל מעבר לתכנות הבדוי אל הפרטים החשובים.
למען האמת, יתכן שיש בזה משהו יותר מצניעות... תבין, לא ציפתי שאנשים יתחילו לפענח את התכנה באופן מעשי ויש בה משהו קצת מטעה... כפי שastralc אמר, התכנה "מבצעת 999", ובהתאם למשחק, הפעולה עצמה לא צריכה להיות 999, אלא העדיפות שלה צריכה להיות 999. יכולתי לייצג את זה בתכנית אבל זה היה מסבך את הקוד משמעותית עם מערכים, פויינטרים או תנאים מורכבים.
סמל אישי של משתמש
Sabre Runner
משתמש רשום
משתמש רשום
הודעות: 50
הצטרף: א' ספטמבר 21, 2008 12:45 pm
איש קשר:

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

שליחה על ידי Sabre Runner »

כן, זיהיתי את זה אחרי חצי דקה בערך בלי לקרוא אף אחת מהתגובות. ניסיתי להריץ את התוכנית בראש עד שהבנתי שלא הוגדרה SEEK_FUNCTION ואז פשוט ניסיתי לראות מה בדיוק קורה כאן. זה ה-999 שסגר את הפתרון.

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

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