Belajar Python dan Elektronik dengan Minecraft Pi Edition

Belajar Python dan Elektronik dengan Minecraft Pi Edition

Adakah anda selalu mahu belajar membuat kod tetapi tidak tahu hendak memulakannya? Ketahui cara mengawal Minecraft pada Raspberry Pi menggunakan Python dan beberapa elektronik mudah. Inilah hasil akhirnya:





Anda memerlukan Pi 2 atau lebih baru untuk projek ini, dan sementara anda dapat menyelesaikan sebahagian besar tugas ini melalui baris perintah melalui Secure Shell (SSH), tutorial ini akan memberi tumpuan kepada pengekodan secara langsung pada Pi.





Baru ke Minecraft? Jangan risau - ini milik kami Panduan Permulaan Minecraft .





Pengenalan Minecraft Pi

Minecraft untuk Raspberry Pi telah dikembangkan untuk belajar dan bermain-main (dan percuma). Ia dilengkapi dengan Application Programming Interface (API) yang menyediakan kaedah untuk kod untuk bercakap dengan Minecraft dengan mudah. Sangat bagus untuk belajar bagaimana membuat kod di Python, serta memulakan dengan elektronik.

Apa itu Python?

Python adalah bahasa pengaturcaraan. Ia adalah ditafsirkan , yang bermaksud semasa anda menjalankan fail atau program Python, komputer harus melakukan sedikit kerja pada fail terlebih dahulu. Kelemahannya ialah ia boleh dianggap lambat jika dibandingkan dengan bahasa yang disusun [Broken URL Dihapus].



Manfaat bahasa yang ditafsirkan adalah kelajuan pengekodan dan keramahannya. Anda tidak perlu memberitahu komputer apa data yang ingin anda simpan, hanya untuk menyimpan sesuatu dan komputer akan mengetahui apa yang harus dilakukan. Terdapat pengecualian, tentu saja, dan ini adalah pandangan yang agak dipermudahkan, namun pengaturcaraan harus menyenangkan! Sekiranya anda mula menggali butiran teknikal yang rumit, ia akan menjadi sedikit sukar.

Python peka huruf besar kecil. Ini penting untuk diketahui, kerana Python tidak akan mengenali objek walaupun dieja dengan betul sekiranya kes itu salah. 'Dosomething ()' tidak akan berfungsi jika kaedah tersebut sebenarnya disebut 'DoSomething ()'. Python juga menggunakan lekukan . Bahasa pengaturcaraan lain mungkin tidak peduli berapa banyak lekukan kod anda, sedangkan Python adakah menjaga. Inden digunakan untuk memberitahu Python di mana kod berada. Bahasa lain mungkin menggunakan 'Curly Braces' ({}) untuk mengelompokkan kod - Python tidak menggunakannya. Python menggunakan hash (#) untuk komen, dan komen digunakan untuk memberitahu pemaju lain atau orang yang melihat kod apa yang dilakukan oleh bahagian tertentu, atau mengapa ia diperlukan. Python tidak mempedulikan apa-apa selepas hash.





Akhirnya, terdapat dua versi utama Python - Python 2.7.x dan Python 3.x. Terdapat beberapa perbezaan antara keduanya ( apakah perbezaannya? ). Tutorial ini akan menggunakan Python 3.

Persediaan Awal

Menyediakan Pi anda sudah menyediakan dan menjalankan Raspbian , tidak banyak persediaan awal yang diperlukan.





Terminal Terbuka ( Menu> Aksesori> Terminal ) dan jalankan arahan ini. Menjadi amalan yang baik untuk memastikan senarai repositori sentiasa terkini, dan ini akan memuat turun senarai program terkini (ia tidak akan memuat turun program itu sendiri, ini membantu Pi mengetahui program apa yang dipanggil dan di mana mencarinya).

sudo apt-get update

Sekarang kemas kini Pi (ini mungkin memerlukan sedikit masa):

sudo apt-get upgrade

Python dan Minecraft Pi sudah dipasang, namun jika Minecraft Pi tidak dipasang dengan alasan apa pun, mudah dipasang:

sudo apt-get install minecraft-pi

Navigasi ke dokumen dan buat folder baru bernama 'Minecraft':

cd Documents/
mkdir Minecraft

Anda boleh melihat kandungan folder baru ini:

ls

Inilah petua - jika anda mula menaip dan menekan kekunci TAB, baris arahan akan berusaha melengkapkan penyataan untuk anda secara automatik.

Anda boleh memeriksa jalan ke direktori semasa menggunakan pwd, yang bermaksud Print Working Directory:

pwd

Mulakan Minecraft dengan pergi ke Menu> Permainan> Minecraft Pi . Anda perlu menjalankan ini, tetapi akan kembali kemudian.

Buka Python 3 dari Menu> Pengaturcaraan> Python 3 (IDLE) . Program ini menyediakan cara untuk anda menjalankan perintah Python dan menulis program.

Sekarang anda boleh menaip perintah Python anda di sini, tetapi itu tidak begitu praktikal. Pergi ke Fail> Fail Baru dan kemudian Fail> Simpan dan simpan ini dalam folder yang anda buat sebelumnya. ( Dokumen> Minecraft ). Mari kita panggilnya ' hello_world.py '. Anda tidak perlu menggunakan pelanjutan .py, ini akan ditambahkan secara automatik, tetapi ini adalah amalan yang baik.

Sekiranya anda kembali ke terminal, dan menavigasi ke folder Minecraft, anda akan melihat fail yang baru anda buat:

cd Minecraft/
ls

Anda boleh menjalankan fail ini seperti ini:

python hello_world

Perhatikan bagaimana 'python' semuanya kecil. Ini harus ada sebelum nama file, karena memberitahu Pi bahawa file berikut adalah Python, jadi file tersebut harus dijalankan seperti itu.

Beralih kembali ke editor Python dan taip:

print 'Hello, World!'

Simpan fail ini dan jalankan lagi - anda kini akan melihat 'Hello, World!' muncul di baris arahan - kemas! Perintah cetak hanya memberitahu Python untuk mengeluarkan teks berikut dalam petikan ganda. Ini bagus, tetapi tidak begitu berguna untuk Minecraft, mari kita kaitkan:

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

Jika anda menyimpan dan menjalankan fail ini, anda akan melihat 'Hello, World!' muncul dalam permainan Minecraft. Mari pecahkan kodnya:

from mcpi.minecraft import Minecraft

Garis ini memberitahu Python bahawa anda ingin menggunakan kod dari fail lain. Fail mcpi.minecraft ini dibangunkan untuk memudahkan kawalan Minecraft.

mc = Minecraft.create()

Garis ini mencipta objek yang dipanggil 'mc' (Minecraft). Anda harus membuat ini untuk membolehkan komunikasi ke permainan Minecraft - tidak cukup hanya memasukkan fail.

mc.postToChat('Hello, World!')

Akhirnya, baris ini menyuruh Minecraft menulis beberapa teks untuk berbual. Cuba ubah 'Hello, World!' untuk perkara lain dan lihat apa yang berlaku, tetapi ingat untuk memasukkan kedua-dua petikan. Sekiranya anda menghadapi masalah perisian, ini adalah beberapa kesilapan Python dan Minecraft Pi yang biasa:

  • AttributeError - ini adalah kesalahan ketik, seperti pint atau prnt dan bukannya cetak
  • NameError: nama 'Minecraft' tidak ditentukan - ingat untuk mengimport modul yang anda perlukan
  • NameError: nama 'true' tidak ditentukan - Python peka huruf besar kecil, ubah menjadi 'True'
  • socket.error: [Errno 111] Sambungan ditolak - Pastikan Minecraft sedang berjalan

Projek

Sekarang setelah anda mengetahui asas-asas Python dan Minecraft, mari buat beberapa projek yang menarik. Semua codec boleh dimuat turun dari Github.

Pembina Jambatan Automatik

Program ini akan membina jambatan di atas air dengan berkesan. Apabila pemain mendekati perairan, program akan menukar beberapa blok menjadi batu. Oleh kerana Minecraft menggunakan sistem koordinat, sangat mudah untuk mendapatkan lokasi pemain, bersama dengan jenis blok di sekitar pemain. Minecraft Pi sedikit terhad, jadi tidak mungkin untuk mengemas kini banyak blok yang berbeza secara pukal. Walau bagaimanapun, anda boleh mengawal tingkah laku ini dengan mudah.

Buat fail baru ( Fail> Fail Baru ) dan simpan sebagai ' jambatan_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)

Perhatikan bagaimana nilai y sebenarnya melihat y - 1. Ini adalah tingkat lantai. Sekiranya nilai y digunakan, skrip akan mencari blok pada tahap lutut - ia tidak akan berfungsi dengan baik! Mc.getBlock () mengembalikan id blok untuk koordinat yang diberikan. Oleh kerana x, y, dan z adalah koordinat pemain, anda boleh menambah atau mengurangkannya untuk mendapatkan kedudukan di sekeliling pemain. Anda tidak perlu menggunakan nilai x, y, dan z, anda boleh menggunakan nombor apa pun, namun anda mungkin tidak tahu bagaimana blok tersebut berkaitan dengan pemain - lebih baik menggunakan nilai berbanding pemain. Jalankan fail ini dari baris arahan dan lihat apa yang berlaku.

Anda harus melihat bahawa kawasan tanah yang kecil berubah menjadi batu setelah pemain mencapai badan air. Ia tidak bagus - anda dapat berjalan dengan pantas sehingga menimbulkan masalah. Anda dapat menyelesaikannya dengan menukar jumlah air yang lebih besar ke daratan. Bahagian terakhir kaedah mc.setBlocks () adalah id blok. Salah satunya ialah id blok untuk batu. Anda boleh menukarnya menjadi kayu, rumput, atau apa sahaja. Sekiranya anda mahu, anda boleh menukarnya menjadi reka bentuk yang kompleks - mungkin jambatan gantung!

Butang Perlombongan Super

Contoh ini akan membuat kerja perlombongan pendek. Ini terdiri dari butang fizikal, yang apabila ditekan, akan melombong 10 blok kubus. Mari mulakan dengan butang. Sama seperti butang di Arduino, anda memerlukan sejumlah kecil elektronik, semuanya mesti terdapat dalam kit pemula asas:

  • 1 x Papan Roti
  • 1 x suis sesaat
  • Perintang 1 x 220 ohm
  • Perempuan> kabel lompat lelaki
  • Lelaki> Kabel lompat lelaki

Inilah litar:

Pi-Button-Sambungan

Perintang ini dipanggil perintang 'tarik ke bawah'. Ini membantu memastikan bahawa apa yang difikirkan oleh Pi adalah butang yang ditekan, sebenarnya adalah butang yang ditekan. Anda tidak perlu menggunakan ini, namun ia disyorkan, kerana anda mungkin akan mendapat banyak bunyi dan bacaan palsu tanpanya.

Butang disambungkan ke pin Output Tujuan Umum (GPIO) pin 14. Anda boleh menggunakan pin GPIO apa pun, namun lihat mencubit pertama, kerana semuanya tidak dapat dikawal dari Pi, dan sedikit berbeza antara model.

Sekarang butang disambungkan, sudah tiba masanya untuk mengujinya. Buat fail baru dan simpan sebagai ' button_test.py '. Tambahkan kod ini, simpan kemudian jalankan di Terminal.

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

Tekan Kawalan + C untuk menghentikan skrip. Sekiranya semuanya berfungsi dengan betul, anda harus melihat 'BUTTON WORKS!' di Terminal. Perhatikan bagaimana, seperti modul Minecraft, ujian ini menggunakan modul RPi.GPIO dan masa. Ini membolehkan Pi mengakses pin perkakasan dan memberikan fungsi masa yang berguna.

Sekarang mari kita selesaikan selebihnya kod. Buat filecalled baru ' super_mine.py '. Inilah kodnya:

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 () mengembalikan koordinat pemain semasa, yang kemudian disimpan dalam x, y, dan z. The setBlocks () kaedah memberitahu Minecraft untuk mengisi semua blok antara permulaan dan akhir dengan blok berikut. Nol adalah id-blok untuk udara. Anda boleh menukarnya ke blok-id lain untuk mengisi kawasan dengan padat. Anda juga boleh menukar koordinat menjadi +100 atau bahkan +1000 blok, namun Pi mungkin mula bergelut jika anda terlalu gila. Perhatikan bagaimana y + 10 adalah sama untuk kedua-dua baris. Anda boleh mengubahnya menjadi y - 10 jika anda ingin membuang blok bawah tanah.

Teleporting

Penggunaan mudah lain untuk butang ini ialah 'teleport'. Minecraft Pi Api menyediakan cara untuk menetapkan kedudukan pemain. Kod berikut akan 'teleport' pemain ke lokasi yang telah ditetapkan:

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

Perhatikan bahawa kaedahnya menerima tiga parameter; x, y, dan z - supaya anda dapat mengaturnya ke mana-mana sahaja untuk menghantar teleport pemain ke lokasi tersebut dengan serta-merta.

Buat salinan fail super_mine ( Fail> Simpan Salin Sebagai ) dan ubah dengan mengganti if dengan yang berikut:

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

Fail ini kini kelihatan seperti ini:

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

Simpan sebagai ' teleport.py 'dan lari.

Anda mungkin mendapati pemain terjebak di dalam beberapa blok ketika menggunakannya, di mana anda perlu menyesuaikan koordinat ke ruang terbuka yang diketahui (kiri atas skrin menunjukkan lokasi anda sekarang).

Bina rumah

Satu tugas terakhir untuk butang ini adalah membina rumah. Sama seperti contoh perlombongan cepat di atas, ini hanya akan menggantikan blok di sekitar pemain untuk membuat rumah. Block-id yang berbeza akan digunakan untuk bahan yang berbeza (tingkap, dinding dll). Untuk membuat perkara lebih mudah dikodkan, blok padat akan dibuat, dan bahagian dalamnya dikeluarkan (tetapkan blok ke udara), ini akan membuat cangkang berongga. Anda boleh menambahkan tambahan seperti tempat tidur atau pintu, namun projek Minecraft Pi agak tidak lengkap, dan sementara objek ini berfungsi ketika diletakkan oleh pemain, mereka tidak cemerlang ketika menggunakan Python.

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

Simpan ini sebagai ' rumah.py 'dan lari. Semuanya sihat, anda akan melihat sebuah rumah kecil muncul (anda mungkin perlu berpusing untuk mencarinya). Sangat mudah, bukaan dan beberapa tingkap. Secara teori, tidak ada batasan seberapa besar atau kompleks bangunan yang boleh anda bina.

Buat Permainan Mini

Seterusnya, mari buat permainan mini! Ini akan menjadi sangat mudah, apabila pemain menginjak pasir, ia akan berubah menjadi lava setelah sekian lama. Ini adalah permainan yang bagus untuk dibuat, kerana anda dapat merancang tahap anda sendiri atau mengubahnya untuk membuat keadaan menjadi lebih sukar. Anda tidak memerlukan butang untuk contoh ini.

Buat fail baru dan simpan sebagai ' mini_game.py '. Inilah kodnya:

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

Kod ini adalah permulaan yang baik di rawak () fungsi: rawak.uniform (0.1, 2.5) akan menghasilkan nombor rawak antara 0.1 (1/10 saat) dan 2.5 (2 1/2 saat). Menambah bilangan ini akan menjadikan permainan lebih mudah.

Cubalah! Berdiri di atas pasir, dan ia akan berubah menjadi lava. Ini boleh menjadi asas permainan yang lebih kompleks.

Buat Permainan Mini yang Lain

Premis untuk permainan ini mudah - jangan berdiri di lantai kayu apabila masa hampir habis. Pemain diteleport ke 'arena'. Mereka terpaksa berhenti sehingga permainan bermula. Setelah dimulakan, lantai akan berubah menjadi air setelah pemasa habis. Pemain mesti berdiri di zon selamat (blok berlian) untuk bertahan. Setiap tahap mengurangkan pemasa satu saat. Selepas setiap tahap yang berjaya, kawasan selamat menjadi lebih besar. Lihat kod di bawah:

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

Simpan ini sebagai ' mini_game_2.py 'dan mencuba.

Pi 2 mempunyai beberapa masalah prestasi semasa menjalankan Minecraft. Grafik penggunaan Unit Pemprosesan Pusat (CPU) ( sudut kanan atas ) tidak pernah menunjukkan beban berat, jadi ini mesti disebabkan oleh reka bentuk dan pengoptimuman yang kurang baik oleh pemaju. Masalah-masalah ini tidak berkaitan dengan menjalankan kod (kerana ia berlanjutan ketika Python tidak berjalan), namun ia diburukkan lagi oleh permainan mini ini. Sekiranya Pi anda benar-benar berjuang, anda mungkin ingin mengurangkan ukuran arena atau overclock Pi anda.

aksesori ini tidak disokong oleh iphone ini

Pengesan Berlian

Mari buat litar lain. Ini akan menggunakan Light Emitting Diode (LED) untuk menyala apabila terdapat berlian di bawahnya (dalam jarak 15 blok). Inilah yang anda perlukan:

  • 1 x Papan Roti
  • 1 x LED
  • Perintang 1 x 220 ohm
  • Perempuan> kabel lompat lelaki
  • Lelaki> Kabel lompat lelaki

Inilah litar:

Sambungkan Anode (kaki panjang) ke GPIO Pin 14. Pin ini bertindak seperti + 5v. Sambungkan Cathode (kaki pendek) ke tanah.

Saya telah menggunakan mainan bijih yang murah dan mengubahnya dengan menanggalkan penutup belakang dan elektronik, saya kemudian meletakkan LED di bawahnya. Anda boleh membuatnya tetap dengan gam panas atau yang serupa.

Simpan kod ini sebagai ' diamonds.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

Apabila terdapat blok bijih berlian di bawah pemain (dalam jarak 15 blok) cahaya akan berkelip.

ThinkGeek Minecraft Light-Up Blue Stone Diamond Ore - Pasti Menjauhkan Pigmen BELI SEKARANG DI AMAZON

Adakah anda telah membuat sesuatu yang menarik dengan Minecraft Pi? Beritahu saya dalam komen apa yang anda buat atau sejauh mana anda berjaya dalam permainan.

Kami harap anda menyukai item yang kami cadangkan dan bincangkan! MUO mempunyai perkongsian afiliasi dan tajaan, jadi kami menerima bahagian hasil dari beberapa pembelian anda. Ini tidak akan mempengaruhi harga yang anda bayar dan membantu kami menawarkan cadangan produk terbaik.

Berkongsi Berkongsi Tweet E-mel Adakah Perlu Ditingkatkan ke Windows 11?

Windows telah direka bentuk semula. Tetapi apakah itu cukup untuk meyakinkan anda untuk beralih dari Windows 10 ke Windows 11?

Baca Seterusnya
Topik-topik yang berkaitan
  • DIY
  • Pengaturcaraan
  • Minecraft
  • Pai raspberi
  • Elektronik
  • Python
Mengenai Pengarang Joe Coburn(136 Artikel Diterbitkan)

Joe adalah lulusan Sains Komputer dari University of Lincoln, UK. Dia seorang pembangun perisian profesional, dan ketika dia tidak terbang drone atau menulis muzik, dia sering didapati mengambil gambar atau menghasilkan video.

Lagi Dari Joe Coburn

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan