Mục lục:

Mã ma trận - Visual Basic: 7 bước
Mã ma trận - Visual Basic: 7 bước

Video: Mã ma trận - Visual Basic: 7 bước

Video: Mã ma trận - Visual Basic: 7 bước
Video: Code C/C++ khi đi làm thực tế có đáng sợ như lời đồn? 2024, Tháng mười một
Anonim
Mã ma trận - Visual Basic
Mã ma trận - Visual Basic

Mã Visual Basic mới và được cải tiến sẽ hiển thị hiệu ứng giống như "Ma trận", với cuộn One's và Zero. Sau đó, nó cắt thành chuỗi "Wake Up Neo" của Ma trận, và sau đó tiếp tục cuộn các số. Tôi nhận ra đây không phải là cách trình tự diễn ra chính xác trong phim, nhưng đã có người yêu cầu chức năng này, vì vậy tôi đã thêm nó. Tôi nghĩ rằng cách tôi hiển thị ngẫu nhiên các cột của One và Zero là phần gọn gàng nhất của mã. Tôi sẽ thảo luận chính xác những gì tôi đã làm sau đó. Mã tạo nên Có thể hướng dẫn này ban đầu dựa trên mã được đăng trong một bình luận của DarkJoker về Có thể hướng dẫn ở trên. đã đăng giải pháp này.

Bước 1: Lấy mã của tôi

Tôi đã đính kèm mã của mình bên dưới. Lưu cả hai tệp (startMatrix.itsabat và matrix.itsavbs) trong cùng một thư mục trên máy của bạn và xóa phần "itsa" của tên tệp, tức là đổi tên tệp thành startMatrix.bat và matrix.vbs. Tệp Bat và tệp vbs có thể thực thi được và do đó tôi không thể tải chúng lên với các phần mở rộng đó ở đây. Đây là lý do tại sao bạn phải lưu và đổi tên chúng cục bộ.

Bước 2: Thực thi mã

Nếu bạn muốn chạy mã của tôi, hãy làm theo hướng dẫn bên dưới. Nếu bạn không muốn thực thi một cái gì đó trên máy mà bạn không biết gì về nó, bạn là người thông minh. Bạn nên chuyển sang bước tiếp theo, nơi tôi xem qua mã và cho bạn thấy rằng tôi chưa làm bất cứ điều gì viển vông. quan tâm), đây là cách bắt đầu mã: Bước 1: nhấp đúp vào "startMatrix.bat". Thế là xong. Bây giờ hãy chuyển sang bước tiếp theo để đọc về sự thú vị mà bạn vừa thấy.

Bước 3: Tìm hiểu Quy tắc, Phần 1

Chúng ta hãy xem mã, bắt đầu từ đầu. Hy vọng rằng bạn có thể tìm hiểu đủ về VB từ mã của tôi và bạn sẽ học cách viết mã trong VB tốt hơn tôi:) Vì vậy, điều đầu tiên, chúng ta có 2 tệp: tệp bat và tệp vbs. Nếu bạn chỉnh sửa tệp dơi, bạn sẽ nhận thấy rằng nó thực thi tệp vbs, sau khi thiết lập cửa sổ, màu văn bản và tiêu đề cửa sổ. Hãy chuyển sang những thứ thú vị hơn trong tệp vbs. FYI, tôi sẽ chỉ đề cập đến những dòng mã thú vị nhất ở đây.. Đây là những nhận xét và KHÔNG ĐƯỢC THỰC HIỆN. Một vài dòng đầu tiên của matrix.vbs nói "Đặt thông báo lỗi của tôi ở mức rõ ràng" nhưng đồng thời "Đừng để bất kỳ sai lầm nào của tôi gây tử vong." Không cần thảo luận thực sự. Dòng 5: Câu lệnh lờ mờ của chúng tôi ở đây thiết lập tất cả các biến mà chúng tôi sẽ sử dụng trong suốt vòng đời của chương trình nhỏ của chúng tôi. Chúng ta không cần khai báo kiểu cho các biến này hoặc giá trị ban đầu cho chúng, giống như chúng ta có thể làm trong một số ngôn ngữ khác. VB "mạnh mẽ" như thế này. Dòng 12: objSysInfo cho phép chúng tôi thu thập một số thông tin về hệ thống mà chúng tôi đang chạy. Chúng tôi tạo đối tượng ở đây và trên Dòng 13, objSysInfo. UserName trả về tên của người dùng hiện đang đăng nhập đang thực thi mã này. Điều này sẽ được sử dụng sau này thay cho "Neo", để Tập lệnh của chúng tôi có thể nói "Thức dậy, Martin …" nếu nó đang được chạy trên máy của tôi hoặc "Thức dậy, Brennn10 …" nếu nó đang được chạy trên máy của Brennn10 và nếu Đó là tên người dùng của anh ấy. Sử dụng tên người dùng của Hệ thống cho phép bạn ném nó vào máy đã mở khóa của bạn mình và nó sẽ tự động lấy tên anh ấy mà không cần phải thay đổi mã.

Bước 4: Tìm hiểu Quy tắc, Phần 2

Dòng 16: sub waitfor là chương trình con đầu tiên của chúng tôi. Một chương trình con có thể được gọi từ một nơi khác trong mã, sẽ thực thi mã bên trong phần thân của chương trình con, và sau đó sẽ trả lại quyền điều khiển chương trình cho mã gọi. chờ đợi thiết lập shell của chúng tôi cho chúng tôi. Bằng cách thực hiện điều này trong một vòng lặp có "ngủ" trong vòng lặp, chúng tôi cho phép quá trình kích hoạt shell hoàn tất trước khi điều khiển được trả về, đây là một điều rất tốt. Dòng 26: ma trận con là chương trình con thứ hai của chúng tôi và lấy một tham số được gọi là "phần tử". Chương trình con này thực hiện việc in các số tuyệt vời có vẻ như "rơi", như trong phim. Hy vọng rằng bằng cách giải thích chúng, bạn sẽ hiểu tôi đến từ đâu và có thể làm điều đó tốt hơn I. Trước hết, tôi giả sử rằng bạn chỉ muốn có 5 cột số và "phần tử" chia hết cho số cột (5). Điều này rất dễ đảm bảo vì sau này tôi khai báo các tham số được truyền cho "ma trận" là 200 và 100 (nó được gọi là hai lần). Tôi cũng giả sử rằng bạn muốn bật tất cả 5 cột theo mặc định. Tôi nghĩ rằng nó có vẻ ổn, nhưng bạn có thể thay đổi một vài trong số này thành FALSE nếu bạn muốn dòng số đầu tiên có vẻ ngẫu nhiên như phần còn lại của các hàng. 5 = 40 dòng số để hiển thị (linesToWrite) và tất cả các cột của chúng tôi được bật theo mặc định. Dòng 41: chúng tôi nhập vào hai vòng lặp "for", vòng lặp đầu tiên (Vòng A) xoay vòng qua linesToWrite của chúng tôi và vòng lặp thứ hai (Vòng lặp B) xoay vòng qua số lượng cột. Trong Vòng lặp B, chúng tôi Chọn giá trị của biến vòng lặp loopB và tùy thuộc vào giá trị của nó, chúng tôi đánh giá một câu lệnh If-Else. Nếu cột được đề cập là Bật ("TRUE" hoặc "đã bật"), chúng tôi sẽ in, thông qua "wshshell. SendKeys", giá trị của Int (Round (rnd ())), theo sau là một tab. Nếu không, chúng tôi sẽ chỉ in một tab, sao cho cột này trống rỗng. Vậy giá trị của Int (Round (rnd ())) là bao nhiêu? rnd () trả về một số dấu phẩy động ngẫu nhiên trong khoảng từ 0,0 đến 1,0, Round () sẽ lấy giá trị đó và làm tròn nó thành giá trị Số nguyên gần nhất và Int () chuyển kết quả thành Số nguyên. Bước cuối cùng này có thể được coi là quá mức cần thiết, vì lệnh gọi Round () sẽ cho chúng ta 0 hoặc 1. Tôi làm vậy chỉ vì thói quen. Tại một thời điểm nào đó, ai đó chắc hẳn đã nói với tôi rằng nó an toàn hơn, và tôi dường như vẫn chưa quên điều đó.

Bước 5: Tìm hiểu Quy tắc, Phần 3

Tiếp tục Ma trận phụ, đây là một vài dòng tiếp theo của VB… 'Cột lật ngược này,' vì vậy nếu một cột TẮT, nó sẽ được BẬT 30% thời gian, 'và nếu một cột BẬT, nó sẽ đã TẮT 30 phần trăm thời gian. turnOffMax = 0.30 turnOnMax = 0.30 Kéo dài mỗi cột 30% thời gian làm cho các cột số "rơi" theo kiểu ngẫu nhiên tương tự như cách chúng làm trong phim. Không chính xác, nhưng gần. 'Cột 1 flip-flop flipMe = rnd () If ((col1 = turnOn) and (flipMe <turnOffMax)) Sau đó col1 = turnOff Else Nếu ((col1 = turnOff) và (flipMe <turnOnMax)) Thì col1 = turnOn End IfThe khối trên xử lý cách chúng tôi xác định liệu chúng tôi có hiển thị một số trong cột đã cho trong lần lặp tiếp theo, cho hàng số tiếp theo hay không. Đoạn mã có nội dung "nếu cột đang bật và số ngẫu nhiên được gọi là flipMe nhỏ hơn 30%, hãy tắt cột. Ngược lại, nếu cột đang tắt và flipMe nhỏ hơn 30%, hãy bật cột." Điều đó kết thúc lên Ma trận con. Bật khóa phụ…

Bước 6: Khóa phụ ()

Phương thức khóa là bên dưới. Khóa phụ (msg) 'thực hiện in ra các thông báo "ma trận" và xóa chúngwscript.sleep 1500length = len (msg) cho position = 1 to length wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend sub Phương thức này in ra một chuỗi "msg". Nó sẽ in bất cứ thứ gì bạn vượt qua nó. Phương thức này sau này được gọi trong mã. Vòng lặp FOR đầu tiên in ra từng ký tự trong chuỗi, từng ký tự một và tạm dừng trong 250 mili giây giữa mỗi ký tự. Sau đó, chúng tôi ngủ trong 3000 mili (3 giây) và viết ra khoảng trống cho mỗi ký tự mà chúng tôi đã in trước đó, thời gian này sẽ ngủ ít hơn một chút. Về phần chính của chương trình, nơi mọi thứ kết hợp với nhau.

Bước 7: Chính

Quá trình thực thi chính của chương trình gọi waitFor và ma trận (mà chúng ta đã trình bày) để thiết lập mọi thứ và viết ra 200 chữ số nhị phân, trải dài trên 5 cột. Sau đó, tên của người dùng hệ thống hiện tại sẽ được lấy và thao tác để in ra như một phần của chuỗi "đánh thức". Sau đó, chúng tôi nhập vòng lặp FOR, mà chúng tôi biết rằng chúng tôi sẽ chỉ lặp lại hơn 4 lần vì "1 Để hạn chế 4 ". Sau đó chúng tôi CHỌN trên biến vòng lặp của chúng tôi (loopA), phù hợp với câu lệnh CASE đầu tiên trong lần đầu tiên, câu lệnh CASE thứ hai trong lần thứ hai thông qua vòng lặp, v.v. Mỗi lần lặp của vòng lặp, myString được đặt thành biểu diễn chuỗi chính xác của vị trí mà chúng ta muốn in và chương trình con chính được gọi để thực sự thực hiện việc in. Rõ ràng là có nhiều cách khác để thiết kế vòng lặp này, và tôi sẽ để đó như một bài tập cho người đọc. Khi chúng ta thoát khỏi vòng lặp FOR, một lần nữa chúng ta gọi chương trình con ma trận để in ra nhiều số hơn. Như nhận xét trong đoạn mã cho biết, bạn có thể đặt lệnh gọi cuối cùng này tới matrix () trong một vòng lặp nếu bạn muốn hoặc bạn chỉ có thể gọi nó với một số lớn hơn, v.v. Cuối cùng, lời kêu gọi của chúng tôi để thoát () hủy bỏ chương trình thực thi (luôn luôn là thực hành tốt: P). Mong mọi người vui vẻ lấy ví dụ của tôi và làm cho nó tốt hơn! Nếu Tài liệu hướng dẫn này khơi gợi sự tò mò của bạn với VB, Google có thể cung cấp rất nhiều tài nguyên tốt để tìm hiểu thêm về nó mà tôi có thể nói với bạn. Chúc bạn viết mã vui vẻ! martin

Đề xuất: