Orodha ya maudhui:

Mchezo wa Ushindani wa Mchezaji wa 2 VS: Hatua 4
Mchezo wa Ushindani wa Mchezaji wa 2 VS: Hatua 4

Video: Mchezo wa Ushindani wa Mchezaji wa 2 VS: Hatua 4

Video: Mchezo wa Ushindani wa Mchezaji wa 2 VS: Hatua 4
Video: TAZAMA KIJANA WA TOYO ALIVYOANGUKA AKIONYESHA UFUNDI WAKUCHEZA NAYO, MCHEZO HATARI 2024, Julai
Anonim
Mchezo wa Ushindani wa Mchezaji wa 2 VS
Mchezo wa Ushindani wa Mchezaji wa 2 VS

Utahitaji:

1. Basile zenye nguvu 3, Bodi ya FPGA (au FPGA nyingine yoyote,)

2. Toleo la kisasa la Vivado, au mazingira mengine ya VHDL

3. Kompyuta inayoweza kuendesha programu iliyotajwa.

Hatua ya 1: Mchezo wenyewe

Mchezo wenyewe
Mchezo wenyewe

Jinsi FSM inavyoingiliana na moduli.

Jinsi ya kucheza

Kuanza, bonyeza kitufe cha kati. Hii itasababisha "99", inayowakilisha afya ya mchezaji mbili, kuonyesha kwenye onyesho la sehemu saba. Kisha, taa za taa zitaangazia mtiririko kutoka kulia kwenda kushoto. Hii huunda bar ya nguvu. Mara baa ya umeme imejaa, inarudia. Lengo la mchezaji mmoja ni kupindua swichi yao wakati bar iko juu iwezekanavyo. LED nyingi zinawaka, mchezaji anayefanya uharibifu zaidi kwa mchezaji mbili. Baada ya mchezaji mmoja kupindua swichi yao, uharibifu ulioshughulikiwa hukatwa kutoka kwa afya ya mchezaji mbili. Kisha, hubadilisha zamu ya mchezaji mbili. Sasa, nambari iliyoonyeshwa inawakilisha afya ya mchezaji, na upau wa nguvu hujaza kutoka kushoto kwenda kulia. Mara tu mchezaji mbili anapohama, uharibifu hukatwa, na inarudi kwa zamu ya mchezaji tena. Hii inarudia hadi mchezaji mmoja afikie afya 0. Video ya utendaji huu imeambatanishwa.

Hatua ya 2: FSM

FSM
FSM
FSM
FSM
FSM
FSM
FSM
FSM

Mchezo huu kimsingi ni mashine kubwa kubwa ya serikali, ambayo mantiki ngumu hufanyika kulingana na hali ambayo FSM iko.

Hali 1: Menyu Hali ya kwanza ni skrini ya menyu, ambayo ni moja wapo ya majimbo rahisi. Inajumuisha sehemu saba inayoonyesha neno "CHEZA", na kitufe kinachosababisha mchezo kuanza. Kitufe, BTN, kinatuongoza kwa hali inayofuata, ambayo ni zamu ya mchezaji.

Hali 2: Zamu ya Mchezaji Mtu

Zamu ya mchezaji huamsha ishara inayosababisha onyesho la sehemu saba kuonyesha afya ya Mchezaji mbili. Ishara nyingine inawasha ili kuamsha rejista ya mabadiliko iliyoingizwa kutoka kwa moduli nyingine ambayo tumeunda (Pone.vhd). Rejista hii ya kuhama hufanya taa ya LED iwe juu kama kipimo cha nguvu kinachoongezeka katika michezo mingine, na ingeweza kurejeshwa hadi 0 inapofikia kiwango cha juu cha LED ambazo zinaweza kuwashwa. Inasasisha juu ya ukingo unaoinuka wa saa uliopatikana kutoka kwa barclock.vhd, ambayo imebadilishwa kutoka faili ya maabara iliyokopwa. Tulikuwa na mwanzo wa mwambaa wa mchezaji kutoka kulia, na ujaze kushoto, kwa sababu swichi ya mchezaji pia iko kushoto (kwa uzoefu wa mtumiaji mzuri). Mara tu swichi inapobanduliwa, serikali inaendelea kwa mchezaji atoe punguzo moja, na kiwango cha kazi ya LED kinahifadhiwa kwa ishara.

Hali 3: Mchezaji mmoja atoe ishara na kiwango cha kazi ya LED huamua kiwango cha afya kinachopunguzwa. Hii inafanywa kwa kuwa na rejista nyingine ya mabadiliko (deductor1.vhd) ambayo badala ya kuongeza LED, hupunguza. Hizi hupungua kwa makali ya kupanda kwa moja ya moduli za saa ambazo tulikopa na kurekebisha (downcounterclock.vhd). Mara tu LED moja imezimwa, hatua moja ya afya hukatwa kutoka kwa afya ya mchezaji mbili. Ikiwa wakati wa mchakato huu mchezaji mbili zinafikia afya 0, tunaacha na mara moja tuende kwenye hali ya "Mchezo wa kumaliza". Vinginevyo, mara vector ya LED itakapofika "0000000000000000", tunaendelea na zamu ya mchezaji mbili.

Hali 4: Zamu ya Mchezaji Pili Zamu ya mchezaji ni sawa na zamu ya mchezaji, isipokuwa rejista ya zamu yake (Ptwo.bhd) huenda kutoka kushoto kwenda kulia, na swichi iko upande wa kulia wa bodi. Ishara inaamsha kuwa na onyesho la afya la Mchezaji 1. Mara tu swichi 2 inapoanza kufanya kazi, hii huenda kwa zamu ya mchezaji wa Pili.

Hatua ya 5: Mchezaji wa Pesa mbili Kama zamu ya mchezaji mbili, mchezaji mbili anatoa hufanya sana kama mchezaji mmoja atoe. Tofauti kuu ni kwamba rejista ya mabadiliko ambayo inadhibiti kuzima kwa LED huenda kwa mwelekeo tofauti, ambayo ni marekebisho rahisi ya kufanya mara tu unapokuwa na mchezaji wa mchezaji anayefanya kazi vizuri.

Hatua ya 6: Mchezo Kumalizika Ikiwa wakati wowote mchezaji yeyote anafikia afya ya sifuri, mchezo unabadilika kwenda hali hii. Hakuna maonyesho ya kupendeza. Ikiwa BTN imesisitizwa, basi afya inarejeshwa kuwa 99, na serikali inarudi kwenye menyu, ikianza vizuri mchezo.

Hatua ya 3: Moduli

Moduli
Moduli

Mchoro wa Sanduku Nyeusi la Mchezo

Downcounterclock (kulingana na moduli ya clk_div.vhd na Bryan Mealy):

Hii ndio saa ambayo inashughulikia wakati wa watoaji. Mara kwa mara inayoitwa max_count ni 3x zaidi ya bar_'s max_count mara kwa mara. Hii itafanya watoaji 3x polepole kuliko kasi ya bar.

Barclock - (kulingana na moduli ya clk_div.vhd na Bryan Mealy):

Saa hii inashughulikia muda wa viwango vya nguvu, ambavyo tulifanya kuongezeka haraka ili kuongeza ugumu kwenye mchezo. Wakati huu unaweza kubadilishwa kwa kupenda kwako, kuongeza kasi kwa kufanya max_count mara kwa mara kuwa nambari kubwa, au kuipunguza kwa kufanya max_count iwe nambari ndogo. Ili faili hii ifanye kazi, unahitaji kuhakikisha kuwa vizuizi vyako vinalingana na vyetu.

Pone:

Hii ni rejista ya mabadiliko ambayo inabadilisha bits kushoto, na kuongeza moto kidogo kuifanya ionekane kama kipimo cha nguvu kinaongezeka. Wakati bits zote zina moto, bits zote zinawekwa tena kuwa '0', na mzunguko unaanza tena.

Ptwo:

Hii ni toleo lililobadilishwa la moduli ya P1.

Mtoaji1:

Hii ni mchanganyiko wa rejista ya mabadiliko na mtoaji. Rejista ya kuhama huenda kwa mwelekeo tofauti wa rejista ya mabadiliko ya P1, ikionyesha kupunguzwa. Hii pia inachukua 1 kutoka kwa afya ya Mchezaji 2 kwa kila mzunguko wa saa, kwa hivyo pamoja na mchanganyiko wa kazi hizi mbili, itaonekana kama afya ya mpinzani inapungua kwa 1 kwa kila uongozi wa baa ya afya inayoshuka.

Deductor2: Hii ni toleo lililobadilishwa la moduli ya Deductor1.

PlayDecoder (iliyokopwa na iliyobadilishwa slgihtly kutoka ekchen35649 133 yake inayoweza kufundishwa): Hii inatumika katika hali ya menyu kuonyesha neno "CHEZA" kwenye kisimbuzi cha sehemu saba.

Hatua ya 4: Jaribu

Mchezo huu awali uliongozwa na moja ya minigames kutoka Kirby. Ni mchezo rahisi wa wachezaji wawili ambao unaweza kuchezwa kwenye Bodi ya Basys 3, au FPGA yoyote.

Hatua ya 1: Vifaa vinavyohitajika

Utahitaji: Digilent Basys 3, Bodi ya FPGA (au nyingine yoyote) Toleo la sasa la Vivado, au mazingira mengine ya vhdl Kompyuta inayoweza kuendesha programu iliyotajwa Ubongo

Hatua ya 2: Mchezo wenyewe

Jinsi ya kucheza

Kuanza, bonyeza kitufe cha kati. Hii itasababisha "99", inayowakilisha afya ya mchezaji mbili, kuonyesha kwenye onyesho la sehemu saba. Kisha, taa za taa zitaangazia mtiririko kutoka kulia kwenda kushoto. Hii huunda bar ya nguvu. Mara baa ya umeme imejaa, inarudia. Lengo la mchezaji mmoja ni kupindua swichi yao wakati bar iko juu iwezekanavyo. LED nyingi zinawaka, mchezaji anayefanya uharibifu zaidi kwa mchezaji mbili. Baada ya mchezaji mmoja kupindua swichi yao, uharibifu ulioshughulikiwa hukatwa kutoka kwa afya ya mchezaji mbili. Kisha, hubadilisha zamu ya mchezaji mbili. Sasa, nambari iliyoonyeshwa inawakilisha afya ya mchezaji, na upau wa nguvu hujaza kutoka kushoto kwenda kulia. Mara tu mchezaji mbili anapohama, uharibifu hukatwa, na inarudi kwa zamu ya mchezaji tena. Hii inarudia hadi mchezaji mmoja afikie afya 0. Video ya utendaji huu imeambatanishwa.

Ili kucheza mchezo, pakia kwenye ubao wa basys, na bonyeza kitufe cha kati. Jaribu kubonyeza swichi kwa kutumia LED nyingi iwezekanavyo, na kisha subiri na uangalie wakati bodi inapunguza alama hizo kutoka kwa afya ya mpinzani wako. Kisha, mpatie rafiki yako, na

Hatua ya 3: FSM

Mchezo huu kimsingi ni mashine kubwa kubwa ya serikali, ambayo mantiki ngumu hufanyika kulingana na hali ambayo FSM iko.

(Mchoro wa Serikali)

Hali 1: Menyu

Hali ya kwanza ni skrini ya menyu, ambayo ni moja ya majimbo rahisi. Inajumuisha sehemu saba inayoonyesha neno "CHEZA", na kitufe kinachosababisha mchezo kuanza. Kitufe, BTN, kinatuongoza kwa hali inayofuata, ambayo ni zamu ya mchezaji.

Hali 2: Zamu ya Mchezaji Mtu

Zamu ya mchezaji huamsha ishara inayosababisha onyesho la sehemu saba kuonyesha afya ya Mchezaji mbili. Ishara nyingine inawasha ili kuamsha rejista ya mabadiliko iliyoingizwa kutoka kwa moduli nyingine ambayo tumeunda (Pone.vhd). Rejista hii ya kuhama hufanya taa ya LED iwe juu kama kipimo cha nguvu kinachoongezeka katika michezo mingine, na ingeweza kurejeshwa hadi 0 inapofikia kiwango cha juu cha LED ambazo zinaweza kuwashwa. Inasasisha juu ya ukingo unaoinuka wa saa uliopatikana kutoka kwa barclock.vhd, ambayo imebadilishwa kutoka faili ya maabara iliyokopwa. Tulikuwa na mwanzo wa mwambaa wa mchezaji kutoka kulia, na ujaze kushoto, kwa sababu swichi ya mchezaji pia iko kushoto (kwa uzoefu wa mtumiaji mzuri). Mara tu swichi inapobanduliwa, serikali inaendelea kwa mchezaji atoe punguzo moja, na kiwango cha kazi ya LED kinahifadhiwa kwa ishara.

Hali 3: Mchezaji wa Kwanza atoe

Ishara iliyo na kiwango cha kazi ya LED huamua kiwango cha afya ambacho hupunguzwa. Hii inafanywa kwa kuwa na rejista nyingine ya mabadiliko (deductor1.vhd) ambayo badala ya kuongeza LED, hupunguza. Hizi hupungua kwa makali ya kupanda kwa moja ya moduli za saa ambazo tulikopa na kurekebisha (downcounterclock.vhd). Mara tu LED moja imezimwa, hatua moja ya afya hukatwa kutoka kwa afya ya mchezaji mbili. Ikiwa wakati wa mchakato huu mchezaji mbili zinafikia afya 0, tunaacha na mara moja tuende kwenye hali ya "Mchezo wa kumaliza". Vinginevyo, mara vector ya LED itakapofika "0000000000000000", tunaendelea na zamu ya mchezaji mbili.

Hali 4: Zamu ya Mchezaji wa Pili

Zamu ya mchezaji ni sawa kabisa na zamu ya mchezaji, isipokuwa rejista ya zamu yake (Ptwo.bhd) huenda kutoka kushoto kwenda kulia, na swichi iko upande wa kulia wa bodi. Ishara inaamsha kuwa na onyesho la afya la Mchezaji 1. Mara tu swichi 2 inapoanza kufanya kazi, hii huenda kwa zamu ya mchezaji wa Pili.

Hatua ya 5: Mchezaji wa Pesa mbili

Kama zamu ya mchezaji mbili, mchezaji mbili anatoa hutenda sana kama mchezaji mmoja atoe. Tofauti kuu ni kwamba rejista ya kuhama ambayo inadhibiti kuzima kwa LED huenda kwa mwelekeo tofauti, ambayo ni marekebisho rahisi ya kufanya mara tu unapokatwa na mchezaji kufanya kazi vizuri.

Hatua ya 6: Mchezo Kumalizika Ikiwa kwa wakati wowote mchezaji yeyote anafikia afya sifuri, mchezo unabadilika kwenda hali hii. Hakuna maonyesho ya kupendeza. Ikiwa BTN imesisitizwa, basi afya inarejeshwa kuwa 99, na serikali inarudi kwenye menyu, ikianza vizuri mchezo.

Sanduku Nyeusi

Hatua ya 4: Moduli

Downcounterclock (kulingana na moduli ya clk_div.vhd na Bryan Mealy):

Hii ndio saa ambayo inashughulikia wakati wa watoaji. Mara kwa mara inayoitwa max_count ni 3x zaidi ya bar_'s max_count mara kwa mara. Hii itafanya watoaji 3x polepole kuliko kasi ya bar.

Barclock - (kulingana na moduli ya clk_div.vhd na Bryan Mealy): Saa hii inashughulikia muda wa vipimo vya nguvu, ambavyo tulifanya kuongezeka haraka ili kuongeza ugumu kwenye mchezo. Wakati huu unaweza kubadilishwa kwa kupenda kwako, kuongeza kasi kwa kufanya max_count mara kwa mara kuwa nambari kubwa, au kuipunguza kwa kufanya max_count iwe nambari ndogo. Ili faili hii ifanye kazi, unahitaji kuhakikisha kuwa vizuizi vyako vinalingana na vyetu.

Pone: Hii ni rejista ya mabadiliko ambayo inabadilisha bits kushoto, na kuongeza moto kidogo kuifanya ionekane kama kipimo cha nguvu kinaongezeka. Wakati bits zote zina moto, bits zote zinawekwa tena kuwa '0', na mzunguko unaanza tena.

Ptwo: Hii ni toleo lililobadilishwa la moduli ya P1.

Deductor1: Huu ni mchanganyiko wa rejista ya mabadiliko na mtoaji. Rejista ya kuhama huenda kwa mwelekeo tofauti wa rejista ya mabadiliko ya P1, ikionyesha kupunguzwa. Hii pia inachukua 1 kutoka kwa afya ya Mchezaji 2 kwa kila mzunguko wa saa, kwa hivyo pamoja na mchanganyiko wa kazi hizi mbili, itaonekana kama afya ya mpinzani inapungua kwa 1 kwa kila uongozi wa baa ya afya inayoshuka.

Deductor2: Hii ni toleo lililobadilishwa la moduli ya Deductor1.

PlayDecoder (iliyokopwa na kubadilishwa kidogo kutoka ekchen35649 133 yake inayoweza kufundishwa):

Hii inatumika katika hali ya menyu kuonyesha neno "CHEZA" kwenye kisimbuzi cha sehemu saba.

Kufanya: picha, video

Ilipendekeza: