Агуулгын хүснэгт:
- Алхам 1: Миний кодыг аваарай
- Алхам 2: Дүрмийг хэрэгжүүлэх
- Алхам 3: Дүрмийг ойлгох, 1 -р хэсэг
- Алхам 4: Дүрмийг ойлгох, 2 -р хэсэг
- Алхам 5: Дүрмийг ойлгох, 3 -р хэсэг
- Алхам 6: Дэд түлхүүр ()
- Алхам 7: Үндсэн
Видео: Матрицын код - Visual Basic: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Шинэ болон сайжруулсан Visual Basic код нь "Matrix" шиг эффектийг харуулах бөгөөд One ба Zero-г гүйлгэж харуулна. Дараа нь "Wake Up Neo" матрицын дарааллыг хасч, дараа нь тоонуудыг үргэлжлүүлэн гүйлгэж байна. Энэ нь кинонд яг ийм байдлаар хийгддэггүй гэдгийг би ойлгож байна, гэхдээ хүмүүс энэ функцийг хүсч байсан тул би үүнийг нэмсэн. One ба Zero -ийн багануудыг санамсаргүй байдлаар харуулах арга нь кодын хамгийн цэвэр хэсэг гэж би боддог. Би дараа нь яг юу хийснээ хэлэлцэнэ. Энэхүү зааварчилгааны кодыг анх дээр дурдсан заавар дээр DarkJoker -ийн тайлбар дээр бичсэн код дээр үндэслэсэн болно. Би анхнаасаа л тодруулга авах хүсэлт цөөнгүй авсан тул кодын тайлбарыг санаатайгаар илэрхийлсэн. энэ шийдлийг нийтэлсэн.
Алхам 1: Миний кодыг аваарай
Би кодоо доор хавсаргав. Файлуудыг (startMatrix.itsabat ба matrix.itsavbs) хоёуланг нь машин дээрээ нэг фолдер дотор хадгалж, файлын нэрний "itsa" хэсгийг устгаж, өөрөөр хэлбэл файлуудын нэрийг startMatrix.bat болон matrix.vbs болгон өөрчил. Bat файлууд болон vbs файлуудыг ажиллуулах боломжтой тул би эдгээр өргөтгөлүүдийг энд байршуулж чадахгүй байна. Ийм учраас та тэдгээрийг орон нутагт хадгалж, нэрийг нь өөрчлөх ёстой.
Алхам 2: Дүрмийг хэрэгжүүлэх
Хэрэв та миний кодыг ажиллуулахыг хүсвэл доорх зааврыг дагана уу. Хэрэв та машин дээрээ юу ч мэдэхгүй байгаа зүйлийг хийхийг хүсэхгүй байгаа бол та ухаалаг хүн юм. Та кодоо уншиж, би ямар ч хуурамч зүйл хийгээгүй гэдгээ харуулах болно. тусламж), кодыг хэрхэн яаж эхлүүлэх вэ: Алхам 1: "startMatrix.bat" дээр давхар дарна уу. Одоо харсан сэрүүн байдлынхаа талаар уншихын тулд дараагийн алхам руу орно уу.
Алхам 3: Дүрмийг ойлгох, 1 -р хэсэг
Кодыг эхнээс нь авч үзье. Та миний кодоос VB -ийн талаар хангалттай их зүйлийг сурч, надаас илүү сайн VB дээр код бичиж сурах болно гэж найдаж байна.:) Тиймээс хамгийн түрүүнд бидэнд bat файл, vbs файл гэсэн 2 файл байна. Хэрэв та bat файлыг засварлавал цонх, текстийн өнгө, цонхны нэрийг тохируулсны дараа vbs файлыг ажиллуулдаг болохыг та анзаарах болно. Vbs файл дахь илүү сонирхолтой зүйл рүү шилжье. Мэдээлэл, би энд зөвхөн хамгийн сонирхолтой кодын мөрүүдийг хөндөх болно, мөн '(тэмдэглэл эсвэл ганц ишлэл) -ээс эхэлсэн мөрүүдэд онцгой анхаарал хандуулаарай.. Эдгээр нь сэтгэгдлүүд бөгөөд гүйцэтгэх боломжгүй. Matrix.vbs -ийн эхний хэдэн мөрөнд "Миний алдааны мэдэгдлийг тодорхой түвшинд тохируулаарай" гэж бичдэг боловч "Миний хийсэн алдааг үхэлд хүргэж болохгүй." Бодит хэлэлцүүлэг шаардлагагүй. 5 -р мөр: Энд байгаа бидний бүдэг мэдэгдэл нь бяцхан хөтөлбөрийнхөө туршид ашиглах бүх хувьсагчдыг тохируулдаг. Бид эдгээр хувьсагчдын төрлүүд эсвэл бусад зарим хэл дээрх шиг анхны утгыг зарлах шаардлагагүй болно. VB нь иймэрхүү "хүчирхэг" юм. 12 -р мөр: objSysInfo нь бидний ажиллаж байгаа системийн талаар мэдээлэл цуглуулах боломжийг олгодог. Бид объектыг энд үүсгэж, 13 -р мөрөнд objSysInfo. UserName нь энэ кодыг гүйцэтгэж буй нэвтэрсэн хэрэглэгчийн нэрийг буцаана. Үүнийг дараа нь "Нео" -ны оронд ашиглах бөгөөд ингэснээр манай скриптийг миний машин дээр ажиллуулж байгаа бол "Сэрээрэй, Мартин …" эсвэл Brennn10 -ийн машин дээр ажиллуулж байгаа бол "Сэрээрэй, Brennn10 …" гэж хэлэх боломжтой болно. Энэ нь түүний хэрэглэгчийн нэр байсан. Системийн хэрэглэгчийн нэрийг ашиглах нь найзынхаа түгжээг тайлсан машин дээр хаях боломжийг олгодог бөгөөд кодыг өөрчлөхгүйгээр түүний нэрийг автоматаар татах болно.
Алхам 4: Дүрмийг ойлгох, 2 -р хэсэг
16 -р мөр: sub waitfor бол бидний анхны дэд програм юм. Дэд програмыг кодын өөр газраас дуудаж болно, кодыг дэд програмын дотор гүйцэтгэж, дараа нь програмын хяналтыг дуудлагын код руу буцаана. waitfor бидний бүрхүүлийг бидэнд тохируулдаг. Үүнийг гогцоонд "унтдаг" гогцоонд хийснээр бид хяналтыг буцааж өгөхөөс өмнө бүрхүүлийг идэвхжүүлэхийг зөвшөөрдөг бөгөөд энэ нь маш сайн зүйл юм. 26 -р мөр: дэд матриц бол бидний хоёр дахь дэд програм бөгөөд параметрийг "элементүүд" гэж нэрлэдэг. Энэхүү дэд програм нь кинон дээр гардаг шиг "унах" шиг гайхалтай тоонуудыг хэвлэх болно. Би энд цөөн хэдэн зүйлийг ойлгосон. Тэдэнд тайлбарласнаар та миний хаанаас ирснийг ойлгох болно, үүнийг надаас илүү сайн хийж чадна гэж найдаж байна. Нэгдүгээрт, та зөвхөн 5 багана тоонуудыг хүсч байгаа бөгөөд "элементүүд" нь баганын тоонд хуваагддаг гэж би бодож байна.). Үүнийг батлахад хялбар байсан, учир нь дараа нь би "матриц" руу дамжуулсан параметрүүдийг 200 ба 100 гэж зарласан (үүнийг хоёр удаа нэрлэдэг). Мөн та бүх 5 баганыг анхдагчаар асаахыг хүсч байна гэж бодож байна. Энэ нь зүгээр харагдаж байна гэж бодож байна, гэхдээ хэрэв та тоонуудын эхний мөр бусад мөрүүд шиг санамсаргүй мэт санагдахыг хүсч байвал эдгээрийн заримыг ХУДАЛ болгож өөрчилж болно. 5 = 40 мөрийг харуулах тоонууд (lineToWrite), манай бүх багана анхдагчаар асаалттай байна. 41 -р мөр: бид хоёр "for" гогцоонд ордог бөгөөд эхнийх нь (Loop A) бидний шугамаар дамждагToWrite, хоёр дахь нь (Loop B) баганын тоогоор эргэлддэг. Loop B дээр бид loopB хувьсагчийн давталтын утгыг сонгож, түүний үнэ цэнээс хамааран If-Else мэдэгдлийг үнэлдэг. Хэрэв энэ багана идэвхжсэн бол ("ҮНЭН", эсвэл "асаасан") бол бид "wshshell. SendKeys" -ээр Int (Round (rnd ())) утгыг, дараа нь табыг хэвлэх болно. Үгүй бол багана хоосон харагдахаар зөвхөн табыг хэвлэх болно, тэгвэл Int (Round (rnd ())) -ийн үнэ цэнэ юу вэ? rnd () нь 0.0 -аас 1.0 хооронд санамсаргүй хөвөгч цэгийн дугаарыг буцаана, Round () нь энэ утгыг авч хамгийн ойр бүхэл тоо болгон дугуйруулж, Int () үр дүнг бүхэл тоо болгоно. Round () дуудлага нь бидэнд 0 эсвэл 1 өгөх ёстой тул энэ сүүлчийн алхамыг хэт даварсан гэж үзэж болно. Би үүнийг зуршлаасаа болоод л хийсэн. Хэзээ нэгэн цагт хэн нэгэн надад үүнийг илүү аюулгүй гэж хэлсэн байх, гэхдээ би хараахан мартаагүй байгаа бололтой. 3 -р хэсэгт …
Алхам 5: Дүрмийг ойлгох, 3 -р хэсэг
Матрицыг үргэлжлүүлээд VB-ийн дараагийн хэдэн мөрийг энд оруулав … 'Энэ нь эргэдэг багана,' хэрэв багана унтраалттай байвал түүнийг 30 % асаах болно ', хэрэв багана асаалттай байвал энэ нь байх болно. ихэнх тохиолдолд 30 % унтраасан. turnOffMax = 0.30 turnOnMax = 0.30Багана тус бүрийг 30% эргүүлснээр тоон багана нь кинонд гардаг шиг санамсаргүй байдлаар "унах" болно. Тодорхой биш, гэхдээ ойрхон байна. '1-р багана flip-flop flipMe = rnd () If ((col1 = TurnOn) ба (flipMe <turnOffMax)) Дараа нь col1 = өөрөөр унтраасан бол ((col1 = TurnOff) ба (flipMe <turnOnMax)) Дараа нь col1 = эргэсэн бол Дээрх блок нь дараагийн эгнээний тоонуудын дараагийн давталтын үеэр өгөгдсөн баганад дугаар харуулах эсэхийг хэрхэн тодорхойлохыг зохицуулдаг. Код нь "хэрэв багана асаалттай байгаа бөгөөд flipMe нэртэй санамсаргүй тоо 30%-иас бага байвал баганыг унтраана уу. Үгүй бол хэрэв багана унтарсан, flipMe 30%-иас бага байвал баганыг асаана уу." дэд матриц. Дэд түлхүүрийг асаах …
Алхам 6: Дэд түлхүүр ()
Түлхүүр арга нь доор байна.sub түлхүүр (msg) "матриц" мессежийн хэвлэмэл хуудсыг хэвлэх, мөн тэдгээрийг устгах wwscript.sleep 1500length = len (msg) to position = 1 to wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for to position = 1 to wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subThis арга нь мөрийг хэвлэдэг "msg". Энэ нь таны дамжуулсан бүх зүйлийг хэвлэх болно. Эхний FOR гогцоо нь тэмдэгт тус бүрийг нэг нэгээр нь хэвлэж, тэмдэгт бүрийн хооронд 250 миллисекундын турш түр зогсооно. Дараа нь бид 3000 миллис (3 секунд) унтаж, өмнө нь хэвлэсэн тэмдэгт бүрийнхээ арын хэсгийг бичээд энэ удаад арай бага унтаж байна. Бүх зүйл нэг дор цуглардаг хөтөлбөрийн үндсэн хэсэг рүү оръё.
Алхам 7: Үндсэн
Хөтөлбөрийн гол гүйцэтгэл нь 5 багана дээр тархсан 200 хоёртын цифрүүдийг тохируулах, бичихийн тулд waitFor болон matrix (бидний өмнө нь авч үзсэн болно) гэж нэрлэдэг. Дараа нь одоогийн системийн хэрэглэгчийн нэрийг барьж аваад "сэрээх" дарааллын нэг хэсэг болгон хэвлэх болно. Дараа нь FOR давталтыг оруулна уу. 4 "хүртэлх хязгаарлалт. Бид дараа нь давталтын хувьсагч (loopA) дээр SELECT хийх бөгөөд энэ нь эхний CASE мэдэгдлийг анх удаа давтах, хоёр дахь CASE мэдэгдлийг хоёр дахь удаа давталт хийх гэх мэтийг давтах гэх мэт давталт бүрт myString -ийг зөв мөрийн дүрслэлд тохируулсан болно. бидний хэвлэхийг хүсч буй үг хэллэг, үндсэн дэд програмыг хэвлэх ажлыг хийх гэж нэрлэдэг. Энэ давталтыг зохион бүтээх өөр олон арга байгаа нь мэдээжийн хэрэг бөгөөд үүнийг уншигчдад үлдээх болно. FOR циклээс гарсны дараа бид матрицын дэд програмыг дахин дугаарлаж хэвлэх болно. Кодын тайлбар дээр дурдсанаар та хүсвэл матриц () руу энэ сүүлчийн дуудлага хийх боломжтой, эсвэл илүү их дугаараар залгах боломжтой болно. Гүйцэтгэл (үргэлж сайн дадлага хийдэг: P). Миний үлгэр жишээг авч, илүү сайн болгох нь бүгд хөгжилтэй байх болно гэж найдаж байна! Хэрэв энэ зааварчилгаа нь таны сонирхлыг VB -д татсан бол Google танд энэ тухай илүү ихийг мэдэхийн тулд маш олон сайн эх сурвалж өгөх боломжтой. Аз жаргалтай кодчилол! мартин
Зөвлөмж болгож буй:
BT бүхий 8х8 матрицын дэлгэц: 5 алхам (зурагтай)
BT -тэй 8х8 матрицын дэлгэц: Би хэдхэн сарын өмнө Ebay (Хятад) -аас 4х8 ширхэг 8х8 хэмжээтэй матриц худалдаж авсан. сүлжээ бичсэн байна! 2 -р алхамыг үзнэ үү
WiFi хяналттай LED тууз матрицын дэлгэцийн цагийн гэрэл: 3 алхам (зурагтай)
WiFi хяналттай LED тууз матрицын дэлгэцийн цагны гэрэл: Програмчлагдах LED зурвас, жишээ нь. WS2812 дээр суурилсан, гайхалтай. Өргөдөл нь олон талт бөгөөд та гайхалтай үр дүнд хурдан хүрч чадна. Ямар нэгэн байдлаар цаг барих нь миний маш их боддог өөр домэйн юм шиг санагддаг. Туршлагаас эхлээд
WiFi идэвхжүүлсэн матрицын чийдэн: 6 алхам (зурагтай)
WiFi идэвхжүүлсэн матриц чийдэн: Гэрт байгаа анимацыг харуулах, бусад чийдэнтэй синхрончлох чадвартай гайхалтай гэрэлтэй байхыг хэн хүсэхгүй байна вэ? Зөв, хэн ч биш. Дэнлүү нь тус тусдаа хаяглах 256 LED -ээс бүрдэх бөгөөд бүх LED -ийг өөрчилж болно
Арын матрицын дугуйн гэрэл: 5 алхам
Арын матрицын дугуйн гэрэл: Сайн байцгаана уу! Би үргэлж л LED болон тэдний гэрэлтэх арга замыг сонирхож байсан бөгөөд энэ нь маш гайхалтай, ялангуяа 8х8 хэмжээтэй матриц ба RGB LED тууз юм. Би дугуйныхаа хойд дугуйны гэрлийг удаан хугацаанд бүтээхийг хүсч байсан. о барих
ESP8266 LED матрицын цаг: 8 алхам (зурагтай)
ESP8266 LED матрицын цаг: ESP8266 LED матрицын цаг Энгийн цагийн модуль бүхий алдартай ESP8266 дээр суурилсан энгийн LED матриц цаг, NTP серверээс WiFi -ээр цаг синхрончлох боломжтой. ESP32 хувилбар бас боломжтой