Isi kandungan:

Kod Matrik - Asas Visual: 7 Langkah
Kod Matrik - Asas Visual: 7 Langkah

Video: Kod Matrik - Asas Visual: 7 Langkah

Video: Kod Matrik - Asas Visual: 7 Langkah
Video: Belajar PHP untuk PEMULA | 7. ARRAY 2024, Julai
Anonim
Kod Matrik - Asas Visual
Kod Matrik - Asas Visual

Kod Visual Basic yang baru dan lebih baik akan memaparkan kesan seperti "Matrix", dengan menatal One dan Zero. Ia kemudian memotong urutan Matrix "Wake Up Neo", dan kemudian terus menatal nombor. Saya menyedari bahawa ini tidak betul-betul mengikut urutan dalam filem, tetapi ada orang yang meminta fungsi ini, jadi saya menambahkannya. Saya rasa cara saya mengacak paparan lajur One's dan Zero's adalah bahagian kod yang paling kemas. Saya membincangkan dengan tepat apa yang saya buat kemudian. Instructable ini adalah sebagai tindak balas kepada arahan "Welcome to the Matrix in Command Prompt" Brennn10. Kod yang membentuk Instructable ini pada mulanya didasarkan pada kod yang disiarkan dalam komen oleh DarkJoker pada Instructable di atas. Saya sengaja agak jelas dengan penjelasan kod saya kerana saya mendapat beberapa permintaan penjelasan sejak saya mula-mula menyiarkan penyelesaian ini.

Langkah 1: Dapatkan Kod Saya

Saya telah melampirkan kod saya di bawah. Simpan kedua-dua fail (startMatrix.itsabat dan matrix.itsavbs) dalam folder yang sama pada mesin anda, dan keluarkan bahagian "itsa" dari nama fail, iaitu ganti nama fail menjadi startMatrix.bat dan matrix.vbs. Fail kelawar dan fail vbs boleh dilaksanakan, dan oleh itu saya tidak dapat memuat naiknya dengan pelanjutan tersebut di sini. Inilah sebabnya mengapa anda mesti menyimpan dan menamakannya semula secara tempatan.

Langkah 2: Melaksanakan Kod

Sekiranya anda ingin menjalankan kod saya, ikuti arahan di bawah. Sekiranya anda tidak mahu melaksanakan sesuatu di mesin anda yang tidak anda ketahui, anda pintar. Anda harus pergi ke langkah seterusnya, di mana saya membaca kod dan menunjukkan kepada anda bahawa saya tidak melakukan sesuatu yang licik. Walau bagaimanapun, jika anda hanya mahu sampai ke sana (atau anda menggunakan mesin orang lain dan tidak peduli), inilah cara untuk memulakan kod: Langkah 1: klik dua kali pada "startMatrix.bat". Itu sahaja. Sekarang teruskan ke langkah seterusnya untuk membaca tentang kesejukan yang baru anda lihat.

Langkah 3: Memahami Kod, Bahagian 1

Mari lihat kodnya, bermula dari awal. Mudah-mudahan anda dapat belajar cukup banyak mengenai VB dari kod saya sehingga anda akan keluar dan belajar bagaimana membuat kod dalam VB lebih baik daripada saya:) Jadi perkara pertama yang pertama, kami mempunyai 2 fail: fail bat dan fail vbs. Sekiranya anda mengedit fail kelawar, anda akan melihat bahawa file tersebut melaksanakan fail vbs, setelah menyiapkan tetingkap, warna teks dan tajuk tetingkap. Mari kita beralih ke perkara yang lebih menarik dalam fail vbs. FYI, saya hanya akan menyentuh baris kod yang paling menarik di sini. Juga, perhatikan garis yang bermula pada '(tandakan, atau petikan tunggal). Ini adalah komen, dan TIDAK AKAN DILAKSANAKAN. Beberapa baris pertama matrix.vbs mengatakan "Tetapkan mesej ralat saya ke tahap eksplisit" tetapi pada masa yang sama "Jangan biarkan kesalahan yang saya buat boleh membawa maut." Tidak perlu perbincangan sebenar. Garis 5: Pernyataan redup kami di sini menyediakan semua pemboleh ubah yang akan kami gunakan sepanjang hayat program kecil kami. Kami tidak perlu menyatakan jenis untuk pemboleh ubah ini, atau nilai awal untuknya, seperti yang mungkin kami lakukan dalam beberapa bahasa lain. VB "berkuasa" seperti ini. Line 12: objSysInfo membolehkan kami mengumpulkan beberapa maklumat mengenai sistem yang kami jalankan. Kami membuat objek di sini, dan pada Baris 13, objSysInfo. UserName mengembalikan nama pengguna yang sedang dilog masuk yang menjalankan kod ini. Ini akan digunakan kemudian sebagai ganti "Neo", supaya Skrip kami dapat menyebut "Bangunlah, Martin …" jika ia dijalankan di mesin saya, atau "Bangun, Brennn10 …" jika ia dijalankan pada mesin Brennn10 dan jika itu adalah nama penggunanya. Menggunakan nama pengguna Sistem membolehkan anda membuangnya di mesin rakan anda yang tidak dikunci dan ia akan menarik namanya secara automatik, tanpa perlu mengubah kodnya. Mari kita teruskan.

Langkah 4: Memahami Kod, Bahagian 2

Baris 16: sub tunggu adalah subrutin pertama kami. Subrutin dapat dipanggil dari tempat lain dalam kod, akan menjalankan kod dalam badan subrutin, dan kemudian akan mengembalikan kawalan program ke kod panggilan. pelayan menyediakan cengkerang untuk kita. Dengan melakukan ini dalam satu gelung dengan "tidur" dalam gelung, kami membiarkan pengaktifan cengkerang selesai sebelum kawalan dikembalikan, yang merupakan perkara yang sangat baik. Garis 26: sub matriks adalah subrutin kedua kami, dan memerlukan parameter yang disebut "elemen". Subrutin ini melakukan pencetakan nombor-nombor keren yang nampaknya "jatuh", seperti dalam filem. Saya telah mengambil beberapa perkara di sini. Mudah-mudahan dengan menerangkannya, anda akan memahami dari mana saya berasal dan dapat melakukannya dengan lebih baik daripada saya. Pertama, saya menganggap bahawa anda hanya mahukan 5 lajur nombor, dan "unsur" itu dapat dibahagi dengan bilangan lajur (5). Ini mudah dijamin kerana kemudian saya menyatakan parameter yang diteruskan ke "matriks" menjadi 200 dan 100 (disebut dua kali). Saya juga menganggap bahawa anda mahu semua lajur dihidupkan secara lalai. Saya fikir ia kelihatan baik-baik saja, tetapi anda boleh menukar beberapa dari ini menjadi SALAH jika anda mahukan baris nombor pertama kelihatan sama rawak dengan baris yang lain. OK, jadi kami mempunyai 5 lajur, kami mempunyai 200 / 5 = 40 baris nombor untuk dipaparkan (linesToWrite), dan semua lajur kami dihidupkan secara lalai. Baris 41: kita masuk ke dalam dua gelung "untuk", yang pertama (Gelung A) berpusing melalui garis kamiToWrite dan yang kedua (Gelung B) yang membulatkan bilangan lajur. Dalam Loop B, kita Pilih pada nilai loop variabel loopB, dan bergantung pada nilainya kita menilai pernyataan If-Else. Sekiranya lajur yang dimaksud Diaktifkan ("BENAR", atau "dihidupkan"), kami akan mencetak, melalui "wshshell. SendKeys", nilai Int (Bulat (rnd ())), diikuti oleh tab. Jika tidak, kami hanya akan mencetak tab, sehingga ruangan kelihatan kosong. Oleh itu, apakah nilai Int (Bulat (rnd ()))? rnd () mengembalikan nombor titik terapung rawak antara 0,0 dan 1,0, Putaran () akan mengambil nilai itu dan membulatkannya ke nilai Integer terdekat, dan Int () memberikan hasilnya ke Integer. Langkah terakhir ini dapat dianggap berlebihan, kerana panggilan Pusingan () harus memberi kita 0 atau 1. Saya melakukannya hanya kerana kebiasaan. Pada suatu ketika seseorang pasti memberitahu saya bahawa ia lebih selamat, dan nampaknya saya belum melupakannya. Pada Bahagian 3…

Langkah 5: Memahami Kod, Bahagian 3

Meneruskan sub Matriks, berikut adalah beberapa baris berikutnya dari VB… 'Lajur flip-flop ini', jadi jika lajur MATI, ia akan dihidupkan 30 peratus masa, 'dan jika lajur AKTIF, itu akan menjadi MATI 30 peratus masa. turnOffMax = 0.30 turnOnMax = 0.30Mengubah setiap lajur 30% masa menjadikan lajur nombor "jatuh" secara rawak serupa dengan yang mereka lakukan dalam filem. Tidak tepat, tetapi dekat. 'Column 1 flip-flop flipMe = rnd () If ((col1 = TurnOn) dan (flipMe <turnOffMax)) Kemudian col1 = turnOff Else If ((col1 = turnOff) dan (flipMe <turnOnMax)) Kemudian col1 = turnOn End IfThe blok di atas menangani bagaimana kita menentukan sama ada kita akan memaparkan nombor dalam lajur yang diberikan semasa lelaran seterusnya, untuk baris nombor seterusnya. Kod berbunyi "jika lajur dihidupkan, dan nombor rawak yang disebut flipMe kurang dari 30%, matikan lajur. Jika tidak, jika lajur dimatikan dan flipMe kurang dari 30%, hidupkan lajur." sub Matrik. Hidup ke sub kunci …

Langkah 6: Sub Kunci ()

Kaedah kuncinya adalah di bawah. Kunci sub (msg) 'mencetak mesej "matriks", dan padamkannyawscript.sleep 1500length = len (msg) untuk posisi = 1 hingga panjang wshshell. SendKeys pertengahan (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000untuk kedudukan = 1 hingga panjang wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend sub Kaedah ini mencetak rentetan "msg". Ia akan mencetak apa sahaja yang anda lalui. Kaedah ini dipanggil kemudian dalam kod. Gelung FOR pertama mencetak setiap watak dalam rentetan, satu demi satu, dan berhenti selama 250 milisaat di antara setiap watak. Kami kemudian tidur selama 3000 milisa (3 saat) dan menulis ruang belakang untuk setiap watak yang kami cetak sebelumnya, tidur kali ini sedikit kurang. Itu sahaja yang ada. Ke badan utama program, di mana semuanya bersatu.

Langkah 7: Utama

Pelaksanaan utama program memanggil waitFor dan matrix (yang telah kita bahas) untuk mengatur semuanya dan menulis 200 digit binari, tersebar di 5 lajur. Nama pengguna sistem semasa kemudian diambil dan dimanipulasi untuk dicetak sebagai sebahagian daripada urutan "bangun". Kami kemudian memasukkan gelung FOR, yang kami tahu kami hanya akan berulang lebih dari 4 kali kerana "1 Ke had 4 ". Kami kemudian PILIH pada loop variabel kami (loopA), yang sepadan dengan pernyataan CASE pertama kali pertama, pernyataan CASE kedua kali kedua melalui gelung, dan lain-lain. Setiap lelaran gelung, myString diatur ke perwakilan rentetan yang betul dari kata kerja yang ingin kita cetak, dan subrutin utama dipanggil untuk benar-benar melakukan percetakan. Terdapat banyak cara lain untuk merancang gelung ini, dan saya akan memberikannya sebagai latihan kepada pembaca. Sebaik sahaja kita keluar dari gelung FOR, kita sekali lagi memanggil subrutin matriks untuk mencetak lebih banyak nombor. Seperti yang dinyatakan dalam komen dalam kod, anda boleh meletakkan panggilan terakhir ini ke matriks () dalam satu gelung jika anda mahu, atau anda boleh memanggilnya dengan bilangan yang lebih besar, dll. Akhirnya, panggilan kami untuk berhenti () membatalkan program pelaksanaan (amalan yang selalu baik: P). Harap semua orang bersenang-senang mengambil contoh saya dan menjadikannya lebih baik! Sekiranya Instructable ini telah meningkatkan rasa ingin tahu anda dengan VB, Google dapat memberikan banyak sumber yang baik untuk mengetahui lebih banyak tentangnya daripada yang dapat saya sampaikan kepada anda. Selamat pengekodan! martin

Disyorkan: