לאחר שלמדנו איך לייצג תא בודד בעזרת תו יחיד,
נעבור להצגת הלוח כולו. כפי שכבר ראינו בחלק א,
הלוח מורכב מרשימה
של רשימות, שכל אחת
מהן מכילה תאים של שורה אחת בלוח. באופן דומה, רשימה של תווים הינה
מחרוזת – וכיוון שיצגנו תא אחד בלוח על-ידי תו, נייצג כעת את הלוח כולו
באמצעות מחרוזת. אמנם היינו יכולים לייצג כל שורה בלוח באמצעות מחרוזת,
ואת הלוח כרשימה של מחרוזות, אך כיוון שאין משמעות לשורה בודדת במשחק
הצוללות (בניגוד לתא בודד – המשמש למיקום פגיעות והחמצות) נייצג את
שלוח על ידי מחרוזת בודדת, המהווה שירשור של כל המחרושות של שורות
הלוח. כיוון שכך, נוכל אף להוסיף למחרוזת זו "שוליים" שיקלו על קריאת
הלוח ומיקום היריות – כפי שנראה מיד.
כתבו פונקציה המקבלת לוח משחק כפי שנוצר בשלב א
- רשימה של רשימות. הניחו
שכל שורה בלוח היא רשימה של מספרים המייצגים את מצב התאים. הפונקציה
תקבל את מספר השורות והעמודות בלוח בארגומנטים rows ו columns בהתאמה, ואת הערך
is_private כפי שתואר בשלב
ב
. הפונקציה תחזיר מחרוזת שתהווה ייצוג של
הלוח לפי ההנחיות הבאות: שורה ראשונה – התו "רווח"
ולאחריו המספרים מ-1 ועד מספר העמודות (כדי להקל על מספור העמודות בידי
השחקן) כל שורה נוספת תתחיל במספרה
הסידורי, ולאחריו ייצוג כל אחד מהתאים בשורה.