בדיקות ללוח שחמט גנואים תקני

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

board = Board()
board.reset()
print(board)

# (row, column)
pawn0 = board.get_square(1, 0)
pawn0.move(board, (3, 0))
pawn0.move(board, (6, 0)) # No change
pawn0.move(board, (5, 0)) # No change
pawn5 = board.get_square(1, 5)
pawn5.move(board, (4, 5))
pawn10 = board.get_square(1, 10)
pawn10.move(board, (2, 10))
pawn10.move(board, (4, 10))
rook = board.get_square(0, 0)
rook.move(board, (2, 0))
rook.move(board, (2, 9))
knight = board.get_square(0, 1)
knight.move(board, (2, 2))
camel = board.get_square(0, 2)
camel.move(board, (3, 1))
wildbeest = board.get_square(0, 4)
wildbeest.move(board, (2, 3))
wildbeest.move(board, (5, 2))
king = board.get_square(0, 5)
king.move(board, (2, 5)) # No change
king.move(board, (0, 4))
queen = board.get_square(0, 6)
queen.move(board, (3, 3))
queen.move(board, (3, 6))
queen.move(board, (6, 6))
pawn6 = board.get_square(1, 6)
pawn6.move(board, (2, 6))
bishop = board.get_square(0, 7)
bishop.move(board, (4, 3))
bishop.move(board, (7, 6))
pawn_white5 = board.get_square(8, 5)
pawn_white5.move(board, (7, 6))

print(board)

chess3

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

board = Board()
board.reset()
print(board)

# (row, column)
unicorn_black1 = board.get_square(0, 0)
unicorn_black1.move(board, (2, 1)) # 4 steps.

unicorn_black2 = board.get_square(0, 10)
unicorn_black2.move(board, (2, 9)) # 1 step.

unicorn_white1 = board.get_square(9, 0)
unicorn_white1.move(board, (7, 1)) # 3 steps.

unicorn_white2 = board.get_square(9, 10)
unicorn_white2.move(board, (7, 9)) # 3 steps.

print(board)

chess2

19 לייקים

היי, תודה על קוד הבדיקות.

עוזר מאוד בתרגיל, שאלה לגבי התזוזה של הגנו כגמל.

ביצעת תזוזה ראשונה כפרש למשבצת 2,3 (שורה 2 עמודה 3 ספירה מאפס וכו’)

ולאחר מכן תזוזה ל- שורה 4 ועמודה 2. זו תזוזה כפרש אבל הפרש שלך לא זז. אני מבין שרצית שהוא יזוז כגמל אבל זה נראה לי קצת מגביל לא?

הרי תזוזה מ 2,3 ל- 4,2 היא תזוזת פרש רגילה.

משהו שטיפה מוזר, היש כזו משבצת (עמודה) 10? הרי אין כזו, טכנית גודל הלוח הוא 11,10 אבל באמת זה 10,9 כי מתחילים לספור מ0,
לכן, שיחקת עם הקוד כדי לאפשר להכניס 10 בעמודה?

אפשר ליישם את זה גם בדרך שציינת.

תסתכל שוב בלוח בתרגיל. העמודה האחרונה היא האות k שהיא האות ה11.

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

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

הי ג’וני,
קודם כל תודה על הדוגמאות שנתת.
שנית, לגבי חד הקרן - לפי מה שנראה לי בכל הדוגמאות שנתת התבצע צעד אחד בלבד עבור כל חד קרן. לו למשל, בחד קרן הראשון הייתי מזיזה 4 צעדים הייתי אמורה להגיע לנקודה 8,4 ולא 2,1. האם אני מפספסת משהו?
שלישית - היות ואין לחד הקרן מקום מוגדר מראש האם בבניית הלוח עלי להגדיר מקום שרירותי כלשהו עבורו ומשם להתחיל?
תודה

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

ולגבי המיקום, סתם בחרתי מקום שירורתי כי לא צויין משהו.

תודה ג’וני :smiley: לא הייתי בטוחה אם אני צריכה להגדיר כמה צעדים או שילך עד שיתקע או יסיים הלוח

השורה הזאת לא מיותרת, הרי היא מתבצעת באתחול של המופע?

היא מיותרת.
.
.
.

.
.

לייק 1

תודה רבה על הבדיקות גוני!!!
עזרת לי מאוד

המון תודה, משום מה עדיין אני לא מסתדר עם להזיז את החיילים שלמטה… אז הבדיקות לא הולכות אצלי :thinking:

זה הקוד לחדי קרן במצב כמו בתמונה (כדי שיהיה אפשר לוודא שהם מגיעיים לאותו מיקום :slight_smile: )
(פינה שמאלית עליונה אצלי היא מיקום 0,0 (חד קרן שחור); ימנית תחתונה - 9,10 (חד קרן לבן))

board = Board()
print(board)

# (row, column)
unicorn_black1 = board.get_square(0, 0)
unicorn_black1.move(board, (8, 4)) # 4 steps.

unicorn_black2 = board.get_square(0, 10)
unicorn_black2.move(board, (2, 9)) # 1 step.

unicorn_white1 = board.get_square(9, 0)
unicorn_white1.move(board, (3, 3)) # 3 steps.

unicorn_white2 = board.get_square(9, 10)
unicorn_white2.move(board, (3, 7)) # 3 steps.

print(board)
5 לייקים

תודה רבה על הבדיקות :slight_smile:

לייק 1