Բովանդակություն:

Մատրիցային ծածկագիր - Visual Basic: 7 քայլ
Մատրիցային ծածկագիր - Visual Basic: 7 քայլ

Video: Մատրիցային ծածկագիր - Visual Basic: 7 քայլ

Video: Մատրիցային ծածկագիր - Visual Basic: 7 քայլ
Video: Այս բանաձևը կբացահայտի ձեր ապագան․ Ինչպես հաշվել կյանքի հաջողակ թվերը․ Էլյա Հովհաննիսյան 2024, Նոյեմբեր
Anonim
Մատրիցային ծածկագիր - Visual Basic
Մատրիցային ծածկագիր - Visual Basic

Նոր և կատարելագործված Visual Basic կոդը կցուցադրի «Մատրիցա» -ի նման էֆեկտ ՝ Մեկի և eroրոյի ոլորումով: Այնուհետև այն անցնում է «Արթնացիր նեո» մատրիցային հաջորդականությանը, այնուհետև շարունակում է թվեր ոլորել: Ես հասկանում եմ, որ սա հենց այն չէ, թե ինչպես է ֆիլմում ցուցադրվում հաջորդականությունը, բայց մարդիկ կխնդրեին այս ֆունկցիոնալությունը, ուստի ես ավելացրի այն: Կարծում եմ, որ մեկի և զրոյի սյուների ցուցադրումը պատահականորեն դարձնելու ձևը կոդի ամենագեղեցիկ մասն է: Ես քննարկում եմ այն, ինչ ես ավելի ուշ արեցի: Այս Instructable- ը ի պատասխան Brennn10- ի «Welcome to the Matrix in Command Prompt» Instructable- ի: Այս Instructable- ը կազմող կոդը սկզբում հիմնված էր վերը նշված Instructable- ի վրա DarkJoker- ի մեկնաբանության մեջ տեղադրված ծածկագրի վրա: Ես միտումնավոր բավականին հստակ էի ծածկագրի բացատրությամբ, քանի որ ես առաջին անգամից պարզաբանումների բավականին շատ դիմումներ եմ ստացել: տեղադրեց այս լուծումը:

Քայլ 1: Գրավի իմ ծածկագիրը

Ստորև կցել եմ իմ ծածկագիրը: Երկու ֆայլերը (startMatrix.itsabat և matrix.itsavbs) պահեք ձեր սարքի նույն պանակում և հեռացրեք ֆայլի անվան «ita» հատվածը, այսինքն ՝ ֆայլերը վերանվանեք startMatrix.bat և matrix.vbs: Bat ֆայլերը և vbs ֆայլերը գործարկելի են, և, հետևաբար, ես չեմ կարող դրանք բեռնել այդ ընդարձակումներով այստեղ: Ահա թե ինչու դուք պետք է դրանք պահեք և վերանվանեք տեղում:

Քայլ 2: Կոդի կատարում

Եթե ցանկանում եք գործարկել իմ կոդը, հետևեք ստորև նշված հրահանգներին: Եթե դուք չեք ցանկանում ձեր համակարգչում կատարել այնպիսի բան, որի մասին ոչինչ չգիտեք, դուք խելացի եք: Դուք պետք է անցնեք հաջորդ քայլին, որտեղ ես անցնում եմ ծածկագրով և ցույց եմ տալիս, որ ես ոչ մի խարդախ բան չեմ արել: Այնուամենայնիվ, եթե դուք պարզապես ցանկանում եք դրան հասնել (կամ դուք ուրիշի մեքենայի վրա եք և չեք խնամք), ահա թե ինչպես սկսել ծածկագիրը. Քայլ 1. կրկնակի սեղմեք «startMatrix.bat»-ի վրա: Ահա և վերջ: Այժմ անցեք հաջորդ քայլին ՝ կարդալու ձեր տեսած զովության մասին:

Քայլ 3. Հասկանալով օրենսգիրքը, մաս 1

Եկեք նայենք ծածկագրին ՝ սկսած սկզբից: Հուսով եմ, որ դուք կարող եք բավականաչափ սովորել VB- ի մասին իմ ծածկագրից, որը դուք կջնջեք և կսովորեք, թե ինչպես պետք է VB- ով կոդավորել ինձանից ավելի լավ:) Այսպիսով, առաջին հերթին, մենք ունենք 2 ֆայլ ՝ չղջիկի ֆայլ և vbs ֆայլ: Եթե խմբագրեք bat ֆայլը, ապա կնկատեք, որ այն կատարում է vbs ֆայլը ՝ պատուհանը, տեքստի գույնը և պատուհանի վերնագիրը կարգավորելուց հետո: Եկեք անցնենք vbs ֆայլի ավելի հետաքրքիր նյութերին: ԵՏՀ, ես այստեղ կանդրադառնամ միայն կոդի ամենահետաքրքիր տողերին: Բացի այդ, հատուկ ուշադրություն դարձրեք a (տառ) կամ մեկ մեջբերումով սկսվող տողերին:. Սրանք մեկնաբանություններ են և ՉԻ ԿԱՏԱՐՎԵԼ: matrix.vbs- ի առաջին մի քանի տողերում գրված է «Տեղադրեք իմ սխալների հաղորդագրությունները հստակ մակարդակի վրա», բայց միևնույն ժամանակ «Թույլ մի տվեք, որ իմ կատարած սխալները ճակատագրական լինեն»: Իրական քննարկման կարիք չկա: Տող 5. Մեր աղոտ հայտարարությունն այստեղ ստեղծում է բոլոր այն փոփոխականները, որոնք մենք կօգտագործենք մեր փոքրիկ ծրագրի կյանքի ընթացքում: Մենք կարիք չունենք հայտարարելու այս փոփոխականների տեսակները կամ դրանց համար սկզբնական արժեքները, ինչպես կարող ենք դա անել որոշ այլ լեզուներով: VB- ն այսպես «հզոր» է: Տող 12: Մենք այստեղ ստեղծում ենք օբյեկտը, իսկ տող 13 -ում objSysInfo. UserName- ը վերադարձնում է այս կոդը կատարող ներկայումս մուտք գործած օգտվողի անունը: Սա հետագայում կօգտագործվի «Neo» - ի փոխարեն, որպեսզի մեր Սցենարը կարողանա ասել «Արթնացիր, Մարտին…», եթե այն աշխատում է իմ մեքենայի վրա, կամ «Wake up, Brennn10…», եթե այն աշխատում է Brennn10- ի մեքենայի վրա և եթե դա նրա օգտվողի անունն էր: Համակարգի օգտվողի անվան օգտագործումը թույլ է տալիս այն գցել ձեր ընկերոջ ապակողպված մեքենայի վրա և այն ինքնաբերաբար կքաշի նրա անունը ՝ առանց ծածկագիրը փոխելու: Շարունակենք:

Քայլ 4. Հասկանալով օրենսգիրքը, մաս 2

Տող 16. Ենթավճարը մեր առաջին ենթածրագրն է: Ենթածրագիրը կարող է կանչվել կոդի տարբեր վայրերից, կկատարի ծածկագիրը ենթածրագրի մարմնի ներսում և այնուհետև ծրագրի հսկողությունը կվերադարձնի զանգող կոդին: waitfor- ը մեզ համար ստեղծում է մեր պատյանը: Օղակի ներսում «քուն» անելով, մենք թույլ ենք տալիս, որ կեղևի ակտիվացումն ավարտվի նախքան վերահսկողությունը վերադարձնելը, ինչը շատ լավ բան է: Տող 26. Ենթամատրիցը մեր երկրորդ ենթածրագիրն է և պարամետր, որը կոչվում է «տարրեր»: Այս ենթածրագիրը կատարում է «ընկնելու» թվով թույն թվերի տպագրություն, ինչպես ֆիլմում: Այստեղ ես մի քանի բան վերցրել եմ որպես տրված: Հուսով եմ, որ դրանք բացատրելով կհասկանաք, թե որտեղից եմ գալիս և կարող եք դա անել ավելի լավ, քան ես:): Դա հեշտ էր երաշխավորել, քանի որ հետագայում ես հայտարարում եմ, որ «մատրիցային» փոխանցված պարամետրերը 200 և 100 են (այն կոչվում է երկու անգամ): Ես նաև ենթադրում եմ, որ ցանկանում եք, որ լռելյայն միացված լինեն բոլոր 5 սյուները: Կարծում եմ, որ ամեն ինչ լավ է թվում, բայց դրանցից մի քանիսը կարող եք փոխել ԿՈALԻ, եթե ցանկանում եք, որ թվերի առաջին տողը նույնքան պատահական թվա, որքան մնացած տողերը: Լավ, ուրեմն մենք ունենք 5 սյունակ, ունենք 200 / 5 = linesուցադրվող թվերի 40 տող (linesToWrite), և մեր բոլոր սյուները լռելյայն միացված են: Տող 41. Մենք մուտքագրում ենք երկու «for» օղակ, որոնցից առաջինը (Loop A) անցնում է մեր տողերովToWrite և երկրորդ (Loop B), որը շրջում է սյուների քանակով: Loop B- ում մենք ընտրում ենք loopB օղակի փոփոխականի արժեքը, և դրա արժեքից կախված մենք գնահատում ենք If-Else հայտարարությունը: Եթե սյունակը միացված է («TRUE», կամ «միացված»), մենք «wshshell. SendKeys» - ի միջոցով կտպագրենք Int- ի արժեքը (Round (rnd ())), որին հաջորդում է ներդիրը: Հակառակ դեպքում, մենք տպելու ենք միայն ներդիր, այնպես որ սյունակը դատարկ է թվում: Այսպիսով, որն է Int- ի արժեքը (Կլոր (rnd ())): rnd () վերադարձնում է պատահական լողացող կետի թիվ 0.0 -ից 1.0 -ի միջև, Round- ը () կվերցնի այդ արժեքը և կլորացնի այն մոտակա ամբողջ արժեքին, իսկ Int () արդյունքը կբերի ամբողջ թիվ: Այս վերջին քայլը կարելի է չափազանցված համարել, քանի որ Կլոր () զանգը պետք է մեզ տա 0 կամ 1: Ես դա արել եմ պարզապես սովորության պատճառով: Ինչ -որ պահի ինչ -որ մեկը պետք է ինձ ասեր, որ դա ավելի անվտանգ էր, և ես, ըստ երևույթին, դեռ չեմ մոռացել դա: 3 -րդ մասից…

Քայլ 5. Օրենսգրքի հասկացում, մաս 3

Շարունակելով ենթամատրիցը ՝ ահա VB- ի հաջորդ մի քանի տողերը… անջատվել է ժամանակի 30 տոկոսը: turnOffMax = 0.30 turnOnMax = 0.30 Յուրաքանչյուր սյունակ միացնելը ժամանակի 30% -ով ստիպում է թվային սյունակները «ընկնել» պատահական եղանակով, ինչպես ֆիլմում կատարվածը: Ոչ ճշգրիտ, բայց մոտ: '1-ին սյունակ flip-flop flipMe = rnd () Եթե ((col1 = turnOn) և (flipMe <turnOffMax)) Այնուհետեւ col1 = turnOff Else If ((col1 = turnOff) և (flipMe <turnOnMax)) Այնուհետեւ col1 = turnOn End IfThe վերը նշված բլոկը կարգավորում է, թե ինչպես ենք որոշում, թե արդյոք հաջորդ սերիայի ընթացքում թվեր կցուցադրե՞նք հաջորդ կրկնության ժամանակ ՝ թվերի հաջորդ տողի համար: «Եթե սյունակը միացված է, և պատահական թիվը, որը կոչվում է flipMe 30%-ից պակաս, անջատեք սյունակը: Հակառակ դեպքում, եթե սյունակն անջատված է, և flipMe- ն 30%-ից պակաս է, միացրեք սյունակը»: մինչեւ ենթամատրից. Ենթաբանալին անցնելու համար…

Քայլ 6: Ենթաբանալին ()

Հիմնական մեթոդը ստորև է: sub key (msg) 'տպել «մատրիցա» հաղորդագրությունները և ջնջել themwscript.sleep 1500length = len (msg) for position = 1 to length wshshell..sleep 250nextwscript.sleep 3000for position = 1 to wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75 ընդլայնել ենթակետ Այս մեթոդը տպում է տող "msg": Այն տպելու է այն, ինչ փոխանցում եք: Այս մեթոդը հետագայում կոչվում է ծածկագրում: Առաջին FOR loop- ը տպում է տողի յուրաքանչյուր նիշ, մեկ առ մեկ, և ընդմիջում է 250 միլիվայրկյան յուրաքանչյուր նիշի միջև: Այնուհետև մենք քնում ենք 3000 միլիլիս (3 վայրկյան) և գրում ենք հետադարձ տարածք յուրաքանչյուր նախապես տպած կերպարի համար ՝ այս անգամ մի փոքր ավելի քիչ քնելով: Ահա թե ինչ կա դրանում: Անցեք ծրագրի հիմնական մարմնին, որտեղ ամեն ինչ հավաքվում է:

Քայլ 7: Հիմնական

Mainրագրի հիմնական կատարումը կոչում է waitFor և մատրիցա (որը մենք արդեն լուսաբանել ենք) ՝ ամեն ինչ կարգաբերելու և 200 երկուական թվանշան դուրս գրելու համար, որոնք տարածված են 5 սյունակում: Այնուհետև գրվում և շահարկվում է համակարգի ներկայիս օգտագործողի անունը, որը տպագրվում է որպես «արթնանալ» հաջորդականության մի մաս: Այնուհետև մենք մուտքագրում ենք FOR օղակ, որը մենք գիտենք, որ «1» -ի պատճառով մենք կկրկնենք միայն 4 անգամ: 4 դյույմ սահմանափակում: Այնուհետև մենք ընտրում ենք մեր օղակի փոփոխականը (loopA), որն առաջին անգամ համապատասխանում է առաջին CASE հայտարարությանը, երկրորդ անգամ ՝ օղակի միջոցով և այլն: այն բառապաշարը, որը մենք ցանկանում ենք տպել, և հիմնական ենթածրագիրը կոչված է իրականում տպագրություն կատարել: Այս հանգույցը նախագծելու ակնհայտորեն շատ այլ եղանակներ կան, և ես դա որպես վարժություն կթողնեմ ընթերցողին: Երբ մենք դուրս գանք FORT հանգույցից, մենք կրկին զանգահարում ենք մատրիցային ենթածրագր ՝ ավելի շատ թվեր տպելու համար: Ինչպես նշում է ծածկագրում տրված մեկնաբանությունը, եթե ցանկանում եք, կարող եք այս վերջնական զանգը տեղադրել մատրիցային (), կամ կարող եք զանգահարել ավելի մեծ թվով և այլն: կատարում (միշտ լավ պրակտիկա. P): Հուսանք, որ բոլորը զվարճանում են ՝ վերցնելով իմ օրինակը և այն ավելի լավը դարձնելով: Եթե այս Instructable- ը հետաքրքրություն է առաջացրել VB- ի հետ, Google- ը կարող է տրամադրել մի շարք լավ ռեսուրսներ `դրա մասին ավելին իմանալու համար, քան ես կարող եմ ձեզ ասել: Շնորհավոր կոդավորում: Մարտին

Խորհուրդ ենք տալիս: