Სარჩევი:

ნაღმსატყორცნი: 5 ნაბიჯი (სურათებით)
ნაღმსატყორცნი: 5 ნაბიჯი (სურათებით)

ვიდეო: ნაღმსატყორცნი: 5 ნაბიჯი (სურათებით)

ვიდეო: ნაღმსატყორცნი: 5 ნაბიჯი (სურათებით)
ვიდეო: ეპიზოდი 21. რატომ არის რუსეთი ზესახელმწიფო? 2024, ნოემბერი
Anonim
ნაღმსატყორცნი
ნაღმსატყორცნი

ჩვენი CPE 133 საბოლოო პროექტისთვის, მე და ჩეისმა გადავწყვიტეთ შეგვექმნა 'Minesweeper' თამაში, რომელიც იყენებდა ღილაკს და შეცვლიდა შეყვანას Basys-3 დაფაზე, ასევე VHDL კოდს. თამაშის უკეთესი სახელი შეიძლება იყოს "რუსული რულეტი", თუმცა ჩვენ გვინდოდა უფრო ოჯახის მეგობრული სახელი. თამაში გულისხმობს მომხმარებელს დააჭიროს ბეისის დაფის შუა ღილაკს, რათა შემთხვევით მიანიჭოს 16 გადამრთველიდან ერთს ბომბთან "აქტიური". ორი მოთამაშე რიგრიგობით ატრიალებს ჩამრთველებს, სათითაოდ, სანამ ერთ -ერთი მოთამაშე არ გადააქცევს გადამრთველს "ბომბით". როდესაც ეს მოხდება, შვიდი სეგმენტის ჩვენება აფრთხილებს მოთამაშეებს, რომ ამ მოთამაშემ ახლახან წააგო თამაში.

ნაბიჯი 1: მიმოხილვა

პროექტმა გამოიყენა მრავალი VHDL მოდული, რომელიც ჩვენ გამოვიყენეთ ამ კვარტლის განმავლობაში. ოთხი ბიტიანი მრიცხველი გამოიყენებოდა საათის კიდესთან ერთად შემთხვევითი ოთხი ბიტიანი ნომრის სიმულაციისთვის, რათა ერთ -ერთი გადამრთველი გააქტიურებულიყო. სახელმწიფო დიაგრამა ასევე გამოიყენებოდა შვიდი სეგმენტის ეკრანზე სხვადასხვა სიტყვების ჩასასმელად, დაწყებული "PLAY" - დან, როდესაც მოთამაშეები არიან შუა თამაშში, "LOSE" - მდე, როდესაც ერთმა მოთამაშემ გადართო აქტიური გადამრთველი.

ნაბიჯი 2: მასალები

  • Basys3 განვითარების დაფა Digilent– დან, Inc.
  • Vivado Design Suite BC_DEC.vhd (ეს ფაილი მოგვაწოდეს Polylearn– ზე და დაიწერა ბრაიან მილის მიერ)
  • 4 ბიტიანი მრიცხველი დამზადებულია T ფლიპ ფლოპებისგან
  • FSM

ნაბიჯი 3: თამაშის შექმნა

თამაშის დამზადება
თამაშის დამზადება
თამაშის დამზადება
თამაშის დამზადება

პირველი ნაბიჯი ამ თამაშის შესაქმნელად იყო სქემის დიაგრამის შედგენა ყველა იმ კომპონენტით, რომელსაც ჩვენ ვიყენებთ. ამ სისტემის შეყვანა იყო ღილაკი 1, 16 კონცენტრატორი და საათი. შედეგები იყო შვიდი სეგმენტის ჩვენება და ანოდები. წრიული დიაგრამის შედგენის შემდეგ, ჩვენ დავწერეთ თითოეული კომპონენტის ინდივიდუალური წყარო ფაილები Vivado– ში და შევაჯამეთ ისინი პორტის რუქების გამოყენებით ძირითადი წყაროს ფაილის ქვეშ.

თამაშის მთელი საფუძველია ის, რომ შემთხვევით მიენიჭება 16 გადამრთველიდან ერთი აქტიური იყოს ბომბით და მოთამაშეებმა არ იცოდნენ რომელი გადამრთველია აქტიური მანამ, სანამ ეს აქტიური გადამრთველი არ ჩაირთვება. ჩვენ შევხედეთ შემთხვევითი და ფსევდო შემთხვევითი რიცხვების გენერატორებს ინტერნეტით, მაგრამ საბოლოოდ გადავწყვიტეთ, რომ 4 ბიტიანი მრიცხველის გამოყენება და შესაბამისი გადამრთველის აქტიურად დანიშვნა საკმარისად შემთხვევითია იმისთვის, რასაც ჩვენ ვეძებდით. ჩვენ შევძელით ჩვენი 4 ბიტიანი მრიცხველის ხელახალი დანიშნულება, რომელიც წინა პროექტში შევქმენით, რათა შეგვეძლოს ამ დავალების შესრულება. ჩვენ გამოვიყენეთ მრიცხველი შემთხვევითი რიცხვის შესაქმნელად 0-15 შორის; შემდეგ main1 კომპონენტში ჩვენ შემთხვევითი რიცხვის ათწილადის ეკვივალენტს მივუთითებთ მის შესაბამის გადამრთველზე დაფაზე. როგორც სქემატურ სურათში ჩანს, როგორც გამომავალი X („აქტიური ბომბი“) main1 კომპონენტიდან, ასევე გადამრთველები, რომლებსაც მოთამაშეები ჩართავენ გადადიან FSM1– ზე. სახელმწიფო მანქანა გამოაქვს ერთი ბიტიანი Z მნიშვნელობა, რომელსაც შემდეგ კითხულობს BC_DEC1. სასრული მდგომარეობის მანქანას, რომელსაც ჩვენ ვიყენებთ, აქვს ორი განსხვავებული მდგომარეობა: A მდგომარეობაში, შვიდი სეგმენტის ჩვენების გამოსავალი "PLAY" და მანქანა რჩება ამ მდგომარეობაში მანამ, სანამ არ აღიარებს, რომ გააქტიურებული გადამრთველი გადატრიალებულია. როგორც კი ეს მოხდება, FSM გადადის B მდგომარეობაში, სადაც გამოდის ‘LOSE’ შვიდი სეგმენტის ჩვენებაზე და რჩება ამ მდგომარეობაში მანამ, სანამ ყველა 16 გადამრთველი არ გადავაბრუნებთ ‘0’ –ზე. როდესაც ეს პირობა დაკმაყოფილებულია, FSM შემდეგ კვლავ გადადის A სახელმწიფოში და ელოდება მოთამაშეებს დაიწყოს სხვა თამაში. მურის დიაგრამა, რომელიც დაგეხმარებათ გაიგოთ ეს FSM, ნაჩვენებია ზემოთ.

ნაბიჯი 4: მომავალი ცვლილებები

რამოდენიმე მოდიფიკაცია, რომელსაც ჩვენ განვიხილავდით ჩვენს თამაშში, მოიცავს მოედანზე მეტი ბომბის დამატებას (შესაძლოა გაიზარდოს ერთიდან სამამდე), ქულების მრიცხველის დამატება და მრავალი რაუნდი. ჩვენ საბოლოოდ გადავწყვიტეთ ამ გაუმჯობესების წინააღმდეგ, რადგან აღმოვაჩინეთ, რომ უფრო გრძელი, გაფართოებული თამაში, როგორც წესი, უფრო დაძაბული და საბოლოოდ უფრო სახალისო იყო, ვიდრე თამაში, რომელიც ჩვეულებრივ მთავრდებოდა სამი ან ოთხი გადართვის შემდეგ.

ნაბიჯი 5: დასკვნა

ჩვენ ძალიან კმაყოფილი ვიყავით ამ პროექტის საბოლოო შედეგით; არა მხოლოდ იმიტომ, რომ თამაშის საბოლოო ვერსია სახალისო იყო, არამედ იმიტომ, რომ პროექტის შექმნა და დაპროგრამება დაგვჭირდა ყველაზე მეტად გამოგვეყენებინა, თუ არა ყველაფერი, რაც ამ კვარტალში ვისწავლეთ. ჩვენ გამოვიყენეთ Flip Flops, მრიცხველები, FSM– ები, საათი, მომხმარებლის შეყვანა დაფიდან და გამომავალი შვიდ სეგმენტის ჩვენებაზე.

ჩვენ ასევე ვისწავლეთ, თუ როგორ შეიძლება რამდენიმე სინტაქსურმა შეცდომამ მთლიანად დაარღვიოს პროგრამა (თუნდაც ის კარგად ჩაითვალოს სხვა პროგრამირების ენებზე, როგორიცაა პითონი ან ჯავა) და ეს მხოლოდ მას შემდეგ რაც მრავალი სიმულაცია და კოდის მრავალჯერადი გამეორება აიტვირთება და ტესტირდება დაფა, საბოლოოდ შეძლებთ თქვენი კოდის ყველა ხარვეზის დამუშავებას.

გირჩევთ: