תוכן עניינים:

קוד מטריקס - Visual Basic: 7 שלבים
קוד מטריקס - Visual Basic: 7 שלבים

וִידֵאוֹ: קוד מטריקס - Visual Basic: 7 שלבים

וִידֵאוֹ: קוד מטריקס - Visual Basic: 7 שלבים
וִידֵאוֹ: אֵיך ל להשתמש מודול ב vb.net 2024, יולי
Anonim
קוד מטריקס - Visual Basic
קוד מטריקס - Visual Basic

קוד Visual Basic חדש ומשופר יציג אפקט דמוי "מטריקס", עם גלילת One's ו- Zero's. לאחר מכן הוא חותך לרצף "Wake Up Neo" של מטריקס, ולאחר מכן ממשיך לגלול מספרים. אני מבין שזה לא בדיוק איך הרצף הולך בתוך הסרט, אבל היו אנשים שביקשו את הפונקציונליות הזו, אז הוספתי אותו. אני חושב שהדרך שבה אני מציג אקראיות את הצגת העמודות של אחד ואפס היא החלק הכי מסודר של הקוד. אני דן בדיוק במה שעשיתי מאוחר יותר. הוראה זו היא בתגובה להנחיה "ברוכים הבאים למטריצה בשורת הפקודה" של Brennn10. הקוד המרכיב את המדריך הזה התבסס תחילה על קוד שפורסם בהערה של DarkJoker על ההוראה לעיל. בכוונה הייתי די מפורש עם ההסבר שלי על הקוד מכיוון שקיבלתי לא מעט בקשות הבהרה מאז שהתחלתי לראשונה פרסם את הפתרון הזה.

שלב 1: קח את הקוד שלי

צירפתי את הקוד שלי למטה. שמור את שני הקבצים (startMatrix.itsabat ו- matrix.itsavbs) בתוך אותה תיקיה במחשב שלך והסר את החלק "itsa" של שם הקובץ, כלומר שנה את שם הקבצים ל- startMatrix.bat ו- matrix.vbs. קבצי עטלף וקבצי vbs ניתנים להפעלה, ולכן אני לא יכול להעלות אותם עם התוספים האלה לכאן. זו הסיבה שעליך לשמור ולשנות את שמם באופן מקומי.

שלב 2: ביצוע הקוד

אם אתה רוצה להריץ את הקוד שלי, בצע את ההוראות הבאות. אם אתה לא רוצה לבצע משהו במחשב שלך שאתה לא יודע עליו כלום, אתה חכם. אתה צריך להמשיך לשלב הבא, שבו אני עובר על הקוד ומראה לך שלא עשיתי שום דבר ערמומי. עם זאת, אם אתה רק רוצה להגיע אליו (או שאתה במכונה של מישהו אחר ולא care), הנה איך לבעוט את הקוד: שלב 1: לחץ פעמיים על "startMatrix.bat". זהו. עכשיו המשך לשלב הבא כדי לקרוא על הקרירות שראית זה עתה.

שלב 3: הבנת הקוד, חלק 1

בואו נסתכל על הקוד, מההתחלה. אני מקווה שאתה יכול ללמוד מספיק על VB מהקוד שלי שתצא ותלמד כיצד לקוד ב- VB טוב ממני:) אז דבר ראשון, יש לנו 2 קבצים: קובץ עטלף וקובץ vbs. אם תערוך את קובץ העטלף, תבחין שהוא מבצע את קובץ ה- vbs, לאחר הגדרת החלון, צבע הטקסט וכותרת החלון. בואו נעבור לדברים המעניינים יותר בקובץ vbs. לידיעתך, אני עומד לגעת רק בשורות הקוד המעניינות ביותר כאן. כמו כן, שימו לב במיוחד לשורות המתחילות באות '(סמן או ציטוט בודד). אלה הערות, ולא יבוצעו. השורות הראשונות של matrix.vbs אומרות "הגדר את הודעות השגיאה שלי לרמה המפורשת" אך יחד עם זאת "אל תתנו לשגיאות שעשיתי להיות קטלניות". אין צורך בדיון אמיתי. שורה 5: ההצהרה העמומה שלנו כאן קובעת את כל המשתנים בהם נשתמש לאורך כל חיי התוכנית הקטנה שלנו. איננו צריכים להכריז על סוגים של משתנים אלה, או על ערכים ראשוניים עבורם, כפי שאנו עשויים בשפות אחרות. VB היא "עוצמתית" כזו. קו 12: objSysInfo מאפשר לנו לאסוף מידע על המערכת שעליה אנו מריצים. אנו יוצרים את האובייקט כאן, ובשורה 13, objSysInfo. UserName מחזיר את שם המשתמש המחובר כעת המבצע את הקוד הזה. זה ישמש מאוחר יותר במקום "ניאו", כך שהתסריט שלנו יוכל לומר "התעורר, מרטין …" אם הוא מופעל על המכונה שלי, או "התעורר, ברנן 10 …" אם הוא יופעל על המכונה של Brennn10 ואם זה היה שם המשתמש שלו. שימוש בשם המשתמש של המערכת מאפשר לך לזרוק אותו על המכונה הנעולה של חברך וזה ימשוך את שמו באופן אוטומטי, מבלי שתצטרך לשנות את הקוד. בוא נמשיך הלאה.

שלב 4: הבנת הקוד, חלק 2

שורה 16: תת ממתינים היא שגרת המשנה הראשונה שלנו. ניתן לקרוא לשגרת משנה ממקום אחר בקוד, תבצע את הקוד בתוך גוף תת -התוכנית ולאחר מכן תחזיר את בקרת התוכנית לקוד המתקשר. waitfor מכין לנו את הקליפה. על ידי פעולה זו בלולאה עם "שינה" בתוך הלולאה, אנו מאפשרים להפעלת המעטפת להסתיים לפני החזרת השליטה, וזה דבר טוב מאוד. קו 26: מטריצת משנה היא תת השגרה השנייה שלנו, ולוקחת פרמטר שנקרא "אלמנטים". תת -שגרה זו מבצעת הדפסה של המספרים המגניבים שנראים "נופלים", כמו בסרט. לקחתי כאן כמה דברים כמובן מאליו. אני מקווה שעל ידי הסברם תבין מאיפה אני בא ותוכל לעשות את זה טוב יותר ממני. ראשית, אני מניח שאתה רוצה רק 5 עמודות של מספרים, וש"אלמנטים "מתחלקים במספר העמודות (5). זה היה קל להבטיח כי בהמשך אני מצהיר שהפרמטרים שהועברו ל"מטריצה "יהיו 200 ו -100 (זה נקרא פעמיים). אני גם מניח שאתה רוצה שכל 5 העמודות יופעלו כברירת מחדל. אני חושב שזה נראה בסדר, אבל אתה יכול לשנות כמה מהם ל- FALSE אם אתה רוצה ששורת המספרים הראשונה תיראה אקראית כמו שאר השורות. OK, אז יש לנו 5 עמודות, יש לנו 200 / 5 = 40 שורות של מספרים להצגה (linesToWrite), וכל העמודות שלנו מופעלות כברירת מחדל. שורה 41: אנו נכנסים לשתי לולאות "עבור", הראשונה שבהן (לולאה A) עוברת בין linesToWrite והשנייה שלנו (לולאה B) שעוברת בין מספר העמודות. בלולאה B, אנו בוחרים את הערך של משתנה הלולאה B משתנה, ובהתאם לערכו אנו מעריכים משפט אם-אחר. אם העמודה המדוברת מופעלת ("TRUE" או "מופעל"), נדפיס באמצעות "wshshell. SendKeys" את הערך של Int (Round (rnd ())), ואחריו כרטיסייה. אחרת, נדפיס רק כרטיסייה, כך שהעמודה תראה ריקה. אז מה הערך של Int (Round (rnd ())))? rnd () מחזיר מספר נקודה צפה אקראית בין 0.0 ל -1.0, Round () ייקח את הערך הזה ויעגל אותו לערך מספר שלם הקרוב ביותר, ו- Int () יטיל את התוצאה למספר שלם. השלב האחרון הזה יכול להיחשב מוגזם, מכיוון שהשיחה Round () אמורה לתת לנו 0 או 1. עשיתי את זה רק בגלל הרגל. בשלב מסוים מישהו בטח אמר לי שזה בטוח יותר, וכנראה שעדיין לא שכחתי את זה. לחלק השלישי …

שלב 5: הבנת הקוד, חלק 3

בהמשך המשנה מטריקס, להלן השורות הבאות של VB … 'עמודות כפכפים', כך שאם עמודה כבויה, היא תופעל 30 אחוז מהזמן, 'ואם עמודה מופעלת, היא תהיה כבה 30 אחוז מהזמן. turnOffMax = 0.30 turnOnMax = 0.30 התייחסות לכל עמודה 30% מהזמן גורמת לעמודות המספרים "ליפול" באופן אקראי בדומה לאופן בו הם עושים בסרט. לא מדויק, אבל קרוב. 'עמודה 1 flip-flop flipMe = rnd () אם ((col1 = TurnOn) ו- (flipMe <turnOffMax)) ואז col1 = TurnOff אחרת אם ((col1 = TurnOff) ו- (flipMe <turnOnMax)) ואז col1 = הפך לסוף אם הבלוק שלמעלה מטפל כיצד אנו קובעים אם אנו הולכים להציג מספר בעמודה הנתונה במהלך האיטרציה הבאה, עבור שורת המספרים הבאה. הקוד כתוב "אם העמודה מופעלת, והמספר האקראי הנקרא flipMe הוא פחות מ -30%, כבה את העמודה. אחרת, אם העמודה כבויה וה- flipMe פחות מ -30%, הפעל את העמודה." זה עוטף את העמודה. עד תת מטריקס. למפתח המשנה…

שלב 6: מפתח משנה ()

שיטת המפתח היא להלן. מפתח משנה (הודעה) 'לעשות תדפיסים של הודעות "המטריצה", ומחק אותם wscript.sleep 1500length = len (msg) עבור position = 1 עד אורך wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000 למיקום = 1 לאורך wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend תת שיטה זו מדפיסה מחרוזת "מסר". הוא ידפיס כל דבר שתעביר אותו. שיטה זו נקראת מאוחר יותר בקוד. לולאת FOR הראשונה מדפיסה כל תו במחרוזת, אחת בכל פעם, ומשהה למשך 250 אלפיות השנייה בין כל תו. לאחר מכן אנו ישנים במשך 3000 מיליס (3 שניות) וכותבים רווח אחורי עבור כל תו שהדפסנו בעבר, וישנים הפעם קצת פחות. זה כל מה שיש. הלאה לגוף המרכזי של התוכנית, שם הכל מתאחד.

שלב 7: ראשי

הביצוע העיקרי של התוכנית קורא waitFor ו- matrix (שכבר סקרנו) כדי להגדיר הכל ולכתוב 200 ספרות בינאריות, המתפרסות על פני 5 עמודות. שם המשתמש הנוכחי של המערכת הנוכחי נלכד ומנוהל על מנת להדפיס אותו כחלק מרצף "השכמה". לאחר מכן אנו נכנסים ללולאת FOR, שאנו יודעים שנחזור עליה רק 4 פעמים בגלל "1" למגבלה של 4 אינץ '. לאחר מכן אנו בוחרים במשתנה הלולאה שלנו (loopA), התואם את משפט CASE הראשון בפעם הראשונה, משפט CASE השני בפעם השנייה דרך הלולאה, וכו '.כל איטרציה של הלולאה, myString מוגדרת לייצוג המחרוזת הנכון של המילה שאנו רוצים להדפיס, ותוכנית המשנה המרכזית נקראת לבצע את ההדפסה. כמובן שישנן דרכים רבות אחרות לעצב את הלולאה הזו, ואשאיר זאת כתרגיל לקורא. לאחר שנצא מלולאת ה- FOR, אנו קוראים שוב לשגרת המטריצה להדפסת מספרים נוספים. כפי שההערה בקוד אומרת, אתה יכול לשים את השיחה האחרונה הזו למטריצה () בלולאה אם תרצה, או שאתה יכול פשוט לקרוא לה במספר גדול יותר וכו '. לבסוף, הקריאה שלנו להפסיק () מפסיקה את התוכנית ביצוע (תמיד תרגול טוב: P). מקווה שכולם נהנים לקחת את הדוגמה שלי ולשפר אותה! אם הוראה זו עוררה את סקרנותך ב- VB, Google יכולה לספק המון משאבים טובים ללמוד עליה יותר ממה שאני יכול לספר לך. קידוד שמח! סְנוּנִית

מוּמלָץ: