Satura rādītājs:

Matricas kods - Visual Basic: 7 soļi
Matricas kods - Visual Basic: 7 soļi

Video: Matricas kods - Visual Basic: 7 soļi

Video: Matricas kods - Visual Basic: 7 soļi
Video: Добро пожаловать в Visual Studio 2022 - Скотт Хансельман и его друзья 2024, Novembris
Anonim
Matricas kods - Visual Basic
Matricas kods - Visual Basic

Jauns un uzlabots Visual Basic kods parādīs "Matrix" līdzīgu efektu, ritinot One un Zero. Pēc tam tas tiek samazināts līdz Matrix "Wake Up Neo" secībai un pēc tam turpina ritināt ciparus. Es saprotu, ka tas nav gluži tā, kā secība iet filmā, bet bija cilvēki, kas lūdza šo funkcionalitāti, tāpēc es to pievienoju. Es domāju, ka veids, kā es nejauši izvēlos One un Zero sleju parādīšanu, ir visskaistākā koda daļa. Es apspriedu tieši to, ko es darīju vēlāk. Šis Instructable ir atbilde uz Brennn10 "Welcome to the Matrix in Command Prompt" Instructable. Kods, kas veido šo pamācību, sākotnēji tika balstīts uz kodu, kas tika publicēts DarkJoker komentārā par iepriekš minēto pamācību. Es apzināti esmu diezgan skaidri norādījis savu koda skaidrojumu, jo kopš pirmā saņemšanas esmu saņēmis diezgan daudz paskaidrojumu pieprasījumu ievietojis šo risinājumu.

1. darbība: paņemiet manu kodu

Es pievienoju savu kodu zemāk. Saglabājiet abus failus (startMatrix.itsabat un matrix.itsavbs) vienā datora mapē un noņemiet faila nosaukuma daļu "itsa", t.i., pārdēvējiet failus uz startMatrix.bat un matrix.vbs. Sikspārņu faili un vbs faili ir izpildāmi, un tāpēc es nevaru tos šeit augšupielādēt ar šiem paplašinājumiem. Tāpēc tie ir jāsaglabā un jāpārdēvē lokāli.

2. darbība: koda izpilde

Ja vēlaties palaist manu kodu, izpildiet tālāk sniegtos norādījumus. Ja jūs nevēlaties savā datorā izpildīt kaut ko tādu, par ko neko nezināt, jūs esat gudrs. Jums vajadzētu doties uz nākamo soli, kur es eju cauri kodam un parādīšu, ka neesmu izdarījis neko viltīgu. Tomēr, ja jūs vienkārši vēlaties to nokļūt (vai atrodaties kāda cita mašīnā un aprūpe), lūk, kā sākt kodu: 1. darbība: veiciet dubultklikšķi uz "startMatrix.bat". Tieši tā. Tagad pārejiet pie nākamās darbības, lai lasītu par tikko redzēto vēsumu.

3. darbība: izpratne par kodeksu, 1. daļa

Apskatīsim kodu, sākot no sākuma. Cerams, ka jūs varat pietiekami daudz uzzināt par VB no mana koda, lai jūs aizietu un iemācītos kodēt VB labāk nekā es:):) Tātad vispirms mums ir 2 faili: bat fails un vbs fails. Ja rediģējat sikspārņa failu, pamanīsit, ka tas izpilda vbs failu pēc loga, teksta krāsas un loga nosaukuma iestatīšanas. Pāriesim pie interesantākām lietām vbs failā. FYI, es šeit pieskaršos tikai visinteresantākajām koda rindiņām. Pievērsiet īpašu uzmanību arī rindiņām, kas sākas ar '(atzīmējiet vai vienu citātu). Tie ir komentāri, un tie netiks izpildīti. Pirmās matricas.vbs rindas saka: "Iestatiet manus kļūdu ziņojumus skaidrā līmenī", bet tajā pašā laikā "Neļaujiet kļūdām, kuras es pieļāvu, liktenīgas." Īstas diskusijas nav vajadzīgas. 5. rinda. Mūsu neskaidrais paziņojums šeit nosaka visus mainīgos, kurus mēs izmantosim visas mūsu mazās programmas darbības laikā. Mums nav jādeklarē šo mainīgo veidi vai to sākotnējās vērtības, kā tas varētu notikt dažās citās valodās. VB ir “spēcīgs”. 12. rinda: objSysInfo ļauj apkopot informāciju par sistēmu, kurā mēs darbojamies. Mēs izveidojam objektu šeit, un 13. rindā objSysInfo. UserName atgriež tā lietotāja vārdu, kurš pašlaik ir pieteicies un kurš izpilda šo kodu. Tas tiks izmantots vēlāk “Neo” vietā, lai mūsu skripts varētu pateikt “Mosties, Mārtiņ…”, ja tas tiek palaists manā mašīnā, vai “Mosties, Brennn10…”, ja tas tiek palaists ar Brennn10 mašīnu un ja tas bija viņa lietotājvārds. Izmantojot sistēmas lietotājvārdu, varat to iemest sava drauga drauga atbloķētajā mašīnā, un tas automātiski izvilks viņa vārdu, nemainot kodu. Ejam tālāk.

4. darbība. Izpratne par kodeksu, 2. daļa

16. rinda: sub gaidīšana ir mūsu pirmā apakšprogramma. Apakšprogrammu var izsaukt no citas koda vietas, tā izpildīs kodu apakšprogrammas pamattekstā un pēc tam atgriezīs programmas vadību pie izsaukuma koda. waitfor izveido mūsu apvalku. Veicot to ciklā ar “miega režīmu” cilpā, mēs ļaujam apvalka aktivizēšanai pabeigt pirms kontroles atgriešanas, kas ir ļoti laba lieta. 26. rinda: apakšmatrica ir mūsu otrā apakšprogramma, un tā aizņem parametrs, ko sauc par "elementiem". Šī apakšprogramma drukā atdzistos skaitļus, kas, šķiet, "nokrīt", kā filmā. Šeit es esmu uzskatījis dažas lietas par pašsaprotamu. Cerams, ka, izskaidrojot tos, jūs sapratīsit, no kurienes es nāku, un varēsit to izdarīt labāk nekā es. Pirmkārt, es pieņemu, ka vēlaties tikai 5 ciparu kolonnas un ka "elementi" dalās ar kolonnu skaitu (5). To bija viegli garantēt, jo vēlāk es paziņoju, ka "matricai" nodotie parametri ir 200 un 100 (to sauc divreiz). Es arī pieņemu, ka vēlaties, lai visas 5 kolonnas būtu ieslēgtas pēc noklusējuma. Es domāju, ka tas izskatās labi, taču jūs varētu mainīt dažus no tiem uz FALSE, ja vēlaties, lai pirmā skaitļu rinda šķiet tikpat nejauša kā pārējās rindas. Labi, tāpēc mums ir 5 kolonnas, mums ir 200 / 5 = 40 parādāmās skaitļu rindas (linesToWrite), un visas mūsu kolonnas ir ieslēgtas pēc noklusējuma. 41. rinda: mēs ievadām divas cilpas "par", no kurām pirmā (cilpa A) iziet cauri mūsu līnijāmToWrite un otrā (Cilpa B), kas pārvietojas pa kolonnu skaitu. B ciklā mēs izvēlamies cilpas mainīgā cilpas B vērtību, un atkarībā no tā vērtības mēs novērtējam If-Else paziņojumu. Ja attiecīgā kolonna ir iespējota ("TRUE" vai "ieslēgta"), mēs, izmantojot "wshshell. SendKeys", izdrukāsim Int (Round (rnd ())) vērtību, kam sekos cilne. Pretējā gadījumā mēs izdrukāsim tikai cilni, lai kolonna būtu tukša. Tātad, kāda ir Int (kārta (rnd ())) vērtība? rnd () atgriež nejaušu peldošā komata skaitli starp 0,0 un 1,0, kārta () ņems šo vērtību un noapaļos līdz tuvākajai vesela skaitļa vērtībai, un Int () rezultātu pārnesīs uz veselu skaitli. Šo pēdējo soli varētu uzskatīt par pārmērīgu, jo Round () zvanam vajadzētu dot mums 0 vai 1. Es to darīju tikai ieraduma dēļ. Kādā brīdī kāds man ir teicis, ka tas ir drošāk, un es acīmredzot to vēl neesmu aizmirsis. Par 3. daļu…

5. darbība: izpratne par kodeksu, 3. daļa

Turpinot apakšmatricu, šeit ir dažas nākamās VB rindas … "Šīs flip-flops kolonnas", tādēļ, ja kolonna ir IZSLĒGTA, tā tiks ieslēgta 30 procentus laika, un, ja kolonna ir ieslēgta, tā tiks ieslēgta izslēgts 30 procentus gadījumu. turnOffMax = 0,30 turnOnMax = 0,30Pārslēdzot katru kolonnu 30% gadījumu, skaitļu kolonnas "nokrīt" nejauši, līdzīgi kā filmā. Nav precīzi, bet tuvu. '1. sleja flip-flop flipMe = rnd () Ja ((col1 = ieslēgts) un (flipMe <turnOffMax)) Tad kolonna 1 = pagriezta izslēgta citādi, ja ((kol1 = pagriezta izslēgta) un (flipMe <turnOnMax)) Pēc tam kolonna 1 = ieslēgta Iepriekš minētais bloks nosaka, kā mēs nosakām, vai nākamajā iterācijā nākamajā skaitļu rindā parādīsim skaitli attiecīgajā slejā. Kods ir šāds: "ja kolonna ir ieslēgta un nejaušais skaitlis, ko sauc par flipMe, ir mazāks par 30%, izslēdziet kolonnu. Pretējā gadījumā, ja kolonna ir izslēgta un flipMe ir mazāka par 30%, ieslēdziet kolonnu." uz augšu sub Matrix. Ieslēgt apakšatslēgu…

6. darbība: apakšatslēga ()

Atslēgas metode ir zemāk..sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subThis metode izdrukā virkni "msg". Tas izdrukās visu, ko palaidīsit garām. Šī metode tiek izsaukta vēlāk kodā. Pirmā FOR cilpa izdrukā katru virknes rakstzīmi pa vienam un pauzē 250 milisekundes starp katru rakstzīmi. Pēc tam mēs guļam 3000 milis (3 sekundes) un izrakstām atpakaļatkāpi par katru rakstzīmi, kuru mēs iepriekš drukājām, šoreiz nedaudz mazāk. Tas ir viss. Dodieties uz programmas galveno daļu, kur viss ir kopā.

7. solis: galvenais

Programmas galvenā izpilde izsauc waitFor un matricu (ko mēs jau esam apskatījuši), lai visu iestatītu un izrakstītu 200 bināro ciparu, kas sadalīti 5 kolonnās. Pēc tam tiek uztverts pašreizējā sistēmas lietotāja vārds un ar to manipulēts, lai tas tiktu izdrukāts kā daļa no "modināšanas" secības. Pēc tam mēs ievadām cilpu FOR, kuru mēs zinām, ka atkārtosim tikai 4 reizes, jo "1" Līdz 4 collu ierobežojumam. Pēc tam mēs izvēlamies mūsu cilpas mainīgo (loopA), kas pirmo reizi atbilst pirmajam CASE paziņojumam, otrais CASE paziņojums otro reizi caur cilpu utt. Katrai cilpas iterācijai myString ir iestatīts pareizs virknes attēlojums darbības vārdu, kuru mēs vēlamies drukāt, un galvenā apakšprogramma tiek izsaukta, lai faktiski veiktu drukāšanu. Acīmredzot ir daudz citu veidu, kā izveidot šo cilpu, un es to atstāšu lasītājam. Kad mēs iziesim no cilpas FOR, mēs vēlreiz izsauksim matricas apakšprogrammu, lai izdrukātu vairāk numuru. Kā teikts koda komentārā, ja vēlaties, varat nosūtīt šo pēdējo zvanu uz matricu () vai vienkārši piezvanīt ar lielāku numuru utt. Visbeidzot, mūsu aicinājums atmest () pārtrauc programmu izpilde (vienmēr laba prakse: P). Ceru, ka visiem ir jautri izmantot manu piemēru un padarīt to labāku! Ja šī pamācība ir izraisījusi jūsu zinātkāri ar VB, Google var nodrošināt daudz labu resursu, lai uzzinātu vairāk par to, nekā es jums varu pateikt. Laimīgu kodēšanu! Mārtiņš

Ieteicams: