גיימינג איז איין פאָרעם פון פאַרווייַלונג בנימצא צו מענטשן. שפּילערייַ פון אַלע מינים זענען בנימצא אָנליין, אויף רירעוודיק דעוויסעס, אויף דעסקטאַפּ קאָמפּיוטערס, אאז"ו ו. איצט איז נישט די צייט צו שאַפֿן איינער פון די טשאַלאַנדזשינג שפּילערייַ.
ניצן פּיטהאָן, מיר מאַכן אַ CLI טיק-טאַק-פינגער פונ פוס שפּיל. לאָמיר נוצן Python צו בויען אַ פּשוט טיק טאַק טאָו שפּיל. עס וועט אַרוישעלפן איר צו שאַפֿן שפּיל לאָגיק און לערנען ווי צו אָרגאַניזירן קאָד.
טיק טאק טאו
איידער מיר אָנהייבן קאָודינג, איך געדאַנק איך וואָלט געשווינד סאַמערייז די שפּיל און דיסקוטירן מיין פּלאַן פֿאַר דעוועלאָפּינג עס.
ערשטער, מיר וועט פאַרלייגן די האַשאָרע אַז Xs שטענדיק נעמען די איניציאטיוו און מאַך ערשטער, געבן די באַניצער די געלעגנהייט צו האַנדלען.
פֿון די קאַנסאָול, אַ נומער צווישן 1 און 9 וועט זיין אַרייַנגעשיקט. אין אַ גריד ווו יעדער נומער קאָראַספּאַנדז צו אַ אַנדערש נומער (שפּיץ לינקס איז 1, דנאָ רעכט איז 9).
דער קאָמפּיוטער וועט אויטאָמאַטיש באַשטימען און מאַכן זיין מאַך אַמאָל דער באַניצער באוועגט. איין ערשטיק שפּיל שלייף וואָס רופט אַ נומער פון פאַרשידן רוטינז וועט זיין געוויינט דורך מיר.
וואָס פֿונקציע איז פאַרטיק איז מיסטאָמע אנגעוויזן אין יעדער כעדער פון דעם טעקסט-באזירט לעקציע.
דיזיינינג אַ ברעט
מיר וועלן שילדערן אונדזער ברעט מיט אַ גריד אויסלייג, ווי איך דערמאנט פריער. מיר וועלן מאַכן אַ רשימה מיטן נאָמען ברעט אין פּיטהאָן צו טאָן דאָס, און עס וועט אָנהייבן מיט 10 ליידיק וואַלועס.
ווייַל דער באַניצער קענען נאָר אַרייַן נומערן 1 ביז 9, ניט 0 ביז 8, מיר האָבן 10 ליידיק וואַלועס אלא ווי 9. אַזוי, אין סדר צו פאַרפּאָשעטערן די טינגז, מיר געבן אונדזער רשימה ס ערשטער פּאָזיציע די ווערט "ליידיק טעקסט."
אין דעם שטייגער, מיר קענען נוצן 1-9 אַנשטאָט פון 0-8 צו אינדעקס די איינסן אין אונדזער רשימה.
insertletter()
בריוו און פּאָס וועט זיין די צוויי ינפּוץ פֿאַר דעם פֿונקציע. עס וועט נאָר שטעלן די געבעטן בריוו אין די געבעטן אָרט.
פּלאַץ איז פריי (פּאָס)
פשוט געזאגט, דעם אופֿן וועט מיטטיילן אונדז אויב די ספּעסיפיעד געגנט איז פריי. דערפאר איז שוין נישט דא קיין בריוו. Pos, זיין איינציקע אַרגומענט, וועט זיין אַ גאַנץ נומער צווישן 1 און 9.
printBoard (באָרד)
דער ברעט איז געשיקט ווי אַן אַרגומענט צו דעם אופֿן, וואָס דיספּלייז עס אויף די קאַנסאָול.
איז ווינער ()
באַזירט אויף די פאָרשטעלן ברעט, די פֿונקציע וועט לאָזן אונדז וויסן אויב די סאַפּלייד בריוו איז וואַן. עס האט צוויי פּאַראַמעטערס: לאַ און ברעט (בריוו).
עס מוזן זיין אַ "X" אָדער אַ "אָ." פשוט קוק צו זען אויב די ספּעסיפיעד בריוו איז פאָרשטעלן אויף יעדער פּאָטענציעל ווינינג שורה אויף דעם ברעט.
הויפּט ()
ווען מיר ווילן צו אָנהייבן דעם שפּיל, מיר וועלן רופן דעם אופֿן. עס וועט רופן יעדער איין פון אונדזער פּראָגראַם ס פילע פאַנגקשאַנז און ווייַזן ווי די פּראָגראַם איז געמיינט צו לויפן.
איזBoardFull()
ווען געגעבן אַבאָרד ווי אַ אַרייַנשרייַב, דעם אופֿן וועט פשוט צוריקקומען אמת אויב די ברעט איז פול און פאַלש אַנדערש.
playerMove()
אין דעם אופֿן, מיר וועלן בעטן אַ מאַך פון די באַניצער און וואַלאַדייט עס. דער בריוו וועט זיין מוסיף צו די ברעט אויב די מאַך איז לאַדזשיטאַמאַט. אויב ניט, מיר וועלן פאָרזעצן צו בעטן די באַמערקונגען פון דער באַניצער.
CompMove() - אַי
די אַי וועט איצט אָנהייבן. די באַוועגונג פון די קאָמפּיוטערס וועט זיין קאַנטראָולד דורך דעם פֿונקציע. עס וועט אָפּשאַצן די ברעט און קלייַבן די בעסטער מאַך צו מאַכן.
די פאלגענדע איז אַ רשימה פון די אַלגערידאַם וואָס מיר וועלן נוצן צו טאָן דאָס.
- אויב די קראַנט שריט קענען ניט זיין פאַרטיק, מאַך אויף צו די פאלגענדע.
- נעמען די ווינינג מאַך אויב איר קענען.
- מאַך אין אַז שטעלע אויף די פאלגענדע קער אויב די שפּילער האט אַ פּאַטענטשאַלי ווינינג מאַך.
- קלייַבן אַ ווינקל און קער עס. קלייַבן ראַנדאָם אויב עס זענען עטלעכע אָפּציעס.
- שטעלן זיך אין די מיטל.
- באַטראַכטן איינער פון די עדזשאַז. קלייַבן ראַנדאָם אויב עס זענען עטלעכע אָפּציעס.
- אויב עס איז קיין וועג צו רירן, די שפּיל ענדס אין אַ בונד.
selectrandom()
געגעבן אַ רשימה פון פּאָטענציעל לאָוקיישאַנז, דעם פֿונקציע וועט קלייַבן ראַנדאָם די אַקציע צו נעמען.
דער שפּיל ס אָנהייב
די שפּיל קענען זיין סטאַרטעד איצט אַז מיר האָבן פאַרטיק אַלע אונדזער טאַסקס. אַלע מיר וואָלט דאַרפֿן צו טאָן איז רופן הויפּט אויב מיר נאָר געוואלט צו לויפן די שפּיל אַמאָל.
אָבער אין אונדזער סיטואַציע, מיר וועלן אַז די שפּיל זאָל פאָרזעצן צו לויפן ביז דער באַניצער באַשלאָסן אַז זיי וועלן נישט מער שפּילן, אַזוי מיר לייגן אַ קליינטשיק בשעת שלייף צו די הויפּט שורה.
גאַנץ קאָד
דאָ איז די גאנצע קאָד פֿאַר אונדזער שפּיל, וואָס איז איצט גאַנץ.
רעזולטאַט
סאָף
Hurray!
א שפּיל וואָס איר האָט געמאכט לעגאַמרע פֿון קראַצן. עס איז נישט אַ שפּיל וואָס מיר שפּילן אויף אַ רעגולער יקער. אבער עס אַידז אין די שרייבן פון לאָגיק און די וישאַלט פון אַ קלאָר סטרוקטור אין קאָד.
גליקלעך קאָדירונג!
לאָזן אַ ענטפֿערן