Мазмуну:

Кен ташуучу: 5 кадам (сүрөттөр менен)
Кен ташуучу: 5 кадам (сүрөттөр менен)

Video: Кен ташуучу: 5 кадам (сүрөттөр менен)

Video: Кен ташуучу: 5 кадам (сүрөттөр менен)
Video: "92 жаштагы АПАСЫ менен 52 жаштагы ӨЗ баласы жатканын КӨРДҮМ / Күйөм ЗӨӨКҮР болчу" дейт 32деги келин 2024, Ноябрь
Anonim
Minesweeper
Minesweeper

Биздин CPE 133 акыркы долбоорубуз үчүн, Чейз экөөбүз баскычты колдонгон "Minesweeper" оюнун түзүүнү чечтик жана Basys-3 тактасынан киргизүүнү, ошондой эле VHDL кодун алмаштырдык. Оюндун жакшы аталышы "Орус рулеткасы" болушу мүмкүн, бирок биз дагы үй -бүлөлүк достук ысымы менен барууну кааладык. Оюн колдонуучуну Basys тактасындагы ортоңку баскычты басып, бомбанын жардамы менен "активдүү" болуу үчүн 16 коммутатордун бирин туш келди дайындоону камтыйт. Андан кийин эки оюнчу кезек -кезеги менен өчүргүчтөрдү кезеги менен которуп, оюнчулардын бири "бомба" менен которгучту которгонго чейин. Мындай болгондо, жети сегменттүү дисплей оюнчуларга бул оюнчу жаңы эле оюнду жоготконун эскертет.

1 -кадам: Обзор

Долбоор биз ушул чейрек ичинде колдонгон VHDL модулдарынын көбүн колдонду. Коммутаторлордун бирин активдештирүү үчүн туш келди төрт биттик санды симуляциялоо үчүн сааттын учу менен бирге төрт битти эсептегич колдонулган. Жети сегменттин дисплейине ар кандай сөздөрдү чыгаруу үчүн штаттык диаграмма колдонулган, оюнчулар оюн ортосунда "ОЮНУШтан" баштап, оюнчулардын бири активдүү которгучту оодарганда "ЖОГОЛУУ" га чейин.

2 -кадам: материалдар

  • Digilent, Inc.ден Basys3 өнүктүрүү кеңеши.
  • Vivado Design Suite BC_DEC.vhd (Бул файл бизге Polylearnде берилген жана Брайан Мили тарабынан жазылган)
  • Т -флиптерден жасалган 4 биттик эсептегич
  • А FSM

3 -кадам: Оюнду жасоо

Оюн жасоо
Оюн жасоо
Оюн жасоо
Оюн жасоо

Бул оюнду жасоонун биринчи кадамы, биз колдоно турган бардык компоненттери бар схеманы чийүү болгон. Бул системанын кириштери 1 -баскыч, 16 өчүргүч жана Саат болгон. Чыгуулар жети сегменттүү дисплей жана аноддор болчу. Райондук диаграмманы тарткандан кийин, биз Vivado'до ар бир компонент үчүн жеке булак файлдарды жаздык жана аларды негизги булак файлынын астындагы порт карталарын колдонуу менен бириктирдик.

Оюндун бардык негизи 16 коммутатордун бирине кокусунан бомба менен активдүү болууну жана оюнчуларга ошол активдүү которгуч которулмайынча кайсы коммутатор активдүү экенин билбөөнү камтыйт. Биз интернетте туш келди жана жасалма сандык генераторлорду карадык, бирок акыры биз 4 биттик эсептегичти колдонуп, тиешелүү которуштургучту активдүү деп дайындоо биз издеп жүргөн нерсеге жетиштүү түрдө кокустук деп чечтик. Бул тапшырмада иштөө үчүн биз мурунку долбоордо түзгөн 4-бит эсептегичибизди кайра иштете алдык. Биз 0-15 ортосундагы туш келди санды түзүү үчүн эсептегичти колдондук; анда main1 компонентинде биз туш келди санынын ондук эквивалентин тактайдагы тиешелүү которгучка бердик. Схемада көрүнүп тургандай, main1 компонентинен чыккан X ("активдүү бомба") жана оюнчулар күйгүзгүчтөрү FSM1ге өтөт. Мамлекеттик машина бир аз Z маанисин чыгарат, аны BC_DEC1 окуйт. Биз колдонгон акыркы мамлекеттик машинанын эки башка абалы бар: А абалында жети сегменттүү дисплей "PLAY" чыгарат жана машина активдештирилген которгуч которулганын тааныганга чейин ошол абалда калат. Мындай болгондон кийин, FSM В абалына өтөт, ал жерде "LOSE" жети сегменттүү дисплейге чыгат жана бардык 16 өчүргүчтөр "0" га которулганга чейин ошол абалда калат. Бул шарт аткарылганда, FSM дагы бир жолу А абалына барат жана оюнчулардын башка оюнду башташын күтөт. Бул FSMди түшүнүүгө жардам берүү үчүн Мур диаграммасы жогоруда көрсөтүлгөн.

4 -кадам: Келечектеги өзгөртүүлөр

Биз оюнубузга киргизүүнү ойлогон бир нече өзгөртүүлөргө талаага дагы бомба кошуу (балким бирден үчкө чейин көбөйтүү), эсептегичти жана бир нече раунд кошуу кирет. Биз акыры бул жакшыртууларга каршы чечим кабыл алдык, анткени узунураак, узартылган оюн, адатта, үч же төрт которуштуруудан кийин аяктаган оюнга караганда чыңалган жана акырында кызыктуу болгонун байкадык.

5 -кадам: Жыйынтык

Биз бул долбоордун акыркы жыйынтыгына абдан кубандык; Оюндун акыркы версиясы ойноо кызыктуу болгону үчүн гана эмес, долбоорду түзүү жана программалоо бизден ушул чейректе үйрөнгөн нерселерибиздин бардыгын болбосо да, көбүн колдонууну талап кылгандыктан. Биз флип -флопторду, эсептегичтерди, FSMдерди, саатты, колдонуучунун тактанын киргизүүсүн жана жети сегменттүү дисплейге чыгарууну колдондук.

Биз ошондой эле бир нече синтаксистик каталар программаны кантип толугу менен буза аларын билдик (эгер алар Python же Java сыяктуу башка программалоо тилдеринде жакшы деп эсептелсе да) жана коддун бир нече симуляциясы жана бир нече жолу кайталанышынан кийин гана. такта, сиз акыры кодуңуздагы бардык мүчүлүштүктөрдү иштете аласыз.

Сунушталууда: