İçindekiler:

Matris Kodu - Visual Basic: 7 Adım
Matris Kodu - Visual Basic: 7 Adım

Video: Matris Kodu - Visual Basic: 7 Adım

Video: Matris Kodu - Visual Basic: 7 Adım
Video: Profesyonel Bir Developer Gibi Visual Basic Kodu Yazma - Iskelet Kod Olusturma Süreçleri 2024, Temmuz
Anonim
Matris Kodu - Visual Basic
Matris Kodu - Visual Basic

Yeni ve geliştirilmiş Visual Basic kodu, Birler ve Sıfırlar kaydırılarak "Matris" benzeri bir efekt görüntüleyecektir. Daha sonra Matrix "Wake Up Neo" dizisini kesiyor ve sonra sayıları kaydırmaya devam ediyor. Dizinin filmde tam olarak böyle gitmediğini anlıyorum ama bu işlevi isteyen insanlar vardı, ben de ekledim. Sanırım One's ve Zero's sütunlarının görüntüsünü rastgele seçme yöntemim, kodun en temiz kısmı. Tam olarak ne yaptığımı daha sonra tartışırım. Bu Talimat, Brennn10'un "Komut İsteminde Matrix'e Hoş Geldiniz" Talimatına yanıt olarak verilmiştir. Bu Eğitilebilir Tabloyu oluşturan kod, başlangıçta DarkJoker tarafından yukarıdaki Eğitilebilir Öğe üzerine yapılan bir yorumda yayınlanan koda dayanıyordu. bu çözümü yayınladı.

Adım 1: Kodumu Alın

Kodumu aşağıya ekledim. Her iki dosyayı da (startMatrix.itsabat ve matrix.itsavbs) makinenizdeki aynı klasöre kaydedin ve dosya adının "itsa" bölümünü kaldırın, yani dosyaları startMatrix.bat ve matrix.vbs olarak yeniden adlandırın. Bat dosyaları ve vbs dosyaları yürütülebilir ve bu nedenle onları bu uzantılarla buraya yükleyemiyorum. Bu yüzden onları yerel olarak kaydetmeli ve yeniden adlandırmalısınız.

Adım 2: Kodu Yürütme

Kodumu çalıştırmak istiyorsanız, aşağıdaki talimatları izleyin. Makinenizde hakkında hiçbir şey bilmediğiniz bir şeyi yürütmek istemiyorsanız, akıllısınız. Bir sonraki adıma geçmelisiniz, burada kodu gözden geçirip size hileli bir şey yapmadığımı göstereceğim. Ancak, sadece ona ulaşmak istiyorsanız (veya başka birinin makinesindeyseniz ve yapmıyorsanız). dikkat), işte kodu nasıl başlatacağınız: Adım 1: "startMatrix.bat" üzerine çift tıklayın. İşte bu kadar. Şimdi az önce gördüğünüz serinliği okumak için bir sonraki adıma geçin.

Adım 3: Kodu Anlama, Bölüm 1

En baştan başlayarak koda bir göz atalım. Umarım benim kodumdan VB hakkında yeterince bilgi edinirsiniz ve VB'de nasıl kod yazılacağını benden daha iyi öğrenirsiniz:) İlk önce, ilk önce 2 dosyamız var: bir bat dosyası ve bir vbs dosyası. Bat dosyasını düzenlerseniz, pencereyi, metin rengini ve pencere başlığını ayarladıktan sonra vbs dosyasını çalıştırdığını fark edeceksiniz. Şimdi vbs dosyasındaki daha ilginç şeylere geçelim. Bilgiye, burada sadece en ilginç kod satırlarına değineceğim. Ayrıca, bir ' (tik veya tek tırnak) ile başlayan satırlara özellikle dikkat edin.. Bunlar yorumlardır ve ÇALIŞTIRILMAYACAKTIR. matrix.vbs dosyasının ilk birkaç satırı "Hata mesajlarımı açık düzeye ayarla" diyor ama aynı zamanda "Yaptığım hataların ölümcül olmasına izin verme." Gerçek bir tartışmaya gerek yok. Satır 5: Buradaki dim ifademiz, küçük programımızın ömrü boyunca kullanacağımız tüm değişkenleri belirler. Diğer bazı dillerde yaptığımız gibi, bu değişkenler için türler veya onlar için başlangıç değerleri bildirmemize gerek yoktur. VB bunun gibi "güçlüdür". Satır 12: objSysInfo, üzerinde çalıştığımız sistem hakkında bazı bilgiler toplamamıza izin verir. Nesneyi burada yaratırız ve 13. satırda objSysInfo. UserName, bu kodu yürüten ve şu anda oturum açmış olan kullanıcının adını döndürür. Bu, daha sonra "Neo" yerine kullanılacaktır, böylece Komut Dosyamız makinemde çalıştırılıyorsa "Uyan, Martin…" veya Brennn10'un makinesinde çalıştırılıyorsa "Uyan, Brennn10…" diyebilir ve eğer bu onun kullanıcı adıydı. Sistemin kullanıcı adını kullanmak, arkadaşınızın kilidi açılmış makinesine atmanıza izin verir ve kodu değiştirmeden adını otomatik olarak çeker. Devam edelim.

Adım 4: Kodu Anlama, 2. Kısım

Satır 16: sub waitfor bizim ilk alt rutinimizdir. Bir alt program, kodda farklı bir yerden çağrılabilir, kodu alt rutinin gövdesi içinde yürütür ve ardından program kontrolünü çağıran koda döndürür. waitfor bizim için kabuğumuzu kurar. Bunu döngü içinde "uyku" olan bir döngüde yaparak, kontrolün döndürülmesinden önce kabuğun aktivasyonunun tamamlanmasına izin veriyoruz, bu çok iyi bir şey. Satır 26: alt matris bizim ikinci alt rutinimizdir ve bir "elemanlar" adı verilen parametre. Bu alt program, filmde olduğu gibi "düşüyor" gibi görünen havalı sayıların yazdırılmasını sağlar. Burada birkaç şeyi hafife aldım. Umarım bunları açıklayarak nereden geldiğimi anlarsınız ve bunu benden daha iyi yapabilirsiniz. Öncelikle, yalnızca 5 sütun sayı istediğinizi ve "öğelerin" sütun sayısına (5'e bölünebildiğini varsayıyorum.). Bunu garanti etmek kolaydı çünkü daha sonra "matris"e iletilen parametrelerin 200 ve 100 (iki kez çağrılır) olduğunu beyan ediyorum. Ayrıca varsayılan olarak 5 sütunun tümünün açık olmasını istediğinizi varsayıyorum. Bence tamam görünüyor, ancak ilk sayı satırının diğer satırlar kadar rastgele görünmesini istiyorsanız bunlardan birkaçını YANLIŞ olarak değiştirebilirsiniz. Tamam, yani 5 sütunumuz var, 200 / 5 = görüntülenecek 40 satır sayı (linesToWrite) ve tüm sütunlarımız varsayılan olarak açıktır. Satır 41: iki "for" döngüsüne giriyoruz, bunlardan ilki (Döngü A) satırlarYazmak ve ikincisi (Döngü B) sütun sayısı arasında geçiş yapar. Döngü B'de, döngü değişkeni loopB'nin değerini seçiyoruz ve değerine bağlı olarak bir If-Else ifadesini değerlendiriyoruz. Söz konusu sütun Etkinse ("TRUE" veya "açık"), "wshshell. SendKeys" aracılığıyla Int(Round(rnd())) değerini ve ardından bir sekme yazdıracağız. Aksi takdirde, sütun boş görünecek şekilde yalnızca bir sekme yazdıracağız. Peki Int(Round(rnd())) değeri nedir? rnd() 0.0 ile 1.0 arasında rastgele bir kayan noktalı sayı döndürür, Round() bu değeri alır ve en yakın Tamsayı değerine yuvarlar ve Int() sonucu bir Tamsayıya dönüştürür. Round() çağrısının bize 0 veya 1 vermesi gerektiğinden, bu son adım aşırı yük olarak kabul edilebilir. Bunu alışkanlıktan dolayı yaptım. Bir noktada biri bana bunun daha güvenli olduğunu söylemiş olmalı ve görünüşe göre bunu henüz unutmadım. 3. Bölüme geçin…

Adım 5: Kodu Anlama, Bölüm 3

Devam eden alt Matris, işte VB'nin sonraki birkaç satırı…' Bu flip-flop sütunları, 'yani bir sütun KAPALI ise, zamanın yüzde 30'unda AÇIK duruma getirilecektir,' ve bir sütun AÇIK ise, zamanın yüzde 30'unu KAPALI konuma getirdi. turnOffMax = 0.30 turnOnMax = 0.30Her sütunu %30 oranında değiştirmek, sayı sütunlarının filmde olduğu gibi rastgele bir şekilde "düşmesine" neden olur. Kesin değil ama yakın. ' Sütun 1 flip-flop flipMe = rnd() If ((col1 = turnOn) ve (flipMe < turnOffMax)) Sonra col1 = offOff Else If ((col1 = turnOff) ve (flipMe < turnOnMax)) Sonra col1 = açık End IfThe yukarıdaki blok, bir sonraki sayı satırı için bir sonraki yineleme sırasında verilen sütunda bir sayı gösterip göstermeyeceğimizi nasıl belirlediğimizi ele alır. Kodda "sütun açıksa ve flipMe adlı rastgele sayı %30'dan azsa, sütunu kapatın. Aksi takdirde, sütun kapalıysa ve flipMe %30'dan azsa sütunu açın." yukarı alt Matrix. Alt anahtara…

Adım 6: Alt Anahtar()

Anahtar yöntemi aşağıdadır.sub key(msg)', "matriks" mesajlarının çıktılarını alır ve bunları silerwscript.sleep 1500length = len(msg)for konum = 1 ila uzunluk wshshell. SendKeys mid(msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for konum = 1 uzunluk wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subBu yöntem bir "msg" dizesi yazdırır. Geçtiğiniz her şeyi yazdırır. Bu yöntem daha sonra kodda çağrılır. İlk FOR döngüsü, dizedeki her karakteri birer birer yazdırır ve her karakter arasında 250 milisaniye duraklar. Daha sonra 3000 milis (3 saniye) uyur ve daha önce yazdırdığımız her karakter için bu sefer biraz daha az uyuyarak bir geri boşluk yazarız. Hepsi bu kadar. Her şeyin bir araya geldiği programın ana gövdesine.

7. Adım: Ana

Programın ana uygulaması, her şeyi ayarlamak ve 5 sütuna yayılmış 200 ikili basamak yazmak için waitFor ve matrisi (zaten ele aldık) çağırır. Daha sonra mevcut sistem kullanıcısının adı yakalanır ve "uyandırma" dizisinin bir parçası olarak yazdırılmak üzere manipüle edilir. Ardından, "1" nedeniyle yalnızca 4 kez yineleyeceğimizi bildiğimiz bir FOR döngüsü gireriz. 4" kısıtlamasına. Daha sonra, ilk CASE deyimiyle, döngü boyunca ikinci kez, ikinci CASE deyimiyle, vb. eşleşen döngü değişkenimizi (loopA) SELECT yaparız. Döngünün her yinelemesi, myString, doğru dize temsiline ayarlanır. yazdırmak istediğimiz söz ve aslında yazdırmayı yapmak için anahtar alt yordamı çağrılır. Açıkçası bu döngüyü tasarlamanın başka birçok yolu var ve bunu okuyucuya bir alıştırma olarak bırakacağım. FOR döngüsünden çıktığımızda, daha fazla sayı yazdırmak için bir kez daha matris alt programını çağırırız. Koddaki yorumda belirtildiği gibi, isterseniz matrix()'e yapılan bu son çağrıyı bir döngüye koyabilirsiniz veya daha büyük bir sayı ile çağırabilirsiniz, vb. Son olarak, Quit() çağrımız programı iptal eder. yürütme (her zaman iyi uygulama:P). Umarım herkes benim örneğimi alıp daha iyi hale getirirken eğlenir! Bu Eğitilebilir Tablo, VB ile ilgili merakınızı giderdiyse, Google, bu konuda size söyleyebileceğimden daha fazlasını öğrenmek için tonlarca iyi kaynak sağlayabilir. Mutlu kodlama! martin

Önerilen: