فهرست مطالب:

کد ماتریس - ویژوال بیسیک: 7 مرحله
کد ماتریس - ویژوال بیسیک: 7 مرحله

تصویری: کد ماتریس - ویژوال بیسیک: 7 مرحله

تصویری: کد ماتریس - ویژوال بیسیک: 7 مرحله
تصویری: پایتون | سه سوته یک تقویم بساز 2024, جولای
Anonim
کد ماتریس - ویژوال بیسیک
کد ماتریس - ویژوال بیسیک

کد جدید و بهبود یافته ویژوال بیسیک با پیمایش One's and Zero جلوه ای شبیه به "Matrix" را نمایش می دهد. سپس به دنباله ماتریس "بیدار شو نئو" می پردازد ، و سپس به حرکت در اعداد ادامه می دهد. من متوجه می شوم که این دقیقاً به این ترتیب دنباله در فیلم نیست ، اما افرادی بودند که این قابلیت را درخواست می کردند ، بنابراین من آن را اضافه کردم. من فکر می کنم نحوه تصادفی کردن نمایش ستون های One's and Zero مرتب ترین قسمت کد است. من دقیقاً در مورد آنچه بعداً انجام دادم بحث می کنم. این دستورالعمل در پاسخ به دستورالعمل Brennn10 "Welcome to the Matrix in Command Prompt" است. کدی که این دستورالعمل را تشکیل می دهد در ابتدا بر اساس کدی بود که در نظرات DarkJoker در دستورالعمل فوق ارسال شده بود. من عمداً توضیحات خود را در مورد کد نشان دادم زیرا از ابتدا درخواستهای زیادی برای توضیحات دریافت کردم این راه حل را ارسال کرد

مرحله 1: کد من را بگیرید

کد خود را در زیر ضمیمه کرده ام. هر دو فایل (startMatrix.itsabat و matrix.itsavbs) را در یک پوشه در دستگاه خود ذخیره کرده و قسمت "ita" نام فایل را حذف کنید ، یعنی نام فایلها را به startMatrix.bat و matrix.vbs تغییر دهید. فایل های bat و فایل های vbs قابل اجرا هستند ، بنابراین نمی توانم آنها را با آن پسوندها در اینجا بارگذاری کنم. به همین دلیل است که باید آنها را ذخیره کرده و نام محلی را تغییر دهید.

مرحله 2: اجرای کد

اگر می خواهید کد من را اجرا کنید ، دستورالعمل های زیر را دنبال کنید. اگر نمی خواهید چیزی را که در مورد آن چیزی نمی دانید روی دستگاه خود اجرا کنید ، شما باهوش هستید. شما باید به مرحله بعدی بروید ، جایی که من کد را مرور می کنم و به شما نشان می دهم که من کار شومی انجام نداده ام. با این حال ، اگر فقط می خواهید به آن برسید (یا در دستگاه شخص دیگری هستید و این کار را نمی کنید care) ، در اینجا نحوه شروع کد را مشاهده می کنید: مرحله 1: روی "startMatrix.bat" دوبار کلیک کنید. این تمام است. اکنون به مرحله بعدی بروید تا درباره خنکی که به تازگی مشاهده کرده اید ، مطالعه کنید.

مرحله 3: درک کد ، قسمت 1

بیایید نگاهی به کد بیندازیم ، از ابتدا. امیدوارم بتوانید به اندازه کافی در مورد VB از کد من یاد بگیرید که از کار بیفتید و نحوه کدگذاری در VB را بهتر از من بیاموزید:) بنابراین در ابتدا ، ما 2 فایل داریم: یک فایل bat و یک فایل vbs. اگر فایل bat را ویرایش کنید ، متوجه می شوید که پس از تنظیم پنجره ، رنگ متن و عنوان پنجره ، فایل vbs را اجرا می کند. بیایید به مطالب جالب تر در فایل vbs برویم. FYI ، من فقط جالب ترین خطوط کد را در اینجا لمس می کنم. همچنین ، توجه ویژه ای به خطوط شروع شده در "(تیک ، یا نقل قول واحد) داشته باشید به اینها نظرات هستند و اجرا نمی شوند. چند خط اول matrix.vbs می گوید "پیامهای خطای من را در سطح صریح تنظیم کنید" اما در عین حال "اجازه ندهید هیچ اشتباهی که مرتکب شده ام کشنده باشد." نیاز به بحث واقعی نیست. خط 5: عبارت کم نور ما در اینجا همه متغیرهایی را که در طول عمر برنامه کوچک خود استفاده خواهیم کرد ، تنظیم می کند. ما نیازی نداریم برای این متغیرها انواع یا مقادیر اولیه آنها را مانند برخی از زبانهای دیگر اعلام کنیم. VB مانند این "قدرتمند" است. خط 12: objSysInfo به ما اجازه می دهد تا اطلاعاتی را در مورد سیستمی که روی آن کار می کنیم جمع آوری کنیم. ما شیء را در اینجا ایجاد می کنیم و در خط 13 ، objSysInfo. UserName نام کاربر فعلی وارد شده که این کد را اجرا می کند را برمی گرداند. این بعداً به جای "Neo" مورد استفاده قرار می گیرد ، تا اسکریپت ما بگوید "بیدار شو ، مارتین …" اگر روی دستگاه من اجرا می شود ، یا "بیدار شو ، Brennn10 …" اگر روی دستگاه Brennn10 اجرا می شود و اگر این نام کاربری او بود. استفاده از نام کاربری سیستم به شما امکان می دهد آن را روی دستگاه قفل شده رفیق خود پرتاب کنید و بدون نیاز به تغییر کد ، نام او به طور خودکار کشیده می شود. بیایید ادامه دهیم.

مرحله 4: درک کد ، قسمت 2

خط 16: sub waitfor اولین زیر برنامه ماست. می توان یک روال فرعی را از مکان دیگری در کد فراخوانی کرد ، کد را در بدنه زیر روال اجرا می کند و سپس کنترل برنامه را به کد فراخوانی باز می گرداند. waitfor پوسته ما را برای ما تنظیم می کند با انجام این کار در یک حلقه با یک "خواب" در داخل حلقه ، اجازه می دهیم تا قبل از بازگشت کنترل ، پوسته کامل شود ، که این یک کار بسیار خوب است. خط 26: ماتریس فرعی دومین زیر روال ما است و پارامتری به نام "عناصر". این زیر روال چاپ اعداد جالبی است که به نظر می رسد "سقوط می کند" ، مانند فیلم. من در اینجا چند مورد را بدیهی در نظر گرفته ام. امیدوارم با توضیح آنها متوجه شوید که من از کجا آمده ام و می توانید این کار را بهتر از من انجام دهید. در ابتدا ، من فرض می کنم که شما فقط 5 ستون عدد می خواهید ، و "عناصر" بر تعداد ستون ها تقسیم می شود (5) این به راحتی قابل تضمین است زیرا بعداً پارامترهای منتقل شده به "ماتریس" را 200 و 100 اعلام می کنم (دو بار نامیده می شود). همچنین فرض می کنم که می خواهید هر 5 ستون به طور پیش فرض روشن شوند. من فکر می کنم که خوب به نظر می رسد ، اما اگر می خواهید خط اول اعداد به اندازه بقیه سطرها تصادفی به نظر برسد ، می توانید تعدادی از آنها را به FALSE تغییر دهید. خوب ، بنابراین ما 5 ستون داریم ، 200 داریم 5 = 40 خط اعداد برای نمایش (linesToWrite) ، و همه ستون های ما به طور پیش فرض روشن می شوند. خط 41: ما در دو حلقه "for" وارد می کنیم ، که اولین آنها (حلقه A) در خطوط ما می چرخد Toorite و دوم (حلقه B) که تعداد ستون ها را می چرخاند. در حلقه B ، مقدار متغیر حلقه loopB را انتخاب می کنیم و بسته به مقدار آن ، یک دستور If-Else را ارزیابی می کنیم. اگر ستون موردنظر فعال باشد ("TRUE" ، یا "روشن") ، ما مقدار "Int (Round ())" و سپس تب را از طریق "wshshell. SendKeys" چاپ می کنیم. در غیر این صورت ، ما فقط یک برگه را چاپ می کنیم ، به طوری که ستون خالی به نظر می رسد. بنابراین مقدار Int (Round (rnd ())) چقدر است؟ rnd () یک عدد نقطه شناور تصادفی بین 0.0 تا 1.0 را برمی گرداند ، Round () آن مقدار را گرفته و آن را به نزدیک ترین مقدار Integer گرد می کند و Int () نتیجه را به یک عدد صحیح می فرستد. این آخرین مرحله را می توان بیش از حد تلقی کرد ، زیرا فراخوان Round () باید 0 یا 1 به ما بدهد. من این کار را فقط به دلیل عادت انجام دادم. در نقطه ای باید کسی به من بگوید که این امن تر است ، و من ظاهراً هنوز آن را فراموش نکرده ام. در قسمت 3…

مرحله 5: درک کد ، قسمت 3

در ادامه زیر ماتریس ، چند خط بعدی VB وجود دارد … "این ستون های فلیپ فلاپس" ، بنابراین اگر یک ستون خاموش باشد ، 30 درصد مواقع روشن می شود ، و اگر یک ستون روشن باشد ، می شود 30 درصد مواقع خاموش می شود turnOffMax = 0.30 turnOnMax = 0.30 تعویض هر ستون در 30 درصد مواقع باعث می شود که ستون های شماره به شیوه ای تصادفی شبیه به نحوه انجام آنها در فیلم "سقوط" کنند. دقیق نیست ، اما نزدیک است. 'Column 1 flip-flop flipMe = rnd () If ((col1 = turnOn) و (flipMe <turnOffMax)) then col1 = turnOff Else If ((col1 = turnOff) و (flipMe <turnOnMax)) سپس col1 = turnOn End IfThe بلوک بالا به نحوه تعیین اینکه آیا در ردیف بعدی اعداد ، در تکرار بعدی ، یک عدد را در ستون داده شده نمایش می دهیم ، کمک می کند. کد "اگر ستون روشن است ، و شماره تصادفی به نام flipMe کمتر از 30 is است ، ستون را خاموش کنید. در غیر این صورت ، اگر ستون خاموش است و flipMe کمتر از 30 is است ، ستون را روشن کنید." زیر ماتریس روشن به کلید فرعی…

مرحله 6: کلید فرعی ()

روش کلیدی زیر است. کلید زیر (msg) "چاپ پیامهای" ماتریس "، و پاک کردن themwscript.sleep 1500length = len (msg) for position = 1 to length wshshell. SendKeys mid (msg، position، 1) wscript.sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75tendtend sub این روش یک رشته "msg" را چاپ می کند. هر چیزی را که از آن عبور کنید چاپ می کند. این روش بعداً در کد نامیده می شود. حلقه اول FOR هر یک از کاراکترهای رشته را یک به یک چاپ می کند و 250 میلی ثانیه بین هر کاراکتر مکث می کند. سپس ما 3000 میلی ثانیه (3 ثانیه) می خوابیم و برای هر نویسه ای که قبلاً چاپ کرده ایم ، یک فضای پشتی می نویسیم و این بار کمی کمتر می خوابیم. این همه چیز است. به قسمت اصلی برنامه بروید ، جایی که همه چیز در کنار هم قرار می گیرد.

مرحله 7: اصلی

اجرای اصلی برنامه waitFor و ماتریس (که قبلاً به آنها پرداخته ایم) را فرا می خواند تا همه چیز را تنظیم کرده و 200 رقم باینری را که در 5 ستون پخش شده اند بنویسید. سپس نام کاربر سیستم فعلی گرفته و دستکاری می شود تا به عنوان بخشی از دنباله "بیدار شدن" چاپ شود. سپس یک حلقه FOR وارد می کنیم ، که می دانیم به دلیل "1" فقط 4 بار تکرار می کنیم. تا محدودیت 4 اینچ سپس روی متغیر حلقه خود (loopA) SELECT می کنیم ، که با اولین دستور CASE در اولین بار ، با دستور CASE دوم بار دوم از طریق حلقه و غیره مطابقت دارد. در هر تکرار حلقه ، myString بر روی نمایش صحیح رشته تنظیم شده است کلمه ای که ما می خواهیم چاپ کنیم ، و زیر روال کلیدی برای چاپ در واقع فراخوانی شده است. بدیهی است که روشهای دیگری برای طراحی این حلقه وجود دارد ، و من آن را به عنوان یک تمرین به خواننده واگذار می کنم. هنگامی که از حلقه FOR خارج می شویم ، یکبار دیگر زیر روال ماتریس را برای چاپ اعداد بیشتر فرا می خوانیم. همانطور که در نظر کد آمده است ، در صورت تمایل می توانید این فراخوانی نهایی را در ماتریس () قرار دهید ، یا می توانید آن را با یک عدد بزرگتر و غیره فراخوانی کنید. در نهایت ، تماس ما برای خروج از برنامه () اعدام (همیشه تمرین خوب: P). امیدوارم همه از گرفتن مثال من و بهبود آن لذت ببرند! اگر این دستورالعمل کنجکاوی شما را با VB برانگیخته است ، گوگل می تواند منابع زیادی را برای کسب اطلاعات بیشتر در مورد آن در اختیار شما قرار دهد. کد نویسی مبارک! مارتین

توصیه شده: