Ismerje meg a Python -t és az elektronikát a Minecraft Pi Edition segítségével

Ismerje meg a Python -t és az elektronikát a Minecraft Pi Edition segítségével

Mindig is szeretett volna megtanulni kódolni, de nem tudta, hol kezdje? Ismerje meg, hogyan vezérelheti a Minecraftot a Raspberry Pi -n a Python és néhány egyszerű elektronika segítségével. Íme a végeredmény:





Szüksége lesz egy Pi 2 -re vagy újabbra ehhez a projekthez, és bár a legtöbb feladatot elvégezheti a parancssorból a Secure Shell (SSH) segítségével, ez az oktatóanyag a közvetlenül a Pi -n történő kódolásra összpontosít.





Új vagy a Minecraftban? Ne aggódj - itt a miénk A Minecraft kezdő kézikönyve .



Bevezetés a Minecraft Pi -be

A Minecraft for the Raspberry Pi tanulásra és barkácsolásra lett kifejlesztve (és ingyenes). Alkalmazásprogramozási interfésszel (API) rendelkezik, amely lehetővé teszi a kód számára, hogy könnyen beszélhessen a Minecraft -tal. Kiválóan alkalmas a Pythonban történő kódolás megtanulására, valamint az elektronika használatának megkezdésére.

Mi az a Python?

Piton egy programozási nyelv. Ez értelmezett , ami azt jelenti, hogy amikor Python fájlt vagy programot futtat, a számítógépnek először egy kis munkát kell végeznie a fájlon. Hátránya, hogy lassúnak tekinthető a fordított nyelvekhez képest [Törött URL eltávolítva].



A tolmácsolt nyelvek előnyei a kódolás gyorsasága és barátságossága. Nem kell elmondania a számítógépnek mit a tárolni kívánt adatokat, csak hogy valamit tárolni szeretne, és a számítógép kitalálja, mit kell tennie. Természetesen vannak kivételek, és ez némileg leegyszerűsített nézet, azonban a programozásnak szórakoztatónak kell lennie! Ha belekezd az összetett technikai részletekbe, akkor kissé fáradságos lehet.

A Python megkülönbözteti a kis- és nagybetűket. Ezt fontos tudni, mivel a Python nem ismeri fel az objektumokat akkor is, ha helyesen írták ha az eset rossz. A „Dosomething ()” nem fog működni, ha a módszert ténylegesen „DoSomething ()” -nak hívják. A Python behúzást is használ . Más programozási nyelvek nem törődnek azzal, hogy hány behúzása van a kódnak, míg a Python csinál gondoskodás. A behúzások segítségével meg lehet mondani a Pythonnak, hová tartozik a kód. Más nyelvek használhatják a „Göndör zárójelet” ({}) a kód csoportosításához - a Python nem használja ezeket. A Python hash -t (#) használ a megjegyzésekhez, és a megjegyzések segítségével elmondják más fejlesztőknek vagy a kódot nézőknek, hogy mit tesz egy adott rész, vagy miért van rá szükség. A Python figyelmen kívül hagy semmit a hash után.





Végül a Python két fő verziója létezik - Python 2.7.x és Python 3.x. Van némi különbség a kettő között ( mik a különbségek? ). Ez az oktatóanyag a Python 3 -at fogja használni.

Kezdeti beállítás

A Pi megadása már a Raspbian telepítése és futtatása , nincs sok kezdeti beállítás.





Nyissa meg a terminált ( Menü> Tartozékok> Terminál ), és futtassa ezt a parancsot. Mindig jó gyakorlat, ha a tárházak listáját naprakészen tartjuk, és ez letölti a legújabb programok listáját (nem tölti le magát a programokat, ez segíti a Pi -t abban, hogy milyen programokat hívnak és hol találják meg őket).

sudo apt-get update

Most frissítse a Pi -t (ez eltarthat egy ideig):

sudo apt-get upgrade

A Python és a Minecraft Pi már telepítve van, de ha a Minecraft Pi valamilyen okból nincs telepítve, egyszerű telepíteni:

sudo apt-get install minecraft-pi

Keresse meg a dokumentumokat, és hozzon létre egy új mappát „Minecraft” néven:

cd Documents/
mkdir Minecraft

Megtekintheti az új mappa tartalmát:

ls

Íme egy tipp - ha elkezd gépelni, és megnyomja a TAB billentyűt, a parancssor megpróbálja automatikusan kiegészíteni az utasítást.

Az aktuális könyvtárhoz vezető útvonalat a pwd segítségével vizsgálhatja meg, amely a Print Working Directory (Nyomtatási munkakönyvtár) rövidítése:

pwd

Indítsa el a Minecraftot a címen Menü> Játékok> Minecraft Pi . Szüksége lesz erre a futásra, de később visszatér rá.

Nyissa meg a Python 3 -t innen Menü> Programozás> Python 3 (IDLE) . Ez a program lehetőséget nyújt a Python parancsok futtatására és programok írására.

Most beírhatja ide a Python parancsait, de ez nem túl praktikus. Menj Fájl> Új fájl és akkor Fájl> Mentés és mentse el a korábban létrehozott mappába. ( Dokumentumok> Minecraft ). Nevezzük ' hello_world.py '. Nem kell használni a .py kiterjesztést, ez automatikusan hozzáadásra kerül, de ez jó gyakorlat.

Ha visszavált a terminálra, és belép a Minecraft mappába, látnia kell az imént létrehozott fájlt:

cd Minecraft/
ls

Ezt a fájlt így futtathatja:

python hello_world

Figyeld meg, hogy a „python” kisbetűs. Ennek a fájlnév előtt kell lennie, mivel azt mondja a Pi -nek, hogy a következő fájl Python, ezért úgy kell végrehajtani.

Váltson vissza a Python szerkesztőre, és írja be:

print 'Hello, World!'

Mentse ezt a fájlt, és futtassa újra - most látnia kell a „Hello, World!” megjelenik a parancssorban - ügyes! A print parancs egyszerűen azt mondja a Pythonnak, hogy idézőjelben adja ki a következő szöveget. Ez jó, de nem szörnyen hasznos a Minecraft számára, kapcsoljuk össze:

from mcpi.minecraft import Minecraft
mc = Minecraft.create()
mc.postToChat('Hello, World!')

Ha most elmenti és futtatja ezt a fájlt, akkor a 'Hello, World!' megjelennek a Minecraft játékban. Bontsuk szét a kódot:

from mcpi.minecraft import Minecraft

Ez a sor jelzi a Pythonnak, hogy egy másik fájlból származó kódot szeretne használni. Ezt az mcpi.minecraft fájlt azért fejlesztették ki, hogy lehetővé tegye a Minecraft egyszerű irányítását.

mc = Minecraft.create()

Ez a sor létrehoz egy „mc” (Minecraft) nevű objektumot. Ezt létre kell hoznia, hogy lehetővé tegye a kommunikációt a Minecraft játékkal - nem elég csak a fájlt beilleszteni.

mc.postToChat('Hello, World!')

Végül ez a sor azt mondja a Minecraftnak, hogy írjon szöveget a csevegésbe. Próbálja meg megváltoztatni a 'Hello, World!' valami másra, és nézze meg, mi történik, de ne felejtse el mindkét idézőjelet belefoglalni. Ha szoftverproblémái vannak, ezek néhány gyakori Python és Minecraft Pi hiba:

  • AttributeError - ez egy elgépelés, például pint vagy prnt nyomtatás helyett
  • NameError: a 'Minecraft' név nincs megadva - ne felejtse el importálni a szükséges modulokat
  • NameError: az 'true' név nincs megadva - a Python megkülönbözteti a kis- és nagybetűket, módosítsa 'True' értékre
  • socket.error: [Errno 111] A kapcsolat megtagadva - Győződjön meg arról, hogy a Minecraft fut

Projektek

Most, hogy ismeri a Python és a Minecraft alapjait, készítsünk néhány remek projektet. Az összes kód letölthető a Github -ról.

Automatizált hídépítő

Ez a program hatékonyan hidat épít a víz fölé. Amikor a játékos közel kerül egy víztömeghez, a program több blokkot kővé alakít. Mivel a Minecraft koordinátarendszert használ, nagyon könnyű lekérni a lejátszó helyét, valamint a blokkok típusát a lejátszó körül. A Minecraft Pi korlátozott mértékben korlátozott, ezért nem lehetséges tömegesen frissíteni több különböző blokkot. Ezt a viselkedést azonban könnyen kódolhatja.

Hozzon létre egy új fájlt ( Fájl> Új fájl ), és mentse el ' bridge_builder.py '.

from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos() # store player position

# store the surrounding blocks
a = mc.getBlock(x, y - 1, z + 1)
b = mc.getBlock(x, y - 1, z - 1)
c = mc.getBlock(x - 1, y - 1, z)
d = mc.getBlock(x + 1, y - 1, z)
if a == 8 or a == 9 or b == 8 or b == 9 or c == 8 or c == 9 or d == 8 or d == 9:
# 8 or 9 is water. Set surrounding blocks on floor to a solid (stone) if water is found
mc.setBlocks(x, y - 1, z, x + 1, y - 1, z + 1, 1)
mc.setBlocks(x, y - 1, z, x - 1, y - 1, z - 1, 1)
mc.setBlocks(x, y - 1, z, x - 1, y - 1, z + 1, 1)
mc.setBlocks(x, y - 1, z, x + 1, y - 1, z - 1, 1)

Figyeld meg, hogy az y érték valójában hogyan néz y - 1. Ez a padlószint. Ha az y értékét használnánk, a szkript körülbelül térdmagasságban keresné a blokkokat - nem működne túl jól! Mc.getBlock () blokk azonosítóját adja vissza a megadott koordinátákhoz. Mivel x, y és z a játékos koordinátái, összeadhatja vagy kivonhatja őket a pozíció körül a játékos körül. Nem kell az x, y és z értékeket használni, bármilyen számot használhat, azonban nem biztos, hogy tudja, hogy az adott blokk hogyan kapcsolódik a lejátszóhoz - jobb, ha a lejátszóhoz viszonyított értékeket használ. Futtassa ezt a fájlt a parancssorból, és nézze meg, mi történik.

Látnia kell, hogy egy kis földterület kővé változik, amint a játékos eléri a víztömeget. Ez nem nagyszerű - elég gyorsan tud járni ahhoz, hogy problémát okozzon. Ezt úgy oldhatná meg, ha nagyobb mennyiségű vizet alakítana szárazföldre. Az mc.setBlocks () metódus utolsó része a blokk azonosítója. Az egyik a kő blokk -azonosítója. Ezt fára, fűre vagy bármire cserélheti. Ha akarná, könnyen átalakíthatná ezt egy összetett kivitelre - talán függőhídra!

Szuper bányászati ​​gomb

Ez a példa rövid munkát végez a bányászatban. Ez egy fizikai gombból áll, amelyet megnyomva 10 kockát kockáznak. Kezdjük a gombbal. Az Arduino gombjaihoz hasonlóan kis mennyiségű elektronikai eszközre lesz szüksége, amelyek mindegyike megtalálható az alapindító készletben:

  • 1 x kenyeretábla
  • 1 x pillanatnyi kapcsoló
  • 1 x 220 ohmos ellenállás
  • Női> férfi ugrókábelek
  • Férfi> Férfi ugrókábelek

Itt az áramkör:

Pi-gombos kapcsolat

Ezt az ellenállást „lehúzó” ellenállásnak nevezik. Segít annak biztosításában, hogy amit a Pi gondol, az a gomb megnyomása, valóban a gomb megnyomása. Ezt nem kell használnia, azonban ajánlott, mivel anélkül sok zajt és hamis értéket találhat.

A gomb a General Purpose Input Output (GPIO) 14. tűhöz van csatlakoztatva. Bármilyen GPIO tű használható, de nézze meg a kitűz Először is, mivel nem mindegyikük vezérelhető a Pi -ből, és kissé eltérnek a modellek között.

Most, hogy a gomb csatlakoztatva van, ideje tesztelni. Hozzon létre egy új fájlt, és mentse button_test.py '. Adja hozzá ezt a kódot, mentse el, majd futtassa a terminálon.

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
print 'BUTTON WORKS!' # log result
time.sleep(0.5) # wait 0.5 seconds

nyomja meg Control + C hogy megállítsa a forgatókönyvet. Ha minden megfelelően működik, akkor a 'GOMB MŰKÖDIK!' a Terminálban. Figyelje meg, hogy a Minecraft modulhoz hasonlóan ez a teszt az RPi.GPIO és az idő modulokat használja. Ezek lehetővé teszik a Pi számára a hardvercsapok elérését, és hasznos időzítési funkciókat biztosítanak.

Most fejezzük be a kód többi részét. Hozzon létre egy új fájlt super_mine.py '. Itt a kód:

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
x, y, z = mc.player.getPos() # read the player position
mc.setBlocks(x, y, z, x + 10, y + 10, z + 10, 0) # mine 10 blocks
mc.setBlocks(x, y, z, x - 10, y + 10, z - 10, 0) # mine 10 blocks
time.sleep(0.5) # wait 0.5 seconds

mc.player.getPos () visszaadja a játékosok aktuális koordinátáit, amelyeket ezután x, y és z tárol. Az setBlocks () módszer azt mondja a Minecraftnak, hogy töltse ki az összes blokkot a kezdet és a vég között a következő mondattal. A nulla a levegő blokk-azonosítója. Ezt megváltoztathatja egy másik blokk-azonosítóra, hogy szilárdan kitöltsön egy területet. A koordinátákat +100 vagy akár +1000 blokkra is megváltoztathatja, azonban a Pi elkezdhet küzdeni, ha túl megőrül. Figyeld meg, hogy y + 10 mindkét sorban ugyanaz. Ezt y - 10 -re módosíthatja, ha a blokkokat a föld alatt szeretné eltávolítani.

Teleportálás

A gomb másik egyszerű használata a „teleportálás” lehet. A Minecraft Pi Api lehetővé teszi a játékos pozíciójának beállítását. A következő kód 'teleportálja' a lejátszót egy előre beállított helyre:

mc.player.setPos(0, 0, 0)

Vegye figyelembe, hogy módszere három paramétert fogad el; x, y és z - így ezeket bármire beállíthatja, hogy azonnal teleportálja a lejátszót az adott helyre.

Hozzon létre egy másolatot a super_mine fájlból ( Fájl> Másolás mentése másként ), és módosítsa az if helyébe a következővel:

if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

Ennek a fájlnak most így kell kinéznie:

import RPi.GPIO as GPIO
from mcpi.minecraft import Minecraft
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

Mentse el ' teleport.py 'és fuss.

Előfordulhat, hogy a lejátszó elakad néhány blokkban, amikor ezt használja, ebben az esetben a koordinátákat egy ismert szabad területhez kell igazítania (a képernyő bal felső sarkában látható az aktuális tartózkodási hely).

Házat építeni

Ennek a gombnak az utolsó feladata egy ház építése. A fenti gyorsbányászati ​​példához hasonlóan ez egyszerűen lecseréli a lejátszót körülvevő blokkokat, hogy házat hozzon létre. Különböző blokk-azonosítókat használnak különböző anyagokhoz (ablakok, falak stb.). A kódolás megkönnyítése érdekében tömör blokkot hoznak létre, majd eltávolítják a belsejét (a blokkot levegőre állítják), ez egy üreges héjat hoz létre. Hozzáadhat extrákat, például ágyat vagy ajtót, azonban a Minecraft Pi projekt kissé hiányos, és bár ezek az objektumok működnek, amikor a játékos elhelyezi őket, nem ragyogóak a Python használatakor.

from mcpi.minecraft import Minecraft
import RPi.GPIO as GPIO
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True:
x, y, z = mc.player.getPos()
mc.setBlocks(x + 2, y - 1, z + 2, x + 7, y + 3, z + 8, 5) # make shell
mc.setBlocks(x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # remove inside
mc.setBlocks(x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # make doorway
mc.setBlocks(x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # make window 1
mc.setBlocks(x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # make window 2
mc.setBlocks(x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # make window 3

Mentse ezt ' ház.py 'és fuss. Ha minden rendben van, látnia kell egy kis házat (előfordulhat, hogy meg kell fordulnia, hogy megtalálja). Nagyon egyszerű, nyílás és néhány ablak. Elméletileg nincs határa annak, hogy mekkora vagy összetett épületet építhessen fel.

Készíts mini játékot

Ezután készítsünk egy mini-játékot! Ez nagyon egyszerű lesz, amikor a játékos rálép egy homoktömbre, véletlenszerű idő múlva láva lesz. Ez egy jó játék, mivel megtervezheti saját szintjeit, vagy módosíthatja a dolgokat. Ebben a példában nem kell a gomb.

Hozzon létre egy új fájlt, és mentse mini_game.py '. Itt a kód:

from mcpi.minecraft import Minecraft
import random
import time
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos()
block_under_player = mc.getBlock(x, y - 1, z)

if block_under_player == 12:
# player standing on sand, start the timer
random_time = random.uniform(0.1, 2.5) # generate random number
time.sleep(random_time); # wait
mc.setBlock(x, y - 1, z, 11) # turn it into lava

Ez a kód jó kezdő a véletlen() funkció: random.uniform (0,1, 2,5) véletlen számot generál 0,1 (1/10 másodperc) és 2,5 (2 1/2 másodperc) között. Ezen számok növelése megkönnyíti a játékot.

Próbáld ki! Álljon egy homoktömbre, és hamarosan lávává válik. Ez egy bonyolultabb játék alapja lehet.

Készíts egy másik mini játékot

Ennek a játéknak az előfeltétele egyszerű - ne állj a fapadlóra, amikor lejár az idő. A játékos teleportálódik egy „arénába”. Kénytelenek mozdulatlanul állni a játék kezdetéig. Az indítás után a padló vízzé válik, ha az időzítő lejár. A játékosnak a biztonságos zónában kell állnia (gyémánt blokkok), hogy túlélje. Minden szint egy másodperccel csökkenti az időzítőt. Minden sikeres szint után a biztonságos terület nagyobb lesz. Nézze meg az alábbi kódot:

import time
import random
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
# clear area
mc.setBlocks(-10, 1, -10, 25, 5, 25, 0)
# create arena shell
mc.setBlocks(0, 0, 0, 25, 10, 25, 17)
# hollow out arena
mc.setBlocks(1, 1, 1, 24, 10, 24, 0)
# move player to arena
mc.player.setPos(14, 25, 20) # teleport player
# make them stay put
# teleport player to start position every 1/10th second.
# do this for 5 seconds then start the game
time.sleep(2)
total_wait = 0
mc.postToChat('Waiting to Start')
while total_wait <5:
mc.player.setPos(14, 1, 20) # teleport player
time.sleep(0.1)
total_wait += 0.1
mc.postToChat('BEGIN!')
# 10 levels
for level in range(10):
x, y, z = mc.player.getPos()
level_time = 10 - level # reduce time by 1 second for each level
mc.postToChat('Level - ' + str(level + 1) + ' start')
# build floor
mc.setBlocks(0, 0, 0, 25, 0, 25, 17)
# make safe area
safe_area_start = random.uniform(0, 22)
safe_area_end = random.uniform(0, 22)
mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57)
elapsed_time = 0
while elapsed_time <10:
x, y, z = mc.player.getPos()
time.sleep(0.25)
elapsed_time += 0.25
# check player is still on floor
if y <0.75:
mc.postToChat('Game Over')
break;
else:
# remove floor
mc.setBlocks(-10, 0, -10, 25, 0, 25, 8)
# put safe area back
mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57)
time.sleep(2.5)
continue
break

Mentse ezt ' mini_game_2.py 'és futtassuk.

A Pi 2 -nek néhány teljesítményproblémája van a Minecraft futtatása közben. A központi feldolgozó egység (CPU) használati grafikonja ( jobb felső sarok ) soha nem mutat nagy terhelést, ezért ennek a fejlesztők rossz tervezésén és optimalizálásán kell alapulnia. Ezek a problémák nem kapcsolódnak a kód futtatásához (mivel továbbra is fennállnak, amikor a Python nem fut), azonban ez a mini játék még súlyosbítja őket. Ha a Pi valóban nehézségekkel küzd, érdemes csökkenteni az aréna méretét, vagy túllépni a Pi -t.

letölthet bármilyen filmet bármely webhelyről

Gyémánt detektor

Készítsünk egy másik áramkört. Ez fénykibocsátó diódát (LED) fog használni, ha gyémántok vannak alatta (15 blokkon belül). Erre van szüksége:

  • 1 x kenyeretábla
  • 1 x LED
  • 1 x 220 ohmos ellenállás
  • Női> férfi ugrókábelek
  • Férfi> Férfi ugrókábelek

Itt az áramkör:

Csatlakoztassa az anódot (hosszú láb) a GPIO 14 -es tűhöz. Ez a tű +5v -os. Csatlakoztassa a katódot (rövid láb) a földhöz.

Olcsó ércjátékot használtam, és a hátsó burkolat és az elektronika eltávolításával módosítottam, majd egy LED -et helyeztem alá. Ezt könnyen állandóvá teheti forró ragasztóval vagy hasonlóval.

Mentse ezt a kódot ' gyémántok.py ':

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
led_pin = 14 # store the GPIO pin number
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output
while True:
# repeat indefinitely
x, y, z = mc.player.getPos()
for i in range(15):
# look at every block until block 15
if mc.getBlock(x, y - i, z) == 56:
GPIO.output(led_pin, True) # turn LED on
time.sleep(0.25) # wait
GPIO.output(led_pin, False) # turn LED off
time.sleep(0.25) # wait

Ha gyémántérc -blokk található a lejátszó alatt (15 blokkon belül), a jelzőfény villogni kezd.

ThinkGeek Minecraft Light -Up Blue Stone Diamond Ore - Biztos, hogy távol tartod a sertéseket Vásároljon most az AMAZON -on

Készített valami jót a Minecraft Pi -vel? Írd meg kommentben, hogy mit csináltál, vagy mennyit értél el a játékokban.

Reméljük tetszeni fognak az általunk ajánlott és megbeszélt elemek! A MUO társult és szponzorált partnerkapcsolatokkal rendelkezik, így egyes vásárlásaiból származó bevétel egy részét kapjuk. Ez nem befolyásolja az Ön által fizetett árat, és segít nekünk a legjobb termékajánlásokat nyújtani.

Részvény Részvény Csipog Email Érdemes Windows 11 -re frissíteni?

A Windows újra lett tervezve. De ez elég ahhoz, hogy meggyőzze Önt, hogy váltson a Windows 10 -ről a Windows 11 -re?

Olvassa tovább
Kapcsolódó témák
  • DIY
  • Programozás
  • Minecraft
  • Raspberry Pi
  • Elektronika
  • Piton
A szerzőről Joe Coburn(136 megjelent cikk)

Joe az Egyesült Királyságban, a Lincoln Egyetemen végzett informatikából. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran előfordul, hogy fényképeket készít vagy videókat készít.

Joe Coburn további alkotásai

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide
Kategória Diy