Dir50 Posted July 30, 2011 Posted July 30, 2011 Create a console application and add this into the Module1 Module Module1 Sub Main(ByVal args As String()) Console.Title = "MatriX Console" Console.ForegroundColor = ConsoleColor.DarkGreen Console.WindowLeft = InlineAssignHelper(Console.WindowTop, 0) Console.WindowHeight = InlineAssignHelper(Console.BufferHeight, Console.LargestWindowHeight) Console.WindowWidth = InlineAssignHelper(Console.BufferWidth, Console.LargestWindowWidth) Console.WriteLine("Hello maxcheaters nabs , press any key to go on") Console.ReadKey() Dim width As Integer, height As Integer Dim y As Integer() Dim l As Integer() Initialize(width, height, y, l) Dim ms As Integer While True Dim t1 As DateTime = DateTime.Now MatrixStep(width, height, y, l) ms = 10 - CInt(DirectCast((DateTime.Now - t1), TimeSpan).TotalMilliseconds) If ms > 0 Then System.Threading.Thread.Sleep(ms) End If If Console.KeyAvailable Then If Console.ReadKey().Key = ConsoleKey.F5 Then Initialize(width, height, y, l) End If End If End While End Sub Dim thistime As Boolean = False Sub MatrixStep(ByVal width As Integer, ByVal height As Integer, ByVal y As Integer(), ByVal l As Integer()) Dim x As Integer thistime = Not thistime For x = 0 To width - 1 If x Mod 11 = 10 Then If Not thistime Then Continue For End If Console.ForegroundColor = ConsoleColor.Red Else Console.ForegroundColor = ConsoleColor.DarkGreen Console.SetCursorPosition(x, inBoxY(CInt(y(x) - 2 - (l(x) / 40 * 2)), height)) Console.Write(R) Console.ForegroundColor = ConsoleColor.Green End If Console.SetCursorPosition(x, y(x)) Console.Write(R) y(x) = inBoxY(y(x) + 1, height) Console.SetCursorPosition(x, inBoxY(y(x) - l(x), height)) Console.Write(" "c) Next End Sub Private Sub Initialize(ByRef width As Integer, ByRef height As Integer, ByRef y As Integer(), ByRef l As Integer()) Dim h1 As Integer Dim h2 As Integer = CInt((InlineAssignHelper(h1, CInt((InlineAssignHelper(height, Console.WindowHeight)) / 2))) / 2) width = Console.WindowWidth - 1 y = New Integer(width - 1) {} l = New Integer(width - 1) {} Dim x As Integer Console.Clear() For x = 0 To width - 1 y(x) = m_r.[Next](height) l(x) = m_r.[Next](h2 * (If((x Mod 11 <> 10), 2, 1)), h1 * (If((x Mod 11 <> 10), 2, 1))) Next End Sub Dim m_r As New Random() Private ReadOnly Property R() As Char Get Dim t As Integer = m_r.[Next](10) If t <= 2 Then Return CChar(("0"c & m_r.[Next](10))) ElseIf t <= 4 Then Return CChar(("a"c & m_r.[Next](27))) ElseIf t <= 6 Then Return CChar(("A"c & m_r.[Next](27))) Else Return CChar(CChar(CStr((m_r.[Next](32, 255))))) End If End Get End Property Public Function inBoxY(ByVal n As Integer, ByVal height As Integer) As Integer n = n Mod height If n < 0 Then Return n + height Else Return n End If End Function Private Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T target = value Return value End Function End Module Preview : http://i.imgur.com/rPNrb.png Quote
eleinoC Posted July 31, 2011 Posted July 31, 2011 m bgazei error sto MatrixStep(width, height, y, l) Quote
Dir50 Posted July 31, 2011 Author Posted July 31, 2011 m bgazei error sto MatrixStep(width, height, y, l) prepei na to kaneis se Console. Quote
eleinoC Posted July 31, 2011 Posted July 31, 2011 vasika to problima einai edw Initialize(width, height, y, l) Warning 1 Variable 'y' is passed by reference before it has been assigned a value. A null reference exception could result at runtime. C:\Users\loghs\AppData\Local\Temporary Projects\ConsoleApplication1\Module1.vb 15 35 ConsoleApplication1 Warning 2 Variable 'l' is passed by reference before it has been assigned a value. A null reference exception could result at runtime. C:\Users\loghs\AppData\Local\Temporary Projects\ConsoleApplication1\Module1.vb 15 38 ConsoleApplication1 Quote
Dir50 Posted August 1, 2011 Author Posted August 1, 2011 vasika to problima einai edw Initialize(width, height, y, l) Warning 1 Variable 'y' is passed by reference before it has been assigned a value. A null reference exception could result at runtime. C:\Users\loghs\AppData\Local\Temporary Projects\ConsoleApplication1\Module1.vb 15 35 ConsoleApplication1 Warning 2 Variable 'l' is passed by reference before it has been assigned a value. A null reference exception could result at runtime. C:\Users\loghs\AppData\Local\Temporary Projects\ConsoleApplication1\Module1.vb 15 38 ConsoleApplication1 oute ena copy paste den niw8eis n akaneis , kane me add sto msn , na sto codarw egw mesw teamviewer Quote
eleinoC Posted August 1, 2011 Posted August 1, 2011 variomoun na sbisw ta c:\ kai afta :P pio einai to msn cu? Quote
Dir50 Posted August 1, 2011 Author Posted August 1, 2011 variomoun na sbisw ta c:\ kai afta :P pio einai to msn cu? psomas2@windowslive.com Quote
penglezos Posted August 1, 2011 Posted August 1, 2011 poli oreo psoma! mn tn kaneis add 8a s kanei haxs psomas=egyish ;) Quote
saYRam Posted September 26, 2011 Posted September 26, 2011 here is the C# version using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; static class Module1 { public static void Main(string[] args) { Console.Title = "MatriX Console"; Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WindowLeft = InlineAssignHelper(ref Console.WindowTop, 0); Console.WindowHeight = InlineAssignHelper(ref Console.BufferHeight, Console.LargestWindowHeight); Console.WindowWidth = InlineAssignHelper(ref Console.BufferWidth, Console.LargestWindowWidth); Console.WriteLine("Hello maxcheaters nabs , press any key to go on"); Console.ReadKey(); int width = 0; int height = 0; int[] y = null; int[] l = null; Initialize(ref width, ref height, ref y, ref l); int ms = 0; while (true) { DateTime t1 = DateTime.Now; MatrixStep(width, height, y, l); ms = 10 - Convert.ToInt32(((TimeSpan)(DateTime.Now - t1)).TotalMilliseconds); if (ms > 0) { System.Threading.Thread.Sleep(ms); } if (Console.KeyAvailable) { if (Console.ReadKey().Key == ConsoleKey.F5) { Initialize(ref width, ref height, ref y, ref l); } } } } static bool thistime = false; public static void MatrixStep(int width, int height, int[] y, int[] l) { int x = 0; thistime = !thistime; for (x = 0; x <= width - 1; x++) { if (x % 11 == 10) { if (!thistime) { continue; } Console.ForegroundColor = ConsoleColor.Red; } else { Console.ForegroundColor = ConsoleColor.DarkGreen; Console.SetCursorPosition(x, inBoxY(Convert.ToInt32(y[x] - 2 - (l[x] / 40 * 2)), height)); Console.Write(R); Console.ForegroundColor = ConsoleColor.Green; } Console.SetCursorPosition(x, y[x]); Console.Write(R); y[x] = inBoxY(y[x] + 1, height); Console.SetCursorPosition(x, inBoxY(y[x] - l[x], height)); Console.Write(' '); } } private static void Initialize(ref int width, ref int height, ref int[] y, ref int[] l) { int h1 = 0; int h2 = Convert.ToInt32((InlineAssignHelper(ref h1, Convert.ToInt32((InlineAssignHelper(ref height, Console.WindowHeight)) / 2))) / 2); width = Console.WindowWidth - 1; y = new int[width]; l = new int[width]; int x = 0; Console.Clear(); for (x = 0; x <= width - 1; x++) { y[x] = m_r.Next(height); l[x] = m_r.Next(h2 * ((x % 11 != 10) ? 2 : 1), h1 * ((x % 11 != 10) ? 2 : 1)); } } static Random m_r = new Random(); private static char R { get { int t = m_r.Next(10); if (t <= 2) { return Convert.ToChar(('0' + m_r.Next(10))); } else if (t <= 4) { return Convert.ToChar(('a' + m_r.Next(27))); } else if (t <= 6) { return Convert.ToChar(('A' + m_r.Next(27))); } else { return Convert.ToChar(Convert.ToChar(Convert.ToString((m_r.Next(32, 255))))); } } } public static int inBoxY(int n, int height) { n = n % height; if (n < 0) { return n + height; } else { return n; } } private static T InlineAssignHelper<T>(ref T target, T value) { target = value; return value; } } Quote
GOld3x Posted January 23, 2012 Posted January 23, 2012 Dn katalava xristo :P kanw ena new file bazw to code k to apothikeuw? Quote
dvidbrown Posted October 28, 2014 Posted October 28, 2014 Good post. I'm trying to add matrix barcode reader in vb.net. Your post may be helpful to me. Thanks a lot! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.