
Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10


Ky projekt bazohet në një lojë kompjuterike që mund ta gjeni në internet. Emri i saj është, "Loja më e vështirë në botë". Unë kam qenë në gjendje ta ri-krijoj atë në Arduino duke përdorur një Matricë LED me katër module. Në këtë udhëzues ju mësoj se si ta ndërtoni vetë. Para se të hyjmë në shumë detaje, dua të jap një përmbledhje të shpejtë të hapave që kam kaluar për të krijuar këtë lojë.
- Mblodha të gjitha pjesët e nevojshme.
- I lidha pjesët së bashku.
- Shkrova një skicë që përdorte levën për të lëvizur lojtarët LED nëpër të gjitha modulet.
- Unë i projektova pengesat e para dhe i shtova në skicë, kështu që ata imituan lojën më të vështirë në botë.
- Pastaj shtova kodin për të zbuluar një përplasje me pengesat, të cilat do të rinisin lojën.
- Dhe pastaj hartova dy nivele të tjera pengesash.
Hapi 1: Të gjitha pjesët


Këtu është një listë e të gjitha pjesëve që ju nevojiten:
- Një lidhës Arduino UNO dhe usb:
- Një katër modul 8x8: Matrica LED https://www.banggood.com/MAX7219-Dot-Matrix-Module..
- Një xhojstik:
- 10 tela meshkuj në femra:
Hapi 2: Si t'i lidhni pjesët me Arduino

Si ta lidhni matricën LED me Arduino
- GND shkon në GND
- VCC shkon në 5V
- DataIn shkon në pinin dixhital 12
- CLK shkon në pinin dixhital 11
- CS ose LOAD shkon në pinin dixhital 10
Si të lidhni levën
- GND shkon në GND
- 5V shkon në 5V
- VRx shkon në pinin analog A0
- VRy shkon në pinin analog A1
- SW nuk përdoret
Bateria lidhet me folenë 9v për t'i dhënë fuqinë Arduino
Hapi 3: Grafiku i rrjedhës i Programit

Ovali tregon fillimin e programit.
Hapi i parë është përcaktimi i të gjitha pengesave.
Dy hapat e ardhshëm tregojnë vendosjen e variablave dhe ndezjen e të gjitha moduleve.
Hapi tjetër, është vendosja e LED -ve në nivelin e parë dhe çdo variabël tjetër.
Tjetra shfaqni nivelin në të cilin aktualisht është lojtari.
Rombi tregon leximin e Joystick për të parë se në cilin drejtim po shtyhet.
Pastaj lëvizni lojtarin në çfarëdo drejtimi që Joystick u shty.
Kontrolloni dhe shihni nëse lojtari është përplasur me një pengesë.
Nëse lojtari godet një pengesë, kthehuni në nivelin e parë. Nëse jo kontrolloni për të parë nëse lojtari ka arritur në fund të nivelit.
Nëse lojtari është në fund të nivelit, vendoseni në nivelin tjetër dhe kthehuni te "Shfaq nivelin aktual". Nëse ato nuk janë në fund, zhvendosni pengesat dhe kthehuni te "Lexoni Joystick".
Hapi 4: Programimi i Joystick
Sigurisht që për të lëvizur pikën e vogël që është lojtari, ne kemi nevojë për një levë. dhe për të lejuar që levë të lëvizë aktualisht lojtarin, duhet ta kodojmë në Arduino IDE. Duhet të përfshini bibliotekën LedControl të cilën mund ta gjeni duke shkuar te menyja e skicës> Përfshini bibliotekat> menaxhoni bibliotekat dhe kërkoni për LedControl. Ja se si duket kodi për levën.
#përfshi "LedControl.h"
int DataIn = 12; int CLK = 11; int DIN = 10; LedControl lc = LedControl (DataIn, CLK, DIN, 4); // Krijon objekt për katër module int delaytime = 50; // shpejtësia me të cilën loja shkon int joystick_RtLt, joystick_UpDn; int players_x = 0; // pozicioni horizontal i lojtarëve nga 0 në 31 int players_y = 3; // pozicioni vertikal i lojtarëve nga 0 në 7 rresht int, kolonë, modul; void setup () {initialize_modules (); // ndizni dhe vendosni të katër modulet led} void loop () {move_player (); // filloni lakin duke kontrolluar nëse lojtari lëviz vonesë (vonesë); } void initialize_modules () {lc.shutdown (0, false); // fillon modulin 0 lc.setIntensity (0, 1); lc. mbyllje (1, false); // fillon modulin 1 lc.setIntensity (1, 1); lc. mbyllje (2, false); // fillon modulin 2 lc.setIntensity (2, 1); lc. mbyllje (3, false); // fillon modulin 3 lc.setIntensity (3, 1); lc. ClearDisplay (0); // pastron modulin 0} void move_player () {modul = players_x/8; // përcakton cilin modul është lojtari në kolonën = players_x%8; // përcakton kolonën ku lojtari është në rreshtin e modulit = players_y; lc.setLed (moduli, rreshti, kolona, false); // fikni led në pozicionin aktual të lojtarit joystick_RtLt = analogRead (A0)/204 - 2; // lexoni X -joystick dhe diapazoni i hartës nga 2 në -2 nëse (joystick_RtLt> 0) // kur joystick është te lojtarët e duhur_x ++; // shkoni djathtas tjetër nëse (joystick_RtLt 0) // nëse joystick është në të majtë dhe jo në fillim lojtarët_x--; // lëviz levën majtas_UpDn = analogRead (A1)/204 - 2; // lexoni Y-joystick dhe diapazoni i hartës nga 2 në -2 nëse (joystick_UpDn 0) // nëse joystick është poshtë dhe lojtari nuk është në fund players_y--; // lëviz poshtë poshtë nëse (joystick_UpDn> 0 && players_y <7) // nëse joystick është lart dhe lojtari nuk është në krye players_y ++; // shkoni lart modul = players_x/8; // vendosni modulin për lojtarët kolona e pozicionit të ri = players_x%8; // vendos kolonën te lojtarët rreshti i pozicionit të ri = players_y; // vendos rresht te lojtarët pozicioni i ri lc.setLed (modul, rresht, kolonë, i vërtetë); // ndizni led në pozicionin e ri të lojtarit}
Tani që keni shtuar levën le të punojmë në pengesën e parë!
Hapi 5: Niveli i Parë
Mirë, kështu që tani është koha për të hyrë në pjesën kryesore të programit, pengesat! Pengesat janë ato që e bëjnë këtë me të vërtetë, "Loja më e vështirë në botë". Pra, nëse doni të luani lojën, atëherë duhet ta shtoni këtë në kodin tuaj:
byte pengesë [NIVELAT] [Skenat] [KOLONAT] [RRESAT] = {// tre nivele, 8 skena, 8 përplasje, 8 rreshta
{{{1, 1, 1, 1, 1, 1, 0, 0}, // niveli i parë, skena e parë {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1}, { 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // niveli i parë, skena e dytë {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 1, 1, 1, 1 }, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // niveli i parë, i tretë skena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // së pari niveli, skena e katërt {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, // niveli i parë, skena e pestë {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 0, 0, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // niveli i parë, skena e gjashtë {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, { 1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 1, 1, 1, 1, 1, 1}, // niveli i parë, skena e shtatë {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0 }, {1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 1, 1, 1, 1, 1, 1, 1}, // niveli i parë, i teti skena {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}}, void setup () {initialize_modules (); // ndizni dhe vendosni të katër modulet led start_level (0); void loop () {move_player (); // filloni lakin duke kontrolluar nëse lojtari lëviz nëse (përplasja ()) {// kontrolloni nivelin e përplasjes = 0; // nëse përplasja është e vërtetë, rivendosni nivelin start_level (niveli); // rinis lojën} tjetër nëse (delay_count == pengesë_vonesë) {// nëse asnjë përplasje nuk lëviz pengesë çdo vonesë tjetër moveobstacle (); vonesa_numri = 0; } tjetër delay_count ++; vonesë (vonesë); // vonesë me shpejtësinë e lojës}
Dhe kjo është pengesa e parë! Nëse mërziteni nga kjo si niveli juaj i parë, atëherë gjithmonë mund të ndryshoni bajtët, vetëm mos harroni se duhet të keni tetë skena të ndryshme! Le të vazhdojmë në hapin tjetër, zbulimin e përplasjes!
Hapi 6: Zbulimi i Përplasjes
Ky hap është një pjesë tjetër e rëndësishme e lojës, me të cilën nuk do të kishte shumë sfidë! ju thjesht mund të kaloni rrugën tuaj përmes pengesave pa ndonjë pasojë! nuk do të ishte shumë argëtuese, apo jo? kështu që le ta bëjmë lojën më sfiduese (dhe shumë më argëtuese!) duke shtuar këtë pjesë të programit:
lak void () {
move_player (); // filloni lakin duke kontrolluar nëse lojtari lëviz nëse (përplasja ()) {// kontrolloni nivelin e përplasjes = 0; // nëse përplasja është e vërtetë, rivendosni nivelin start_level (niveli); // rinis lojën} tjetër nëse (delay_count == pengesë_vonesë) {// nëse asnjë përplasje nuk lëviz pengesë çdo vonesë tjetër moveobstacle (); vonesa_numri = 0; } tjetër delay_count ++; vonesë (vonesë); // vonesa me shpejtësinë e lojës} int përplasja () {// kontrolloni nëse lojtari goditi një pengesë në modulin e skenës = players_x/8; kolona = lojtarët_x%8; rresht = lojtarët_y; nëse (moduli> 0) nëse (pengesa [niveli] [skena] [kolona] [rreshti] == 1) // nëse pozicioni i lojtarit është i njëjtë me kthimin e pengesës (1); // përplasja e zbuluar kthimi i vërtetë kthimi (0); // asnjë përplasje nuk kthehet e rreme}
Dhe atje ju shkoni! tani mund ta shijoni lojën shumë më tepër! Tani do t'ju tregoj se si të programoni dy nivelet e fundit të lojës! pothuajse keni mbaruar me këtë udhëzues, dhe jam i sigurt që jeni gati ta provoni!
Hapi 7: Dy nivelet e fundit
Duke ardhur në fund të mësimit, këto dy nivele të fundit janë gjithçka që ju nevojitet për të përfunduar këtë lojë. Atëherë mund ta provoni vetë! këtu është kodi:
byte pengesë [NIVELAT] [Skenat] [KOLONAT] [RRESAT] = {// niveli i dytë dhe i tretë, 8 skena, 8 kolona, 8 rreshta
{{{1, 0, 0, 0, 0, 0, 0, 1}, // niveli i dytë, skena e parë {0, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, { 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 0, 0, 1}}, {{1, 1, 0, 0, 0, 0, 0, 1}, // niveli i dytë, skena e dytë {0, 0, 1, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0 }, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 0, 0, 0, 1, 1}}, {{0, 1, 0, 0, 0, 0, 0, 0}, // niveli i dytë, skena e tretë {0, 0, 1, 1, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 0}}, {{0, 0, 1, 0, 0, 0, 0, 0}, // niveli i dytë skena e katërt {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {0, 1, 1, 1, 1, 0, 1, 0}, {0, 1, 0, 1, 1, 1, 1, 0}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}}, {{0, 0, 0, 1, 0, 0, 0, 0}, // niveli i dytë, pesë skena e th {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 1, 1, 0, 0, 1}, {1, 0, 0, 1, 1, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // niveli i dytë, skena e gjashtë {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 1, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1}, {0, 0, 1, 0, 0, 1, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 1, 0, 0}, // niveli i dytë, skena e shtatë {0, 0, 0, 0, 0, 1, 0, 0}, {1, 1, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 1, 1}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 1, 0}, // niveli i dytë skena e tetë {1, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 1}, {0, 1, 0, 0, 0, 0, 0, 0}}}, {{{0, 1, 0, 0, 0, 0, 0, 1}, // niveli i tretë, skena e parë {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 0} }, {{0, 0, 0, 0, 1, 0, 0, 1}, // niveli i tretë, skena e dytë {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // niveli i tretë, skena e tretë {0, 0, 0, 1, 0, 0, 1, 0}, { 0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // niveli i tretë, skena e katërt {1, 0, 0, 1, 0, 0, 1, 0 }, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // niveli i tretë, skena e pestë {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // niveli i tretë, skena e gjashtë {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // niveli i tretë, skena e shtatë {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // niveli i tretë, skena e tetë { 1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}}};
Dhe kjo eshte! jeni gati të përpiqeni të përfundoni lojën më të vështirë në botë. Gjithashtu kodi i plotë Arduino është bashkangjitur më poshtë.
Recommended:
Dizajni i lojës në lëvizje në 5 hapa: 5 hapa

Dizajni i lojës në Flick në 5 hapa: Flick është një mënyrë vërtet e thjeshtë për të bërë një lojë, veçanërisht diçka si një enigmë, roman vizual ose lojë aventure
Kontrolluesi i lojës Arduino: 5 hapa

Arduino Game Controller: Një kontrollues i lojës është një pajisje e përdorur për të dhënë hyrje në një lojë video për të bërë lëvizjen e personazhit ose objektit. Dizajni dhe funksionaliteti i një kontrolluesi të lojës janë të lehta dhe patjetër do t'ju japin një përvojë të mahnitshme të lojrave, dhe do të jetë më e pavlefshme
SASSIE: Sistemi për zgjidhjen e heshtjes së vështirë dhe përmirësimin e ndërveprimit: 5 hapa

SASSIE: Sistemi për zgjidhjen e heshtjes së vështirë dhe përmirësimin e ndërveprimit: SASSIE është përgjigja e pyetjes që të gjithë ne i kemi bërë vetes gjatë një heshtjeje të vështirë në një moment të jetës sonë, "A flas tjetër?" Epo tani nuk keni pse të shqetësoheni sepse SASSIE është krijuar posaçërisht për të njohur një heshtje të pakëndshme,
HacKIT: një Kompjuteri Civile për Privatësi të Vështirë (për Veshje) për Hacking Alexa, Google dhe Siri: 4 hapa

HACKIT: një Kit Privacy Private Hard (vesh) për Hacking Alexa, Google dhe Siri: Të lodhur nga " i zgjuar " pajisjet ju përgjojnë? Atëherë ky grup mjetesh për vëzhgim-hakim është për ju! HacKIT është një çantë e ulët (e veshur) e privatësisë qytetare e teknologjisë së ulët për të ridizajnuar, hakuar dhe rimarrë Amazon Echo, Google Home,
GPS në librin tim të vështirë: 7 hapa (me fotografi)

GPS në librin tim të vështirë: Unë kam një laptop të mrekullueshëm nga gruaja ime. Ashtë një Panasonic Toughbook CF-53 i cili është zgjidhja më e mirë për mua. Unë jam duke përdorur Linux dhe e përdor kompjuterin kryesisht për projektet e mia. Që do të thotë se unë shpesh nuk kujdesem për pajisjet. Gjithashtu unë jam shumë shpesh