במשחק "בול פגיעה" בוחרים מראש מחרוזת סודית, המורכבת מהאותיות Z–A ללא סדר מסוים. כל אות יכולה להופיע במחרוזת הסודית פעם אחת לכל היותר (כך שאורך המחרוזת הוא בין 1 ל-26).
במשחק "בול פגיעה" בוחרים מראש מחרוזת סודית, המורכבת מהאותיות Z–A ללא סדר מסוים. כל אות יכולה להופיע במחרוזת הסודית פעם אחת לכל היותר (כך שאורך המחרוזת הוא בין 1 ל-26).
השחקן מנחש מחרוזת, ובעבור כל אות בניחוש הוא מקבל ציון:
- "בול" – ניחוש נכון של האות ושל מקומה במחרוזת הסודית.
- "פגיעה" – ניחוש נכון של האות אך במקום הלא נכון.
- "החמצה" – ניחוש של אות שאינה קיימת כלל במחרוזת הסודית.
דוגמה: עבור הניחוש "AGCF" מול המחרוזת הסודית "FGAV":
- ציון "בול" אחד (G באינדקס 1 בשתי המחרוזות).
- שני ציוני "פגיעה" (A ו-F קיימות במחרוזת הסודית אך במקום אחר).
- ציון "החמצה" אחד (C אינה קיימת כלל במחרוזת הסודית).
מעל המילים "A G C F" (הניחוש) ו"F G A V" (המחרוזת הסודית) מצוירים שלושה חצים מעוקלים המחברים בין אותיות תואמות (G עם G באותו אינדקס = בול; A ו-F בין המחרוזות במקומות שונים = פגיעה); לא ניתן לשחזר בביטחון מלא מן התמונה אילו זוג-אותיות מדויק מחבר כל חץ בנפרד — ראו הערת נאמנות.
secret (SODIT): F G A V
guess (NIHUSH): A G C F
(3 curved arrows drawn above connecting matching letters between the two rows)
כתבו פעולה חיצונית ששמה guess בשפת Java או Guess בשפת C#, המקבלת שני פרמטרים: מחרוזת סודית – secretStr, ומחרוזת ניחוש – playerStr. הניחו ששתי המחרוזות תקינות (כלומר מופיעות בהן רק האותיות Z–A וכל אות מופיעה בכל מחרוזת פעם אחת לכל היותר). אם האורך של מחרוזת הניחוש שונה משל המחרוזת הסודית, הפעולה תדפיס הודעת שגיאה "Size Error". אם האורך של מחרוזת הניחוש זהה לאורך של המחרוזת הסודית, הפעולה תדפיס את מספר ציוני ה"בול", מספר ציוני ה"פגיעה" ומספר ציוני ה"החמצה" בעבור הניחוש של השחקן (כל הדפסה בשורה חדשה).
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.