Taula de continguts:

Matrix Code - Visual Basic: 7 passos
Matrix Code - Visual Basic: 7 passos

Vídeo: Matrix Code - Visual Basic: 7 passos

Vídeo: Matrix Code - Visual Basic: 7 passos
Vídeo: How To Create An Employee Training Application In Excel [FREE DOWNLOAD] 2024, Desembre
Anonim
Matrix Code: Visual Basic
Matrix Code: Visual Basic

El codi Visual Basic nou i millorat mostrarà un efecte similar a "Matrix", amb desplaçament de One i Zero. A continuació, es talla la seqüència Matrix "Wake Up Neo" i, a continuació, continua desplaçant-se per números. M'adono que no és exactament com va la seqüència dins de la pel·lícula, però hi havia gent que demanava aquesta funcionalitat, així que la vaig afegir. Crec que la forma més aleatòria de mostrar les columnes de One i Zero és la part més maca del codi. Discuteixo exactament el que vaig fer més tard. Aquest instructable respon a l'instruible "Benvingut a la matriu a l'indicador d'ordres" de Brennn10. El codi que compon aquest Instructable es basava inicialment en el codi publicat en un comentari de DarkJoker sobre l’Instruible anterior. He estat intencionadament bastant explícit amb la meva explicació del codi, ja que he rebut força peticions d’aclariments des de la primera vegada ha publicat aquesta solució.

Pas 1: agafa el meu codi

A continuació he adjuntat el meu codi. Deseu els dos fitxers (startMatrix.itsabat i matrix.itsavbs) dins de la mateixa carpeta del vostre equip i traieu la part "itsa" del nom del fitxer, és a dir, canvieu el nom dels fitxers a startMatrix.bat i matrix.vbs. Els fitxers bat i els fitxers vbs són executables i, per tant, no els puc carregar amb aquestes extensions aquí. És per això que els heu de desar i canviar de nom localment.

Pas 2: execució del codi

Si voleu executar el meu codi, seguiu les instruccions següents. Si no voleu executar alguna cosa a la vostra màquina de la qual no sabeu res, sou intel·ligent. Hauríeu de passar al següent pas, on passo el codi i us mostro que no he fet res fals. No obstant això, si només voleu arribar-hi (o esteu a la màquina d’una altra persona i no cura), aquí s'explica com iniciar el codi: Pas 1: feu doble clic a "startMatrix.bat". Això és tot. Ara aneu al següent pas per llegir sobre la frescor que acabeu de veure.

Pas 3: entendre el codi, primera part

Fem una ullada al codi, començant pel principi. Tant de bo que pugueu aprendre prou sobre VB amb el meu codi perquè desaparegueu i aprengueu a codificar en VB millor que jo:)) Per tant, primer, tenim dos fitxers: un fitxer bat i un fitxer vbs. Si editeu el fitxer bat, notareu que executa el fitxer vbs després de configurar la finestra, el color del text i el títol de la finestra. Passem a allò més interessant del fitxer vbs. FYI, aquí només tocaré les línies de codi més interessants. A més, tingueu en compte les línies que comencen en un "(tick o cometa senzilla). Aquests són comentaris i NO S’EXECUTARAN. Les primeres línies de matrix.vbs diuen "Estableix els missatges d’error al nivell explícit", però al mateix temps "No deixis que els errors que he comès siguin mortals". No cal cap debat real. Línia 5: la nostra afirmació feble estableix aquí totes les variables que utilitzarem al llarg de la vida del nostre petit programa. No necessitem declarar tipus per a aquestes variables ni valors inicials per a elles, com podríem fer en altres idiomes. VB és "potent" com aquest. Línia 12: objSysInfo ens permet recopilar informació sobre el sistema en què estem executant. Creem l’objecte aquí i, a la Línia 13, objSysInfo. UserName retorna el nom de l’usuari connectat actualment que executa aquest codi. Això s'utilitzarà més endavant en lloc de "Neo", de manera que el nostre guió pugui dir "Wake up, Martin …" si s'està executant a la meva màquina o "Wake up, Brennn10 …" si s'està executant a la màquina de Brennn10 i si Aquest era el seu nom d’usuari. L’ús del nom d’usuari del sistema us permet llançar-lo a la màquina desbloquejada del vostre amic i traurà el seu nom automàticament, sense haver d’alterar el codi. Seguim endavant.

Pas 4: entendre el codi, part 2

Línia 16: sub waitfor és la nostra primera subrutina. Es pot trucar a una subrutina des d'un lloc diferent del codi, executarà el codi dins del cos de la subrutina i retornarà el control del programa al codi de trucada. waitfor ens configura el nostre shell. En fer-ho en un bucle amb un "son" dins del bucle, permetem que l'activació de l'intèrpret d'ordres es completi abans que es retorni el control, cosa que és molt bona. Línia 26: la sub matriu és la nostra segona subrutina i pren un paràmetre anomenat "elements". Aquesta subrutina fa la impressió dels números genials que semblen "caure", com a la pel·lícula. He donat algunes coses per descomptat aquí. Amb sort, explicant-los entendreu d’on vinc i el podreu fer millor que jo. En primer lloc, suposo que només voleu 5 columnes de números i que els "elements" siguin divisibles pel nombre de columnes (5). Això era fàcil de garantir, perquè més endavant declaro que els paràmetres passats a "matriu" són 200 i 100 (es diu dues vegades). També suposo que voleu que les 5 columnes estiguin activades per defecte. Crec que sembla correcte, però en podríeu canviar alguns per FALS si voleu que la primera línia de números sembli tan aleatòria com ho serà la resta de files. 5 = 40 línies de números que es mostraran (linesToWrite) i totes les nostres columnes estan activades per defecte. Línia 41: entrem en dos bucles "for", el primer dels quals (Loop A) recorre les nostres línies ToWrite i el segon (Bucle B) que fa un recorregut pel nombre de columnes. A Loop B, seleccionem el valor de la variable loop de loopB i, segons el seu valor, avaluem una sentència If-Else. Si la columna en qüestió està habilitada ("TRUE" o "activada"), imprimirem, mitjançant "wshshell. SendKeys", el valor de Int (Round (rnd ())), seguit d'una pestanya. En cas contrari, només imprimirem una pestanya, de manera que la columna aparegui buida. Quin valor té Int (Round (rnd ()))? rnd () retorna un número de punt flotant aleatori entre 0,0 i 1,0, Round () agafarà aquest valor i l’arrodonirà al valor enter més proper, i Int () emet el resultat a un enter. Aquest darrer pas es podria considerar excessiu, ja que la trucada Round () ens hauria de donar 0 o 1. Ho vaig fer només per costum. En algun moment algú em degué dir que era més segur i, pel que sembla, encara no ho he oblidat. A la tercera part …

Pas 5: entendre el codi, part 3

Continuant amb la submatriu, aquí teniu les següents línies de VB … "Aquestes xancletes de columnes", de manera que si una columna està DESACTIVADA, s'activarà el 30 per cent del temps "i, si una columna està ACTIVADA, estarà activada apagat el 30% del temps. turnOffMax = 0,30 turnOnMax = 0,30 Si canvieu cada columna el 30% del temps, les columnes numèriques "cauen" d'una manera aleatòria similar a com ho fan a la pel·lícula. No és exacte, però proper. 'Columna 1 flip-flop flipMe = rnd () If ((col1 = activatOn) i (flipMe <turnOffMax)) Llavors col1 = activatOff Else If ((col1 = activatOff) i (flipMe <turnOnMax)) Llavors col1 = activatOn End IfThe El bloc anterior tracta com es determina si mostrarem un número a la columna donada durant la següent iteració, per a la següent fila de números. El codi diu "si la columna està activada i el número aleatori anomenat flipMe és inferior al 30%, desactiveu la columna. En cas contrari, si la columna està desactivada i flipMe és inferior al 30%, activeu la columna". pujar sub Matrix. S'està activant la tecla secundària …

Pas 6: clau secundària ()

El mètode de la clau és a continuació. La tecla sub (msg) fa impressions de missatges "la matriu" i esborreu-los wscript.sleep 1500length = len (msg) per a la posició = 1 fins a la longitud wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subAquest mètode imprimeix una cadena "msg". S'imprimirà tot el que passi. Aquest mètode s’anomena més endavant al codi. El primer bucle FOR imprimeix cada caràcter de la cadena, d’un en un, i s’atura durant 250 mil·lisegons entre cada caràcter. Després dormim 3000 mil·lis (3 segons) i escrivim un retrocés per a cada personatge que vam imprimir prèviament, dormint aquesta vegada una mica menys. Això és tot. Passem al cos principal del programa, on tot s’uneix.

Pas 7: principal

La principal execució del programa crida waitFor i matrix (que ja hem tractat) per configurar-ho tot i escriure 200 dígits binaris, repartits en 5 columnes. A continuació, s’agafa i manipula el nom de l’usuari actual del sistema per imprimir-lo com a part de la seqüència de "despertar". A continuació, introduïm un bucle FOR, que sabem que només repetirem més de 4 vegades a causa del "1 A restricció de 4 ". A continuació, SELECCIONEM la nostra variable de bucle (bucle A), que coincideix amb la primera sentència CASE la primera vegada que passa, la segona sentència CASE la segona vegada que passa el bucle, etc. el verb que volem imprimir i es crida a la subrutina clau per fer la impressió. Evidentment, hi ha moltes altres maneres de dissenyar aquest bucle i ho deixaré com a exercici al lector. Un cop sortim del bucle FOR, tornem a trucar a la subrutina matricial per imprimir més números. Com diu el comentari del codi, podeu posar aquesta trucada final a matrix () en un bucle, si voleu, o simplement podeu trucar-la amb un número més gran, etc. Finalment, la nostra trucada per deixar de fumar execució (sempre bona pràctica: P). Espero que tothom es diverteixi prenent el meu exemple i millorant-lo. Si aquest instructable us ha despertat la curiositat amb VB, Google us pot proporcionar una gran quantitat de bons recursos per obtenir més informació del que us puc dir. Feliç codificació! Martin

Recomanat: