Სარჩევი:

მატრიცის კოდი - Visual Basic: 7 ნაბიჯი
მატრიცის კოდი - Visual Basic: 7 ნაბიჯი

ვიდეო: მატრიცის კოდი - Visual Basic: 7 ნაბიჯი

ვიდეო: მატრიცის კოდი - Visual Basic: 7 ნაბიჯი
ვიდეო: როგორ ვწეროთ კოდი სწრაფად და ეფექტურად 👇 #vscode #პროგრამირება #პითონი 2024, ნოემბერი
Anonim
მატრიცის კოდი - Visual Basic
მატრიცის კოდი - Visual Basic

ახალი და გაუმჯობესებული Visual Basic კოდი აჩვენებს "მატრიცის" მსგავს ეფექტს, ერთი და ნულის გადახვევით. შემდეგ ის წყვეტს მატრიქსის "გაიღვიძე ნეოს" თანმიმდევრობას და შემდეგ აგრძელებს რიცხვების გადახვევას. მე ვხვდები, რომ ეს არ არის ზუსტად ის, თუ როგორ მიდის თანმიმდევრობა ფილმში, მაგრამ იყვნენ ადამიანები, რომლებიც ითხოვდნენ ამ ფუნქციურობას, ამიტომ დავამატე. მე ვფიქრობ, რომ მე შემთხვევით ვაჩვენებ ერთი და ნულოვანი სვეტების ჩვენებას კოდის ყველაზე სუფთა ნაწილს. მე განვიხილავ ზუსტად იმას, რაც მე მოგვიანებით გავაკეთე. ეს ინსტრუქცია არის პასუხი Brennn10- ის "Welcome to Matrix in Command Prompt" Instructable. კოდი, რომელიც ქმნის ამ ინსტრუქციას, თავდაპირველად ეფუძნებოდა კოდს, რომელიც გამოქვეყნდა DarkJoker– ის მიერ ზემოთ მითითებულ ინსტრუქციაზე. მე განზრახ საკმაოდ ნათლად გამოვხატე კოდის ახსნა, რადგან მე მივიღე საკმაოდ ბევრი მოთხოვნა განმარტებისათვის გამოაქვეყნა ეს გამოსავალი.

ნაბიჯი 1: დაიჭირე ჩემი კოდი

მე დავამატე ჩემი კოდი ქვემოთ. შეინახეთ ორივე ფაილი (startMatrix.itsabat და matrix.itsavbs) იმავე საქაღალდეში თქვენს აპარატში და წაშალეთ ფაილის სახელი "ita", ანუ გადაარქვით ფაილებს startMatrix.bat და matrix.vbs. Bat ფაილები და vbs ფაილები შესრულებადია და ამიტომ მე არ შემიძლია მათი ატვირთვა ამ გაფართოებებით აქ. ამიტომაც უნდა შეინახოთ და გადაარქვათ სახელი ადგილობრივად.

ნაბიჯი 2: კოდის შესრულება

თუ გსურთ ჩემი კოდის გაშვება, მიჰყევით ქვემოთ მოცემულ ინსტრუქციას. თუ არ გინდათ თქვენს აპარატზე შეასრულოთ ისეთი რამ, რის შესახებაც არაფერი იცით, თქვენ ჭკვიანი ხართ. თქვენ უნდა წახვიდეთ შემდეგ საფეხურზე, სადაც მე გავდივარ კოდს და გიჩვენებთ, რომ მე არაფერი გამიკეთებია. თუმცა, თუ თქვენ უბრალოდ გსურთ მისვლა (ან სხვის აპარატზე ხართ და არ ზრუნვა), აი როგორ გამოაგდოთ კოდი: ნაბიჯი 1: ორჯერ დააწკაპუნეთ "startMatrix.bat"-ზე. ახლა გადადით შემდეგ საფეხურზე და წაიკითხეთ იმ სიგრილის შესახებ, რომელიც ახლახან ნახეთ.

ნაბიჯი 3: კოდექსის გაგება, ნაწილი 1

მოდით შევხედოთ კოდს, თავიდანვე. ვიმედოვნებთ, რომ თქვენ საკმარისად შეიტყობთ VB– ს შესახებ ჩემი კოდისგან, რომ თქვენ გამორთავთ და ისწავლით როგორ კოდს VB ჩემზე უკეთესად:) ასე რომ, პირველ რიგში, ჩვენ გვაქვს 2 ფაილი: bat ფაილი და vbs ფაილი. თუ თქვენ შეცვლით bat ფაილს, შეამჩნევთ, რომ ის ასრულებს vbs ფაილს, ფანჯრის, ტექსტის ფერის და ფანჯრის სათაურის დაყენების შემდეგ. მოდით გადავიდეთ უფრო საინტერესო ნივთებზე vbs ფაილში. FYI, მე აქ მხოლოდ შევეხები კოდის ყველაზე საინტერესო ხაზებს. ასევე, განსაკუთრებული ყურადღება მიაქციეთ სტრიქონებს, რომლებიც იწყება "(მონიშვნა, ან ერთი ციტატა) რა ეს არის კომენტარები და არ შესრულდება. Matrix.vbs– ის პირველი რამდენიმე სტრიქონი ამბობს „დააყენეთ ჩემი შეცდომის შეტყობინებები აშკარა დონეზე“, მაგრამ ამავე დროს „ნუ მისცემთ შეცდომებს საბედისწერო.“რეალური დისკუსია არ არის საჭირო. ხაზი 5: ჩვენი დაბნეული განცხადება ადგენს ყველა ცვლადს, რომელსაც ჩვენ გამოვიყენებთ ჩვენი პატარა პროგრამის განმავლობაში. ჩვენ არ გვჭირდება ტიპების გამოცხადება ამ ცვლადებისთვის, ან მათთვის საწყისი მნიშვნელობები, როგორც ეს შეიძლება სხვა ენებზე. VB არის ასეთი "ძლიერი". ხაზი 12: objSysInfo საშუალებას გვაძლევს შევაგროვოთ ინფორმაცია იმ სისტემის შესახებ, რომელზეც ჩვენ ვმუშაობთ. ჩვენ ვქმნით ობიექტს აქ და მე –13 ხაზზე, objSysInfo. UserName აბრუნებს ამჟამად შესული მომხმარებლის სახელს, რომელიც ამ კოდს ასრულებს. ეს მოგვიანებით გამოყენებული იქნება "ნეოს" ნაცვლად, რათა ჩვენს სკრიპტს შეეძლოს თქვას "გაიღვიძე, მარტინ …" თუ ის ჩემს აპარატზეა გაშვებული, ან "გაიღვიძე, ბრაენ 10 …" თუ ის მუშაობს Brennn10- ის მანქანაზე და თუ ეს იყო მისი მომხმარებლის სახელი. სისტემის მომხმარებლის სახელის გამოყენება საშუალებას გაძლევთ ჩააგდოთ იგი თქვენი მეგობრის განბლოკილ აპარატზე და ის ავტომატურად გაიყვანს მის სახელს, კოდის შეცვლის გარეშე. გავაგრძელოთ.

ნაბიჯი 4: კოდექსის გაგება, ნაწილი 2

სტრიქონი 16: ქვესალონი არის ჩვენი პირველი ქვეგეგმა. ქვეპროგრამის გამოძახება შესაძლებელია კოდის სხვადასხვა ადგილიდან, განახორციელებს კოდს ქვეგანყოფილების ორგანოში და შემდეგ დააბრუნებს პროგრამის კონტროლს დარეკვის კოდში. waitfor ადგენს ჩვენს ჭურვს ჩვენთვის. მარყუჟში "ძილით" მარყუჟით, ჩვენ ვაძლევთ საშუალებას, რომ ჭურვი გააქტიურდეს კონტროლის დაბრუნებამდე, რაც ძალიან კარგია. ხაზი 26: ქვე -მატრიცა არის ჩვენი მეორე ქვეპროგრამა და იღებს პარამეტრი სახელწოდებით "ელემენტები". ეს სუბრუტინი დაბეჭდავს მაგარი რიცხვების დაბეჭდვას, როგორც ჩანს "დაეცემა", როგორც ფილმში. მე აქ რამოდენიმე რამ მივიღე თავისთავად. იმედია მათი ახსნით თქვენ მიხვდებით საიდან მოვდივარ და ამას ჩემზე უკეთ შეძლებთ. პირველ რიგში, მე ვივარაუდებ, რომ თქვენ მხოლოდ რიცხვების 5 სვეტი გინდათ და რომ "ელემენტები" იყოფა სვეტების რაოდენობაზე (5). ამის გარანტია ადვილი იყო, რადგან მოგვიანებით მე ვაცხადებ, რომ "მატრიცაზე" გადატანილი პარამეტრები იქნება 200 და 100 (მას ორჯერ ეძახიან).მე ასევე ვივარაუდებ, რომ თქვენ გსურთ, რომ ყველა 5 სვეტი ნაგულისხმევად იყოს ჩართული. მე ვფიქრობ, რომ ის კარგად გამოიყურება, მაგრამ თქვენ შეგიძლიათ შეცვალოთ რამდენიმე მათგანი FALSE, თუ გინდათ რომ რიცხვების პირველი ხაზი ისეთივე შემთხვევითი ჩანდეს, როგორც დანარჩენი სტრიქონები. კარგი, ასე რომ, ჩვენ გვაქვს 5 სვეტი, გვაქვს 200 / 5 = რიცხვის 40 სტრიქონი ჩვენებისათვის (linesToWrite) და ყველა ჩვენი სვეტი ნაგულისხმევია ჩართული. ხაზი 41: ჩვენ შევდივართ ორ "for" მარყუჟში, რომელთაგან პირველი (Loop A) ციკლდება ჩვენს ხაზებშიToWrite და მეორე (მარყუჟი B), რომელიც ციკლდება სვეტების რაოდენობაზე. მარყუჟში B, ჩვენ ვირჩევთ მარყუჟის ცვლადი loopB მნიშვნელობას და მისი ღირებულებიდან გამომდინარე ვაფასებთ If-Else განცხადებას. თუ მოცემული სვეტი ჩართულია ("TRUE", ან "ჩართულია"), ჩვენ "wshshell. SendKeys" - ის საშუალებით დავბეჭდავთ Int მნიშვნელობას (მრგვალი (rnd ())), რასაც მოყვება ჩანართი. წინააღმდეგ შემთხვევაში, ჩვენ დავბეჭდავთ მხოლოდ ჩანართს, ისე, რომ სვეტი ცარიელი გამოჩნდეს. მაშ, რა არის Int- ის მნიშვნელობა rnd () აბრუნებს შემთხვევითი მცურავი წერტილის რიცხვს 0.0 -დან 1.0 -მდე, მრგვალი () მიიღებს ამ მნიშვნელობას და დაამრგვალებს უახლოეს მთელ რიცხვამდე მნიშვნელობას, ხოლო Int () აჩვენებს შედეგს მთელ რიცხვს. ეს ბოლო ნაბიჯი შეიძლება ზედმეტად ჩაითვალოს, რადგან მრგვალი () ზარი უნდა მოგვცეს 0 ან 1. მე ეს გავაკეთე მხოლოდ ჩვევის გამო. რაღაც მომენტში ვიღაცამ უნდა მითხრა, რომ ეს უფრო უსაფრთხო იყო და მე, როგორც ჩანს, ეს ჯერ არ დამვიწყებია. მე –3 ნაწილზე…

ნაბიჯი 5: კოდექსის გაგება, ნაწილი 3

ვაგრძელებთ ქვე-მატრიქსს, აქ არის VB– ს შემდეგი რამდენიმე სტრიქონი…”ეს სვეტები”, ასე რომ, თუ სვეტი გამორთულია, ის ჩართული იქნება დროის 30 პროცენტში,”და თუ სვეტი ჩართულია, ის იქნება გამორთულია დროის 30 პროცენტი. turnOffMax = 0.30 turnOnMax = 0.30 თითოეული სვეტის გადართვა დროის 30% -ით ხდის რიცხვითი სვეტების "დაცემას" შემთხვევით, ისევე როგორც ფილმში. ზუსტი არ არის, მაგრამ ახლოს. 'სვეტი 1 Flip-flop flipMe = rnd () If ((col1 = turnOn) and (flipMe <turnOffMax)) then col1 = turnOff Else If ((col1 = turnOff) and (flipMe <turnOnMax)) then col1 = turnOn End If ზემოთ მოყვანილი ბლოკი მართავს იმას, თუ როგორ განვსაზღვრავთ ჩვენ ვაჩვენებთ რიცხვს მოცემულ სვეტში მომდევნო გამეორების დროს, ციფრების შემდეგი რიგისთვის. კოდი იკითხება "თუ სვეტი ჩართულია და შემთხვევითი რიცხვი სახელწოდებით flipMe არის 30%-ზე ნაკლები, გამორთეთ სვეტი. წინააღმდეგ შემთხვევაში, თუ სვეტი გამორთულია და flipMe 30%-ზე ნაკლებია, ჩართეთ სვეტი." up ქვე -მატრიცა. ქვე -გასაღებამდე…

ნაბიჯი 6: ქვე -გასაღები ()

ძირითადი მეთოდი ქვემოთ მოცემულია. Sub key (msg) 'გააკეთეთ ამობეჭდვა "მატრიცის" შეტყობინებებზე და წაშალეთ themwscript.sleep 1500length = len (msg) for position = 1 to length wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for position = 1 to wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75 გაზარდე ქვემდებარე ეს მეთოდი ამობეჭდავს სტრიქონს "msg". ის დაბეჭდავს ყველაფერს, რასაც თქვენ გადასცემთ. ეს მეთოდი მოგვიანებით იწოდება კოდში. პირველი FOR მარყუჟი ამობეჭდავს თითოეულ სიმბოლოს სტრიქონში, სათითაოდ, და აჩერებს 250 მილიწამს თითოეულ სიმბოლოს შორის. შემდეგ ჩვენ გვძინავს 3000 მილილიტრი (3 წამი) და ვწერთ უკანა სივრცეს თითოეული პერსონაჟისთვის, რომელიც ჩვენ ადრე დავბეჭდეთ, ამჯერად ცოტა ნაკლები გვეძინა. ეს არის ყველაფერი. გადადით პროგრამის მთავარ ნაწილზე, სადაც ყველაფერი გაერთიანებულია.

ნაბიჯი 7: მთავარი

პროგრამის ძირითადი შესრულება მოუწოდებს waitFor და მატრიცას (რომელიც ჩვენ უკვე განვიხილეთ), რომ შეიქმნას ყველაფერი და დაიწეროს 200 ორობითი ციფრი, გადანაწილებული 5 სვეტზე. სისტემის ამჟამინდელი მომხმარებლის სახელი იჭრება და მანიპულირდება, რათა დაიბეჭდოს როგორც "გაღვიძების" თანმიმდევრობის ნაწილი. ჩვენ შემდეგ შევიყვანთ FOR მარყუჟს, რომელიც ვიცით, რომ მხოლოდ 4 -ჯერ გავიმეორებთ "1" 4 დიუმიანი შეზღუდვა. შემდეგ ჩვენ ვირჩევთ ჩვენს მარყუჟის ცვლადს (loopA), რომელიც შეესაბამება პირველ CASE განცხადებას პირველად მეშვეობით, მეორე CASE განცხადებას მეორედ მარყუჟის მეშვეობით და ა.შ. მარყუჟის ყოველი გამეორება, myString არის მითითებული სწორი სიმებიანი წარმოდგენით სიტყვა, რომლის დაბეჭდვაც ჩვენ გვინდა, და გასაღების ქვეპროგრამას ეწოდება ბეჭდვის რეალურად გაკეთება. აშკარად ბევრი სხვა გზა არსებობს ამ მარყუჟის შესაქმნელად და მე ამას ვტოვებ მკითხველს სავარჯიშოდ. მას შემდეგ, რაც ჩვენ გამოვალთ FOR მარყუჟიდან, ჩვენ კიდევ ერთხელ მოვუწოდებთ მატრიცის ქვეპროგრამას მეტი რიცხვის დასაბეჭდად. როგორც კოდექსში ნათქვამია, თქვენ შეგიძლიათ მოაწყოთ ეს უკანასკნელი ზარი მატრიცაზე () მარყუჟში, ან შეგიძლიათ დარეკოთ უფრო დიდი ნომრით და ა.შ. შესრულება (ყოველთვის კარგი პრაქტიკა: P).იმედია ყველას გაერთობა ჩემი მაგალითის აღებით და მისი უკეთესობისკენ! თუ ამ ინსტრუქციამ გამოიწვია თქვენი ცნობისმოყვარეობა VB– სთან, Google– ს შეუძლია მოგაწოდოთ ბევრი კარგი რესურსი, რომ მეტი გაიგოთ ამის შესახებ, ვიდრე მე შემიძლია გითხრათ. ბედნიერი კოდირება! მარტინი

გირჩევთ: