{"id":2944,"date":"2022-09-17T11:44:21","date_gmt":"2022-09-17T11:44:21","guid":{"rendered":"https:\/\/picockpit.com\/raspberry-pi\/?p=2944"},"modified":"2023-08-23T10:43:28","modified_gmt":"2023-08-23T10:43:28","slug":"gaming-on-the-raspberry-pi-pico","status":"publish","type":"post","link":"https:\/\/picockpit.com\/raspberry-pi\/pt\/gaming-on-the-raspberry-pi-pico\/","title":{"rendered":"Jogos no Raspberry Pi Pico"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-1024x576.jpg\" alt=\"jogos sobre framboesa pi pico\" class=\"wp-image-2946\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-1024x576.jpg 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-300x169.jpg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-768x432.jpg 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-1536x864.jpg 1536w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-18x10.jpg 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg 1778w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Neste post, quero falar sobre jogos no Raspberry Pi Pico.<\/p>\n\n\n\n<p>Lembro-me do meu primeiro telefone idiota, que na altura se chamava \"telefone\". Podia jogar jogos simples como o Snake. Isso era uma borda sangrenta.<\/p>\n\n\n\n<p>Antes disso, teria de levar um aparelho port\u00e1til separado que jogasse Tetris ou um sistema de jogo mais din\u00e2mico como um Gameboy.<\/p>\n\n\n\n<p>O Raspberry Pi Pico \u00e9 um microcontrolador bastante poderoso em compara\u00e7\u00e3o com o que funcionava nos anos 90. Naturalmente, oferece-nos a capacidade de jogar jogos dessa \u00e9poca.<\/p>\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e3o poderoso \u00e9 o Raspberry Pi Pico<\/h2>\n\n\n\n<p>Em compara\u00e7\u00e3o com uma consola dos anos 80, o Raspberry Pi Pico \u00e9 extremamente poderoso.&nbsp;<\/p>\n\n\n\n<p>Se programar um jogo semelhante aos requisitos de recursos de um jogo dos anos 80, o Raspberry Pi Pico ir\u00e1 provavelmente passar por ele.<\/p>\n\n\n\n<p>\u00c9 nos anos 90 que come\u00e7a a ser um pouco mais dif\u00edcil afirmar uma conclus\u00e3o t\u00e3o clara.<\/p>\n\n\n\n<p>Por um lado, se pensarmos nele como um dispositivo capaz de jogar jogos semelhantes aos que se encontram num Gameboy ou num telem\u00f3vel, provavelmente ficaremos satisfeitos.<\/p>\n\n\n\n<p>No entanto, os jogos no final dos anos 90 tornaram-se muito mais tribut\u00e1rios. N\u00e3o vai jogar Quake 3 (um jogo de 1999) no Pico, por exemplo.<\/p>\n\n\n\n<p>De facto, enquanto o Raspberry Pi Pico vai jogar Doom (1993), foi um esfor\u00e7o de seis meses para a pessoa que o codificou porque era uma tarefa bastante dif\u00edcil comprimir o jogo nos 2MB de armazenamento que o Raspberry Pi Pico tem.<\/p>\n\n\n\n<p>Assim, embora o Pico tenha dois processadores de 133MHz, tem uma mem\u00f3ria RAM e armazenamento limitados, o que dificulta a sua utiliza\u00e7\u00e3o.<\/p>\n\n\n\n<p>Vamos ver como se compara a um Gameboy:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Spec<\/td><td>Framboesa Pi Pico<\/td><td>Gameboy (1989)<\/td><td>Gameboy Color (1998)<\/td><\/tr><tr><td>Mostrar<\/td><td>LCD a cores ou e-ink , \u00e9 com a sua imagina\u00e7\u00e3o<\/td><td>4 tons de escala de cinzentos<\/td><td>10, 32, 56 cores<\/td><\/tr><tr><td>Resolu\u00e7\u00e3o<\/td><td>Depende da sua exposi\u00e7\u00e3o, mas limitada pelos recursos do Pico.<\/td><td>160x144px<\/td><td>160\u00d7144 px<\/td><\/tr><tr><td>CPU<\/td><td>133MHz dual core<\/td><td>4MHz<\/td><td>4MHz\/8MHz<\/td><\/tr><tr><td>RAM<\/td><td>264KB<\/td><td>8KB<\/td><td>32KB RAM, 16KB VRAM<\/td><\/tr><tr><td>Armazenamento<\/td><td>2MB&nbsp;<\/td><td>Cartucho Game Pak: 8MB ROM, 128KB RAM<\/td><td>Cartucho Game Pak: 8MB ROM, 128KB RAM<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Porqu\u00ea jogar jogos no Pico e n\u00e3o no Zero\/Pi 4?<\/h2>\n\n\n\n<p>Boa pergunta.<\/p>\n\n\n\n<p>Como sabem, o Raspberry Pi Pico \u00e9 um microcontrolador enquanto o Raspberry Pi Zero ou Pi 4 s\u00e3o microcomputadores.<\/p>\n\n\n\n<p>Ambos podem jogar jogos, mas o Raspberry Pi Pico \u00e9 muito mais limitado.<\/p>\n\n\n\n<p>Dito isto, se quisesse construir um emulador ou sistema de jogo a partir do Raspberry Pi Zero ou Pi 4s hoje (em 2022), \u00e9 melhor que j\u00e1 tenha um ou ent\u00e3o o seu maior engarrafamento \u00e9 o stock.<\/p>\n\n\n\n<p>\u00c9 muito dif\u00edcil conseguir um Pi Zero e bastante desafiante conseguir um Pi 4.<\/p>\n\n\n\n<p>Por outro lado, o Pico \u00e9 abundante. Tamb\u00e9m arranca quase imediatamente, enquanto que o microcomputador Pis tem de passar por um longo processo de arranque.<\/p>\n\n\n\n<p>O Pico tamb\u00e9m dura muito mais tempo. Se quiser uma configura\u00e7\u00e3o m\u00f3vel que funcione durante horas e seja port\u00e1til, far\u00e1 muito melhor com o Pico.<\/p>\n\n\n\n<p>Finalmente, para al\u00e9m do stock, o Pico \u00e9 tamb\u00e9m abundante em stock.<\/p>\n\n\n\n<p>Para ser justo com os Pi Zero e Pi 4, pode definitivamente jogar melhores jogos e ter melhores resultados de emula\u00e7\u00e3o com esses microcomputadores. Como ver\u00e1 na sec\u00e7\u00e3o seguinte, o Pico tem dificuldade em jogar jogos que o Zero ou o Pi 4 v\u00e3o passar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Que jogos pode o Raspberry Pi Pico jogar?<\/h2>\n\n\n\n<p>Vamos come\u00e7ar por ver o que a comunidade de tinkering tem sido capaz de tocar no Raspberry Pi Pico.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RP2040 Doom \u00e9 a resposta a \"ser\u00e1 a Doom?<\/h3>\n\n\n\n<iframe loading=\"lazy\" width=\"813\" height=\"457\" src=\"https:\/\/www.youtube.com\/embed\/eDVazQVycP4\" title=\"RP2040 Doom: DOOM1 Demo\/Gameplay on a Raspberry Pi Pico\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<p>Sim! O Raspberry Pi Pico pode jogar Doom.<\/p>\n\n\n\n<p>Um tipo chamado Graham Sanderson, de Austin, Texas, conseguiu transportar o Doom para o Raspberry Pi Pico.<\/p>\n\n\n\n<p>A sua f\u00f3rmula m\u00e1gica?<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"while (!convice_myself_its_probably_impossible()) {    do_some_more();}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"C\u00f3pia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #88C0D0\">convice_myself_its_probably_impossible<\/span><span style=\"color: #D8DEE9FF\">()) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">do_some_more<\/span><span style=\"color: #D8DEE9FF\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Ele <a href=\"https:\/\/kilograham.github.io\/rp2040-doom\/\">explicado na sua documenta\u00e7\u00e3o do processo<\/a> que enfrentou m\u00faltiplas restri\u00e7\u00f5es das especifica\u00e7\u00f5es de hardware que o Raspberry Pi Pico tinha. Afinal, n\u00e3o \u00e9 um dispositivo destinado a jogos de azar.<\/p>\n\n\n\n<p>No entanto, Graham tamb\u00e9m decidiu tornar ainda mais dif\u00edcil a portabilidade do Doom. Ele queria a experi\u00eancia aut\u00eantica de Doom, o que significava ter uma resolu\u00e7\u00e3o 320\u00d7200 (cor), som est\u00e9reo, m\u00fasica OPL2, guardar e carregar, multiplayer de rede e outras caracter\u00edsticas que est\u00e3o dispon\u00edveis no nome original.<\/p>\n\n\n\n<p>Embalar tanto jogo no Raspberry Pi Pico significava desafios com mem\u00f3ria. Tanto a RAM como o armazenamento eram quest\u00f5es chave.<\/p>\n\n\n\n<p>Primeiro, o Raspberry Pi Pico tem apenas 2MB de armazenamento, mas a vers\u00e3o shareware do Doom \u00e9 o dobro desse tamanho. Enquanto outros criadores poderiam decidir cortar certas caracter\u00edsticas como ecr\u00e3s de salpicos e downsampling de texturas, Graham n\u00e3o quis fazer isso.<\/p>\n\n\n\n<p>A RAM foi tamb\u00e9m outra quest\u00e3o, com o c\u00f3digo fonte Chocolate Doom a exigir cerca de 1MB de RAM enquanto que o Pico tem apenas cerca de 264KB. A mem\u00f3ria \u00e9 apertada porque a renderiza\u00e7\u00e3o dos gr\u00e1ficos ocupa um enorme peda\u00e7o do espa\u00e7o da RAM, mas a RAM \u00e9 tamb\u00e9m muito importante para o bom funcionamento do jogo. A fim de gerir ambos os aspectos, Graham teve de fazer o que ele chamou de \"lipoaspira\u00e7\u00e3o\".<\/p>\n\n\n\n<p>Pode ler mais em <a href=\"https:\/\/kilograham.github.io\/rp2040-doom\/\">a documenta\u00e7\u00e3o<\/a>, observando <a href=\"https:\/\/www.youtube.com\/playlist?list=PL-_wCtHUfdDPi7i-4OIy5iQjQ3QSqq1Mh\">a sua lista de reprodu\u00e7\u00e3o no YouTube<\/a> ou <a href=\"https:\/\/github.com\/kilograham\/rp2040-doom\">revis\u00e3o do c\u00f3digo<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Emulador NES<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/1R9SiKq9iB0-wC9MtOn8X29eX4HiKXr8Meu9MS9SXpku1lL8GrI7TTmXvvLTU3Q_3SLcZS59K9L5saoAHXXyJyRsU5T8S0qSeiuTI5NQEg-shkcQvvVQ2tY9nEtFboRanYNyswCo5BMfDTN-JQQAwFzM6TAggyHkfOjosqKc92ICJtdw-R2jVIwjqw\" alt=\"\" style=\"width:711px;height:400px\" width=\"711\" height=\"400\"\/><\/figure>\n<\/div>\n\n\n<p>O Raspberry Pi Pico foi transformado com sucesso num emulador NES.<\/p>\n\n\n\n<p><a href=\"https:\/\/forums.emulator-zone.com\/index.php?threads\/using-a-rasp-pico-board-to-emulate-nes.26986\/\">Num t\u00f3pico do F\u00f3rum da Zona Emuladora<\/a>O utilizador ropgar disse que o Raspberry Pi Pico tem o poder de emular um NES e pode fazer 60 quadros por segundo e pode emular perfeitamente APU e PPP.<\/p>\n\n\n\n<p>Ropgar usa um teclado PS\/2 como controlador, mas tamb\u00e9m pode usar o controlador NES original.<\/p>\n\n\n\n<p>O som \u00e9 bom e n\u00e3o h\u00e1 falhas no v\u00eddeo e na m\u00fasica de fundo do jogo.<\/p>\n\n\n\n<p>O Pico tem cerca de 1,5MB de espa\u00e7o de flash restante para diferentes jogos, que podem ser escolhidos premindo Caps Lock para alternar entre jogos.&nbsp;<\/p>\n\n\n\n<p>Os jogos que ropgar conseguiu carregar na sua demonstra\u00e7\u00e3o s\u00e3o Pacman, Arkanoids, DK, DK Jr, BubbleBobble, Galaga, e muitos outros.<\/p>\n\n\n\n<p>A \u00fanica desvantagem \u00e9 que n\u00e3o h\u00e1 c\u00f3digo fonte p\u00fablico ou tutorial sobre como fazer isto.<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"895\" height=\"503\" src=\"https:\/\/www.youtube.com\/embed\/Kv9U1GouvYM\" title=\"Emulador Microcontrolado NES | 10 jogos em Flash | Raspberry Pi Pico RP2040 | VGA PS\/2 PWM Sound\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<h2 class=\"wp-block-heading\">Emulador Gameboy para o Raspberry Pi Pico<\/h2>\n\n\n\n<p>Pode fazer o seu pr\u00f3prio estojo Gameboy e depois usar o Raspberry Pi Pico para imitar o Gameboy.<\/p>\n\n\n\n<p>A parte complicada aqui \u00e9 que na realidade n\u00e3o \u00e9 algo que tenha visto um grande sucesso. Por outras palavras, o que se constr\u00f3i pode funcionar, mas nem sempre.<\/p>\n\n\n\n<p>Vamos dar uma vista de olhos \u00e0s op\u00e7\u00f5es l\u00e1 fora.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Emulador Rust Gameboy (Porto OxidGB Pico)<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/YqgqoXlZzzwpFSfIREDXY6DSQk1izJhDctOpEW_Gp9PHFaOGpt-dp-R69kNfXM5KnNrYiVbPJ7lmFhWYmfzlaRpflY6n2nanDID8gDFPVybw_HioK14eqzPlXJCSo-Y_jd3lylN_Rinln6dDkHeJe7smlhNhrnlKiNP2Az1d5pIMWAJPRqHEqEBNQQ\" alt=\"\" style=\"width:563px;height:622px\" width=\"563\" height=\"622\"\/><figcaption class=\"wp-element-caption\">Imagem por u\/j_selby (Reddit)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Ao ver a imagem do Pokemon no ecr\u00e3, fiquei imediatamente entusiasmado.<\/p>\n\n\n\n<p>No entanto, James Selby escreveu efectivamente sobre os desafios e defici\u00eancias do seu emulador Gameboy, escrito em Rust, chamado OxidGB Pico Port.<\/p>\n\n\n\n<p>\"Isto tem sido um passeio - um passeio frustrante, mas um passeio que, apesar de tudo, gostei muito de uma perspectiva educacional\", disse Selby.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Problemas e vit\u00f3rias<\/h4>\n\n\n\n<p>Aqui est\u00e1 o principal desafio: <strong>O emulador Rust Gameboy \"n\u00e3o \u00e9 exactamente jog\u00e1vel no seu estado actual, infelizmente\".<\/strong><\/p>\n\n\n\n<p>Selby disse que os jogos s\u00f3 recebem cerca de 10 FPS porque o c\u00f3digo do emulador \u00e9 um estrangulamento, bem como a interface lenta do SPI para o visor.<\/p>\n\n\n\n<p>\u00c9 poss\u00edvel acelerar as coisas, mas isso exigiria tempo para planear e implementar.<\/p>\n\n\n\n<p>O input n\u00e3o foi configurado, uma vez que os jogos n\u00e3o eram jog\u00e1veis.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Teste do Porto do Pico de OxidGB<\/h4>\n\n\n\n<p>Se quiser tentar, pode seguir as instru\u00e7\u00f5es de Selby no seu <a href=\"https:\/\/github.com\/j-selby\/oxidgb-pico\">Github repo para o Porto de OxidGB Pico.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RP2040_GB emulador<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/0bdDowSlnfTQhTg-3nLzDxFTEEVtOYep7mVxwdu8oNXkYXop897px8u7TI-bh2UXy-rwj0sq3kL0_D-lLA3BLazxbALrBdj_OxwAaEMg24RzadMnR9sOC_L1lo4nYDlbjzcyr6FX49J_ngR0ebA0D2m-1E3mU1ft1NYCLCUV62W64eS-JW8L3XfnXQ\" alt=\"\" style=\"width:687px;height:298px\" width=\"687\" height=\"298\"\/><figcaption class=\"wp-element-caption\">RP2040_GB hardware e configura\u00e7\u00e3o do emulador, foto de Mahyar Koshkouei.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Outro emulador que pode tentar \u00e9 o <a href=\"https:\/\/github.com\/deltabeard\/RP2040-GB\">RP2040_GB<\/a>que se baseia no <a href=\"https:\/\/github.com\/deltabeard\/Peanut-GB\">Peanut-GB<\/a> emulador.<\/p>\n\n\n\n<p>O desempenho no RP2040_GB \u00e9 decente, com Koshkouei a dizer que a sua configura\u00e7\u00e3o \"funciona a mais de 70 fps sem emula\u00e7\u00e3o de \u00e1udio. Com salto de moldura e entrela\u00e7amento, pode funcionar a at\u00e9 120 fps\".<\/p>\n\n\n\n<p>Como pode ver, o RP2040_GB est\u00e1 a jogar Pokemon. Os passos para colocar uma ROM no RP2040 s\u00e3o como tal:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Deve ter o Pico SDK<\/li>\n\n\n\n<li>Converta <strong>.gb<\/strong> ou <strong>.gbc<\/strong> ROM para um ficheiro de cabe\u00e7alho C utilizando o <strong>xxd <\/strong>programa<\/li>\n\n\n\n<li>Modificar o ficheiro convertido adicionando duas linhas de c\u00f3digo (no Github readme)<\/li>\n\n\n\n<li>Copiar ROM para o <strong>src <\/strong>pasta e compila\u00e7\u00e3o.<\/li>\n<\/ul>\n\n\n\n<p>Existem algumas limita\u00e7\u00f5es deste emulador:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\"Este emulador \u00e9 impreciso e \u00e9 muito um trabalho em curso ... alguns jogos podem correr incorrectamente ou n\u00e3o correr de todo\".&nbsp;<\/li>\n\n\n\n<li>Os jogos Gameboy Color ir\u00e3o lan\u00e7ar um erro<\/li>\n\n\n\n<li>N\u00e3o optimizado para microcontrolador: Koshkouei sugeriu que, \"Utilizando uma APU optimizada para o espa\u00e7o e velocidade\" pode ajudar.<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/github.com\/deltabeard\/RP2040-GB\">Ver o RP2040_GB's Github repo aqui.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mega Jogos Compila\u00e7\u00e3o com Raspberry Pi Pico<\/h2>\n\n\n\n<iframe loading=\"lazy\" width=\"893\" height=\"502\" src=\"https:\/\/www.youtube.com\/embed\/hXO0toLjDh0\" title=\"MEGA Games Compila\u00e7\u00e3o Adafruit RPI Pico\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<p>A melhor parte deste projecto \u00e9 que \u00e9 simples e as instru\u00e7\u00f5es s\u00e3o adequadas para que possa iniciar rapidamente uma consola de jogo Raspberry Pi Pico.<\/p>\n\n\n\n<p>Roger B\u00fchler tem pe\u00e7as, instru\u00e7\u00f5es e demonstra\u00e7\u00f5es inclu\u00eddas no seu Github.<\/p>\n\n\n\n<p>A Mega Compila\u00e7\u00e3o de Jogos vem com os seguintes jogos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Tiny Gilbert<\/li>\n\n\n\n<li>Truque min\u00fasculo<\/li>\n\n\n\n<li>Tiny Invaders v3.1<\/li>\n\n\n\n<li>Pinball v2 min\u00fasculo<\/li>\n\n\n\n<li>Tiny Pacman v1.2<\/li>\n\n\n\n<li>Bombardeiro min\u00fasculo v1.3<\/li>\n\n\n\n<li>Bicicleta Pequena v1.2<\/li>\n\n\n\n<li>Tiny Bert 1.1<\/li>\n\n\n\n<li>Arkanoid min\u00fasculo v2<\/li>\n\n\n\n<li>Tiny Tris v2.1e<\/li>\n\n\n\n<li>Placa min\u00fascula<\/li>\n\n\n\n<li>Tiny DDug<\/li>\n\n\n\n<li>M\u00edssil min\u00fasculo v1.1<\/li>\n\n\n\n<li>Tiny Lander v1.0 ( por Roger Buehler )<\/li>\n\n\n\n<li>Pequeno Morpi\u00e3o<\/li>\n\n\n\n<li>Cano min\u00fasculo<\/li>\n<\/ol>\n\n\n\n<p>As pe\u00e7as de que vai precisar s\u00e3o as seguintes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Framboesa Pi Pico<\/li>\n\n\n\n<li>Visor OLED SSD1309 128x64px SPI (2,42\" a 2:1 ratio)<\/li>\n\n\n\n<li>Sinal sonoro piezoel\u00e9ctrico<\/li>\n\n\n\n<li>Cinco bot\u00f5es<\/li>\n\n\n\n<li>Tabuleiro do p\u00e3o<\/li>\n\n\n\n<li>Cabos de salta<\/li>\n\n\n\n<li>Opcional: resist\u00eancias de 10 ohm, condensador electrol\u00edtico classificado para pelo menos 10V e 220uF<\/li>\n<\/ol>\n\n\n\n<p>Tamb\u00e9m precisar\u00e1 de <a href=\"https:\/\/github.com\/adafruit\/Adafruit_SSD1306\">Biblioteca SSD1306 da Adafruit<\/a>.<\/p>\n\n\n\n<p><strong>Veja aqui como ligar o visor:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GND -&gt; Mostrar GND&nbsp;<\/li>\n\n\n\n<li>3V3(OUT) -&gt; Mostrar VCC&nbsp;<\/li>\n\n\n\n<li>GP16 -&gt; Mostrar DC (Comando de dados)&nbsp;<\/li>\n\n\n\n<li>GP17 -&gt; Mostrar CS (Selec\u00e7\u00e3o de Canal)&nbsp;<\/li>\n\n\n\n<li>GP18 -&gt; Mostrar SCL (Rel\u00f3gio)&nbsp;<\/li>\n\n\n\n<li>GP19 -&gt; Mostrar SDA (MOSI)&nbsp;<\/li>\n\n\n\n<li>GP20 -&gt; Mostrar RES (Reiniciar)<\/li>\n<\/ul>\n\n\n\n<p><strong>E para ligar os bot\u00f5es:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GP15 -&gt; bot\u00e3o UP&nbsp;<\/li>\n\n\n\n<li>GP14 -&gt; bot\u00e3o DOWN&nbsp;<\/li>\n\n\n\n<li>GP13 -&gt; bot\u00e3o ESQUERDA&nbsp;<\/li>\n\n\n\n<li>GP12 -&gt; bot\u00e3o DIREITO&nbsp;<\/li>\n\n\n\n<li>GP11 -&gt; bot\u00e3o FIRE (todos os bot\u00f5es para GND)<\/li>\n<\/ul>\n\n\n\n<p><strong>E para ligar a campainha piezoel\u00e9ctrica:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GP10 -&gt; Buzzer(+)&nbsp;<\/li>\n\n\n\n<li>GND -&gt; Buzzer(-)<\/li>\n<\/ul>\n\n\n\n<p><strong>Instala\u00e7\u00e3o de software:<\/strong><\/p>\n\n\n\n<p>Para instalar o software, \u00e9 necess\u00e1rio utilizar o Arduino IDE.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jogo do tipo Tamagotchi- no Pico de Framboesa Pi (Pico-Tamachibi)<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/vq6-LhQ68o08Xgayc7U4roNHKcOCGtwxk8YL8nOnI33WP_yJlFjnxd2KDdtLgJn92vx2RRhSUb4Rn4OsP8vZNtQsmUjaUCUPc7JXmWvipgWewiXzSISGQ1qJWK8VtvT3lp1iypd3npcQzC4mL3NLTYhCAkGxXgpJoNYzBMsKEST4dSc4FeRU2Jqy3Q\" alt=\"\" style=\"width:727px;height:406px\" width=\"727\" height=\"406\"\/><\/figure>\n<\/div>\n\n\n<p>Porque se chama Pico-Tamachibi?<\/p>\n\n\n\n<p>De acordo com Kevin McAleer, o criador deste dispositivo, \"tama\" significa \"ovo\" e \"chibi\" refere-se a gr\u00e1ficos onde a personagem tem uma cabe\u00e7a grande.&nbsp;<\/p>\n\n\n\n<p>Criar o Tamachibi \u00e9 f\u00e1cil porque Kevin passa por cada passo do caminho no seu tutorial de 90 minutos.<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"1280\" height=\"720\" src=\"https:\/\/www.youtube.com\/embed\/btG3Pd8ZlBw\" title=\"Virtual Pet Code em MicroPython no Raspberry Pi Pico - Pico-Tamachibi\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<h2 class=\"wp-block-heading\">Construa a sua pr\u00f3pria m\u00e1quina de jogo<\/h2>\n\n\n\n<p>Se quiser fazer a sua pr\u00f3pria m\u00e1quina de jogo Raspberry Pi Pico, h\u00e1 duas maneiras gerais de o fazer: compre um kit pronto a usar ou construa voc\u00ea mesmo um.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kit pronto a usar vs hardware de jogo DIY Raspberry Pi Pico<\/h2>\n\n\n\n<p>Embora seja poss\u00edvel come\u00e7ar do zero, talvez queira saltar o inc\u00f3modo de construir o seu pr\u00f3prio sistema e simplesmente comprar um pacote pronto a usar.<\/p>\n\n\n\n<p>Existem alguns kits baseados em RP2040 que lhe permitem saltar directamente para jogar ou desenvolver os seus pr\u00f3prios jogos.<\/p>\n\n\n\n<p>Vamos olhar para o Pimoroni Picosystem e depois compar\u00e1-lo com o processo de constru\u00e7\u00e3o de algo semelhante utilizando pe\u00e7as individuais.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pimoroni Picosystem<\/h2>\n\n\n\n<p>Vamos dar uma olhada ao Pimoroni Picosystem.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"451\" src=\"https:\/\/lh3.googleusercontent.com\/6X2vym5Y-3rckNiwIQlPQlGAso1RbIGb-n9hETg6DPjKQGijYEqkk8p_WKD0sSOm9AeMhyLWM9hfKjBZgGx0_YQRvYEWqaEyK0sRjr7urrC4KOcZdl8JXVkIHYJI0DZ8ysG6_MC7BiZRaP_5AJFq7i19PzHAgL0nba9lRg06jnhuWXp2adZgN6SCIQ\"><\/p>\n\n\n\n<p>Como se pode ver, \u00e9 muito maior que o Raspberry Pi Pico W, mas tamb\u00e9m porque tem um D-pad de quatro vias, quatro bot\u00f5es, ecr\u00e3 LCD, uma bateria de i\u00f5es de l\u00edtio, altifalante piezo e uma porta USB-C, entre outras adi\u00e7\u00f5es.<\/p>\n\n\n\n<p>Tem o mesmo processador e RAM, j\u00e1 que tanto o Picosystem como o Pico utilizam o chip RP2040. Aqui est\u00e3o as especifica\u00e7\u00f5es completas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alimentado por RP2040 (Dual Arm Cortex M0+ com 264kB de SRAM)<\/li>\n\n\n\n<li>16MB de flash QSPI que suporta XiP<\/li>\n\n\n\n<li>1.54\u2033 LCD SPI IPS a cores (240\u00d7240 e 120\u00d7120 modos)<\/li>\n\n\n\n<li>D-pad e bot\u00f5es<\/li>\n\n\n\n<li>525mAh bateria LiPo (6hrs+)<\/li>\n\n\n\n<li>Sinal sonoro\/altifalante piezoel\u00e9ctrico<\/li>\n\n\n\n<li>Bot\u00e3o de ligar\/desligar<\/li>\n\n\n\n<li>LED RGB<\/li>\n\n\n\n<li>Program\u00e1vel e recarreg\u00e1vel via USB-C (cabo n\u00e3o inclu\u00eddo)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Modos gr\u00e1ficos<\/strong><\/h3>\n\n\n\n<p>O PicoSystem suporta dois modos gr\u00e1ficos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>240\u00d7240: a resolu\u00e7\u00e3o nativa do LCD<\/li>\n\n\n\n<li>120\u00d7120: modo duplo de pixel (poupa RAM)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que s\u00e3o os jogos no Picosystem?<\/h3>\n\n\n\n<p>O jogo no Picosystem \u00e9 f\u00e1cil. Basta premir o bot\u00e3o de ligar e \u00e9 tratado ao jogo pr\u00e9-carregado chamado Super Square Bros.<\/p>\n\n\n\n<p>O jogo \u00e9 um simples jogo de plataforma muito parecido com o Mario.<\/p>\n\n\n\n<p>Pimoroni tamb\u00e9m incluiu outros jogos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/scorpion-games-uk.itch.io\/super-square-bros\">Super Square Bros.<\/a> por Scorpion Games - Um quadril\u00e1tero saltitante <strong>(jogo pr\u00e9-carregado)<\/strong><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/Gadgetoid\/32blit-dots\/releases\">Pontos<\/a> - Puzzler de pontos. Criar cadeias de dois ou mais e correr para obter a maior pontua\u00e7\u00e3o.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/32blit\/rocks-and-diamonds\/releases\">Rochas e Diamantes<\/a> - Jogo cl\u00e1ssico de esquivar-se \u00e0s rochas e agarrar diamantes.<\/li>\n\n\n\n<li><a href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/files\/blit_v0.2.0_32blit-32blit-sdk-geometry.uf2?v=1633970589\">Geometria<\/a> - Esmagar rochas espaciais com lasers para fazer rochas espaciais mais pequenas!<\/li>\n\n\n\n<li><a href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/files\/blit_v0.2.0_32blit-32blit-sdk-scrolly-tile.uf2?v=1633970589\">Subida ao arco-\u00edris<\/a> - As Almas Escuras dos puzzles de saltos verticais gerados por procedimentos. Boa sorte.<\/li>\n\n\n\n<li><a href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/files\/blit_v0.2.0_Daft-Freak-super-blit-kart.uf2?v=1634037972\">Super Blit Kart<\/a> por Daft_Freak - Um jogo de corridas baseado no \"Mode7\".<\/li>\n<\/ul>\n\n\n\n<p>A fim de instalar estes jogos, fa\u00e7a o seguinte<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Descarregar o ficheiro.<\/li>\n\n\n\n<li>Ligue o seu Picosystem ao PC<\/li>\n\n\n\n<li>Premir e manter premido o bot\u00e3o X e o bot\u00e3o de ligar\/desligar.<\/li>\n\n\n\n<li>O Picosystem deve ser montado como uma unidade chamada RPI-RP2<\/li>\n\n\n\n<li>Copiar o ficheiro .uf2 descarregado para a unidade. Ser\u00e1 automaticamente carregado.<\/li>\n<\/ul>\n\n\n\n<p>Por alguma raz\u00e3o, o meu cabo USB-C para USB-C n\u00e3o funcionou, mas o cabo USB-A para USB-C funcionou com o Picosystem. Se n\u00e3o vir o LED vermelho a acender, ent\u00e3o tente outro cabo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Programe os seus pr\u00f3prios jogos<\/h3>\n\n\n\n<p>A melhor parte sobre o Picosystem \u00e9 que fornece um sistema para que possa criar os seus pr\u00f3prios jogos.<\/p>\n\n\n\n<p>Em vez de codificar do zero, o PicoSystem vem com uma API especial que o pode ajudar a criar os seus jogos.<\/p>\n\n\n\n<p>Tamb\u00e9m retira muito do tedioso trabalho necess\u00e1rio para comprar pe\u00e7as individuais como um ecr\u00e3 LCD, bot\u00f5es, fios de jumper, t\u00e1bua de cortar p\u00e3o e depois descobrir as bibliotecas e pacotes necess\u00e1rios para p\u00f4r todas estas pe\u00e7as a funcionar.<\/p>\n\n\n\n<p>O API do PicoSystem tem fun\u00e7\u00f5es para desenhar coisas no ecr\u00e3, para emitir \u00e1udio, fun\u00e7\u00f5es de hardware e outras fun\u00e7\u00f5es utilit\u00e1rias. Isto facilita-lhe a constru\u00e7\u00e3o do seu jogo.<\/p>\n\n\n\n<p>Tal como o Raspberry Pi Pico, o PicoSystem pode ser codificado em C++ ou MicroPython.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9 f\u00e1cil programar um jogo com o Picosystem?<\/h3>\n\n\n\n<p>Recomendaria que tivesse algum tempo e paci\u00eancia para construir o seu pr\u00f3prio jogo com o Picosystem.<\/p>\n\n\n\n<p>A documenta\u00e7\u00e3o oferece o b\u00e1sico para que possa come\u00e7ar, mas ser\u00e1 melhor se tiver algum conhecimento pr\u00e9vio de programa\u00e7\u00e3o de jogos.<\/p>\n\n\n\n<p>O maior desafio para os principiantes \u00e9 que n\u00e3o h\u00e1 muitos recursos por a\u00ed que lhe ensinem a codificar projectos de amostra. No entanto, aqui est\u00e1 uma lista de refer\u00eancia que o ajudar\u00e1:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\/tree\/main\/micropython\">Guia Picosystem MicroPython (em readme)<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\/tree\/main\/micropython\/examples\/picosystem\">Exemplos de Picosystem MicroPython<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\">Picosystem C++ Github<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\/tree\/main\/examples\">Exemplos de Picosystem C++<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/wiki.picosystem.com\/en\/c++\/cheatsheet\">Picosystem API cheatsheet, mais imagem, conversor de fontes<\/a> (na barra lateral)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sistema de bricolage: Cria\u00e7\u00e3o do hardware<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.youmaketech.com\/raspberry-pi-pico-retrogaming-system\/\">Guia do YouMakeTech<\/a> acompanha o leitor atrav\u00e9s de como fazer uma consola de jogos completa com uma caixa, sistema de som e solda permanente.<\/p>\n\n\n\n<p>Para a nossa compara\u00e7\u00e3o, vejamos quanto custaria construir uma unidade de bricolage versus o Picosystem, que \u00e9 um kit completo.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>O sistema de jogo da YMT<\/td><td>Pimoroni Picosystem<\/td><\/tr><tr><td>Caso<\/td><td>Opcional, impress\u00e3o em 3D ($4.47 para plantas STL, mais custos de aluguer\/opera\u00e7\u00e3o de filamentos e impressoras 3D)<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td>Framboesa Pi Pico<\/td><td>$5 para o Pico H porque precisar\u00e1 dos cabe\u00e7alhos.<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td><a href=\"https:\/\/buyzero.de\/products\/waveshare-9092-0-96inch-oled-gerade-vertikale-stiftleiste?_pos=2&amp;_sid=c5e379f04&amp;_ss=r\">Ecr\u00e3 OLED<\/a><\/td><td>$15 (0.96 polegadas display)<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td>Bot\u00f5es<\/td><td>Negligenci\u00e1vel<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td><a href=\"https:\/\/buyzero.de\/products\/breadboard-kit?variant=39481121374388\">Tabuleiro do p\u00e3o<\/a><\/td><td>$15 (kit de t\u00e1bua de cortar p\u00e3o)<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td>Fios de salta<\/td><td>Inclu\u00eddo no kit de t\u00e1bua de p\u00e3o<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td>Parafusos<\/td><td>At\u00e9 $1<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td>Piezo<\/td><td>Negligenci\u00e1vel&nbsp;<\/td><td>Inclu\u00eddo<\/td><\/tr><tr><td><strong>Custo total<\/strong><\/td><td>$40.47, excluindo os custos de impress\u00e3o em 3D<\/td><td>$70<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Vejamos ent\u00e3o os custos finais para diferentes n\u00edveis de configura\u00e7\u00f5es de bricolage:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Configura\u00e7\u00e3o<\/strong><\/td><td><strong>Custos<\/strong><\/td><\/tr><tr><td>Sem bateria<\/td><td>$40.47 excluindo os custos de impress\u00e3o em 3D<\/td><\/tr><tr><td>Bateria Lipo<\/td><td>$8<\/td><\/tr><tr><td>Pimoroni Pico Lipo<\/td><td>$16.39 - $4 (uma vez que estamos a utilizar a substitui\u00e7\u00e3o do Pimoroni Pico, podemos deduzir o custo do Raspberry Pi Pico)<\/td><\/tr><tr><td>Total para um kit alimentado por bateria<\/td><td>$60.86 excl. custos de impress\u00e3o em 3D<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Apenas uma advert\u00eancia - YouMakeTech diz que pode construir isto por menos de $20. Na minha pesquisa, no entanto, os custos de uma instala\u00e7\u00e3o de bricolage que corresponda ao Picosystem n\u00e3o diferem assim tanto, especialmente quando se considera o software e a conveni\u00eancia.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/FiLN-p2QdPG59_fRj0q-0bH2W37KsnaaHC5IwHf2sFCsAe7iVU_zKNecqpcVLmjOeVC_ht3T5L_ONcPuC3eCODvHvYxar5mS-tnmf_wiJAi47JZfG0NV00NLMYN_U0k7k-89gxbynldhvCNXx-QSzlhDyD3qkOCBqTlTbXRNf0270w1j0LqTuXPE8A\" alt=\"\"\/><figcaption class=\"wp-element-caption\">O prot\u00f3tipo de YouMakeTech que tem dois bot\u00f5es, um ecr\u00e3 e pode jogar Pong<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Dito isto, o percurso de bricolage \u00e9 uma grande oportunidade de aprendizagem. Uma coisa que me desafiou foi o ecr\u00e3. Enquanto o exemplo do YouMakeTech usa uma liga\u00e7\u00e3o I2C, o ecr\u00e3 que eu tinha usado uma interface SPI de 4 pinos. Isto requer ou uma altera\u00e7\u00e3o na codifica\u00e7\u00e3o ou uma modifica\u00e7\u00e3o do hardware para poder prosseguir. Se gosta de desafios, a rota de bricolage \u00e9 para si.<\/p>\n\n\n\n<p>Ent\u00e3o, quais s\u00e3o as vantagens de o fazer de bricolage contra o Picosistema?<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Pr\u00f3s\/Cons<\/td><td>FA\u00c7A VOC\u00ca MESMO<\/td><td>Picosystem<\/td><\/tr><tr><td>Montagem de ferragens<\/td><td>Fa\u00e7a voc\u00ea mesmo tudo<\/td><td>N\u00e3o fazes nada de bricolage<\/td><\/tr><tr><td>Software<\/td><td>N\u00e3o h\u00e1 muita ajuda aqui. Fa\u00e7a voc\u00ea mesmo tudo e aprenda a operar cada componente.<\/td><td>Tem de aprender o API do Picosystem<\/td><\/tr><tr><td>Oportunidade de aprendizagem<\/td><td>Maior oportunidade de aprendizagem porque se est\u00e1 a juntar partes d\u00edspares<\/td><td>Mais pequeno. Est\u00e1 pronto e o software ser\u00e1 a maior oportunidade de aprendizagem aqui<\/td><\/tr><tr><td>Extendibilidade<\/td><td>Desde que o construiu, pode alterar o ecr\u00e3 LCD, adicionar mais bot\u00f5es, adicionar LEDs, etc.<\/td><td>N\u00e3o muito, a menos que se queira rasgar um sistema completo.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Cria\u00e7\u00e3o do jogo tipo Pong- no sistema Picosystem vs DIY<\/h2>\n\n\n\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"451\" src=\"https:\/\/lh3.googleusercontent.com\/RJq_cXB7E4foNOgagGJn3Dzcdlq3HwokXK7CgGKMkdkiGG7RNAdWhN0dKkejbY0GQiYaN9GGwxEQAv7Vv_SO9npoBi7pMIf3VSiKf_a_nfhBFkbJBzvFbWFcuEmMlf1XuvQHWvfm8YGU--7r4Vj1sI-X9ffH_z0OVY-ZhjuQLyhmCvHs0jHTlrg8Kg\"><\/p>\n\n\n\n<p>Uma curiosa experi\u00eancia minha envolve compreender quanto esfor\u00e7o ser\u00e1 necess\u00e1rio para desenvolver um jogo usando o Picosystem versus faz\u00ea-lo a partir do zero.<\/p>\n\n\n\n<p>A fim de comparar os dois sistemas, estarei a construir um jogo de um jogador, tipo Pong-, tanto no sistema de bricolage do YouMakeTech como no Picosystem.<\/p>\n\n\n\n<p>A premissa do jogo \u00e9 simples. \u00c9 um jogo de um jogador, tipo Pong-, que lhe d\u00e1 10 pontos cada vez que a sua bola salta da raquete. Se cair para o fundo do ecr\u00e3, recebe uma mensagem de \"Game Over\".<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"blob:https:\/\/picockpit.com\/fea315db-91fe-48eb-99ef-83129db07775\"><\/video><\/figure>\n\n\n\n<p>A cria\u00e7\u00e3o do jogo em ambos os sistemas segue um fluxo de trabalho simples que tudo leva ao Thonny.<\/p>\n\n\n\n<p>Ter\u00e1 de fazer piscar MicroPython no Pico e depois usar\u00e1 Thonny para codificar o seu programa.&nbsp;<\/p>\n\n\n\n<p>O MicroPython que piscaria no Picosystem \u00e9 diferente do ficheiro oficial do MicroPython UF2, por isso certifique-se de que est\u00e1 a piscar o correcto porque o Picosystem funcionar\u00e1 no lan\u00e7amento oficial do MicroPython. Simplesmente n\u00e3o funcionar\u00e1 como pretendido.<\/p>\n\n\n\n<p>Agora, vejamos algumas diferen\u00e7as fundamentais entre os dois. Estou aqui a excluir a l\u00f3gica do jogo e apenas a comparar diferen\u00e7as na interac\u00e7\u00e3o entre o software de hardware e os padr\u00f5es de programa\u00e7\u00e3o.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/YouMakeTech\/PicoRetroGamingSystem\/blob\/main\/PicoPong.py\">Pode ver o c\u00f3digo do YouMakeTech aqui.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Primeira diferen\u00e7a: c\u00f3digo de hardware<\/h3>\n\n\n\n<p>As coisas est\u00e3o muito \"cruas\" com a rota do bricolage. Aqui est\u00e1 algum c\u00f3digo para inicializar o visor, GPIO e bot\u00f5es que n\u00e3o precisar\u00e1 de fazer com o Picosystem:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"from machine import Pin, PWM, I2C,from ssd1306 import SSD1306_I2C\u2026# Buttonsup = Pin(2, Pin.IN, Pin.PULL_UP)down = Pin(3, Pin.IN, Pin.PULL_UP)left = Pin(4, Pin.IN, Pin.PULL_UP)right = Pin(5, Pin.IN, Pin.PULL_UP)button1 = Pin(6, Pin.IN, Pin.PULL_UP)button2 = Pin(7, Pin.IN, Pin.PULL_UP)# Buzzer connected to GP18buzzer = PWM(Pin(18))# OLED Screen connected to GP14 (SDA) and GP15 (SCL)i2c = machine.I2C(1, sda = Pin(14), scl = Pin(15), freq = 400000)oled = SSD1306_I2C(SCREEN_WIDTH, SCREEN_HEIGHT, i2c)\" style=\"color:#d8dee9ff;display:none\" aria-label=\"C\u00f3pia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">machine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">PWM<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">I2C<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ssd1306<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">SSD1306_I2C<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u2026<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #8FBCBB\">Buttons<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">up<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">down<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">left<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">right<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">button1<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(6<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">button2<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(7<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #8FBCBB\">Buzzer<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">connected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GP18<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">buzzer<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">PWM<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(18))<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #8FBCBB\">OLED<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Screen<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">connected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GP14<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #8FBCBB\">SDA<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #8FBCBB\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GP15<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #8FBCBB\">SCL<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">i2c<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">machine<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">I2C<\/span><span style=\"color: #D8DEE9FF\">(1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">sda<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(14)<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">scl<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(15)<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">freq<\/span><span style=\"color: #D8DEE9FF\"> = 400000)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">oled<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">SSD1306_I2C<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #8FBCBB\">SCREEN_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">SCREEN_HEIGHT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">i2c<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Segunda diferen\u00e7a: API do Picosystem<\/h3>\n\n\n\n<p>Se estiver a escrever c\u00f3digo no Picosystem, ter\u00e1 de escrever dentro do seu sistema.<\/p>\n\n\n\n<p>No exemplo do YouMakeTech, toda a l\u00f3gica de jogo est\u00e1 encapsulada dentro de um <strong>embora Verdadeiro<\/strong> la\u00e7o. Isto inclui interac\u00e7\u00e3o de bot\u00f5es, detec\u00e7\u00e3o de colis\u00e3o e desenho para o ecr\u00e3.<\/p>\n\n\n\n<p>No Picosystem, \u00e9-lhe exigido que escreva dentro de tr\u00eas fun\u00e7\u00f5es - <strong>init(), update() <\/strong>e <strong>sacar()<\/strong>.<\/p>\n\n\n\n<p>No meu c\u00f3digo, toda a l\u00f3gica do jogo est\u00e1 escrita em <strong>actualiza\u00e7\u00e3o() <\/strong>incluindo a manipula\u00e7\u00e3o de colis\u00f5es e a interac\u00e7\u00e3o D-pad.<\/p>\n\n\n\n<p>Num jogo simples de Pong, h\u00e1 algumas fun\u00e7\u00f5es do API que utilizei que facilitaram um pouco as coisas:<\/p>\n\n\n\n<p><strong>intersec\u00e7\u00f5es(x1, y1, w1, h1, x2, y2, w2, h2)&nbsp; <\/strong>\u00e9 provavelmente a maior ajuda aqui. Passaria as coordenadas e tamanhos dos dois quadrados e voltaria a ser verdade se houvesse um cruzamento. Neste caso, os dois rect\u00e2ngulos s\u00e3o a bola e a barra (tamb\u00e9m conhecida como remo). A falha da fun\u00e7\u00e3o intersec\u00e7\u00e3o() \u00e9 que n\u00e3o detecta de que lado a colis\u00e3o ocorreu, pelo que tive de escrever c\u00f3digo extra para lidar com colis\u00f5es no lado da barra.<\/p>\n\n\n\n<p>A API do Picosystem ir\u00e1 realmente brilhar \u00e0 medida que se desenvolvem jogos mais complicados, dado que j\u00e1 tem um m\u00e9todo para framebuffers, sa\u00edda de \u00e1udio, mistura, etc.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3digo para Pimoroni Picosystem Jogo tipo Pong-<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#bar_pos_x = pixels from left, e.g. 0 from leftbar_pos_x = 50#bar_pos_y = pixels from top, e.g. 100px from topbar_pos_y = 100BAR_WIDTH = 30LENGTH_CONSTANT = 5ball_speed = 1ball_pos_x = 10ball_pos_y = 10ball_dx = 2ball_dy = 2score = 0game_over = Falsedef update(tick):        global bar_pos_x    global bar_pos_y    global ball_pos_x    global ball_pos_y    global ball_dx    global ball_dy    global ball_speed    global score    global game_over        def reverse_ball_dx():        global ball_dx        ball_dx = ball_dx * -1            def reverse_ball_dy():        global ball_dy        ball_dy = ball_dy * -1        ball_pos_x += ball_dx    ball_pos_y += ball_dy        if button(LEFT) and bar_pos_x &gt; 0:        bar_pos_x -= 1        if button(RIGHT) and bar_pos_x < 120 - BAR_WIDTH :        bar_pos_x += 1            if ball_pos_x <= 0 :        ball_pos_x = 0        reverse_ball_dx()            if ball_pos_x &gt;= 120 - LENGTH_CONSTANT :        ball_pos_x = 120 - LENGTH_CONSTANT        reverse_ball_dx()            if ball_pos_y &gt;= 120 - LENGTH_CONSTANT :        game_over = True            if ball_pos_y <= 0:        ball_pos_y = 0        reverse_ball_dy()            if intersects(bar_pos_x,bar_pos_y,BAR_WIDTH,LENGTH_CONSTANT, ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT):                reverse_ball_dy()        score += 10                #main intersection of ball and bar. if they intersect, check if they are intersecting on the sides.        #if not on sides (i.e. on top) reverse Y direction. Or else, reverse X direction.        if intersects(bar_pos_x,bar_pos_y,1,LENGTH_CONSTANT, ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT):                        #intersecting on left                        reverse_ball_dx()            ball_pos_x -= 2                    if intersects(bar_pos_x + BAR_WIDTH,bar_pos_y,1,LENGTH_CONSTANT, ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT):                        #intersecting on right                        reverse_ball_dx()            ball_pos_x += 2        def draw(tick):        if game_over:        pen(0,0,0)        clear()        pen(15,15,15)        text(&quot;Game Over&quot;, 35, 60)                    else:        pen(0, 0, 0)        clear()        pen(15,15,15)            #draw bar (paddle)        frect(bar_pos_x,bar_pos_y,BAR_WIDTH,LENGTH_CONSTANT)            #draw the ball        frect(ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT)        text(str(score), 80, 20)    start()\" style=\"color:#d8dee9ff;display:none\" aria-label=\"C\u00f3pia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pixels<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">left<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">g<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">left<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">50<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pixels<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">top<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">g<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> 100<\/span><span style=\"color: #D8DEE9\">px<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">top<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">100<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_speed<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_dx<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_dy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">score<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">game_over<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">False<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">update<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">tick<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_speed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">score<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">game_over<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">reverse_ball_dy<\/span><span style=\"color: #D8DEE9FF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">button<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">LEFT<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">button<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">RIGHT<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> BAR_WIDTH <\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> :<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> LENGTH_CONSTANT <\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> LENGTH_CONSTANT <\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">game_over<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">True<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dy<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">intersects<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dy<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">score<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #D8DEE9\">main<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">intersection<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">of<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">they<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">intersect<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">check<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">they<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">are<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">intersecting<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">sides<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">not<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">sides<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #D8DEE9\">i<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">top<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #D8DEE9\">reverse<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">direction<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Or<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">reverse<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">X<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">direction<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">intersects<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            #<\/span><span style=\"color: #D8DEE9\">intersecting<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">left<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">intersects<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            #<\/span><span style=\"color: #D8DEE9\">intersecting<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">right<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">draw<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">tick<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> game_over<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">clear<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">text<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Game Over<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">35<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">60<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">clear<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #D8DEE9\">draw<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">bar<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #D8DEE9\">paddle<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">frect<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #D8DEE9\">draw<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">frect<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">text<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #88C0D0\">str<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">score<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">80<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">start<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Tem um jogo a recomendar?<\/h2>\n\n\n\n<p>Se tiver um jogo para o Raspberry Pi Pico, deixe um coment\u00e1rio abaixo com um URL.<\/p>\n\n\n\n<p>E se quiser ver a nossa s\u00e9rie Paragon Projects - v\u00e1 a <a href=\"https:\/\/picockpit.com\/raspberry-pi\/category\/paragon-projects\/\">aqui<\/a>.<\/p>\n<div class=\"shariff shariff-align-center shariff-widget-align-left shariff-buttonstretch\"><ul class=\"shariff-buttons theme-white orientation-horizontal buttonsize-medium\"><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fgaming-on-the-raspberry-pi-pico%2F&text=Gaming%20on%20the%20Raspberry%20Pi%20Pico\" title=\"Compartilhar no X\" aria-label=\"Compartilhar no X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#000\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#000\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#000\">partilhar<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fgaming-on-the-raspberry-pi-pico%2F\" title=\"Partilhar no Facebook\" aria-label=\"Partilhar no Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#3b5998\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#3b5998\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#3b5998\">partilhar<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button telegram shariff-nocustomcolor\" style=\"background-color:#4084A6\"><a href=\"https:\/\/telegram.me\/share\/url?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fgaming-on-the-raspberry-pi-pico%2F&text=Gaming%20on%20the%20Raspberry%20Pi%20Pico\" title=\"Compartilhar no Telegram\" aria-label=\"Compartilhar no Telegram\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0088cc; color:#0088cc\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#0088cc\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 32 32\"><path fill=\"#0088cc\" d=\"M30.8 6.5l-4.5 21.4c-.3 1.5-1.2 1.9-2.5 1.2L16.9 24l-3.3 3.2c-.4.4-.7.7-1.4.7l.5-7L25.5 9.2c.6-.5-.1-.8-.9-.3l-15.8 10L2 16.7c-1.5-.5-1.5-1.5.3-2.2L28.9 4.3c1.3-.5 2.3.3 1.9 2.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#0088cc\">partilhar<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fgaming-on-the-raspberry-pi-pico%2F\" title=\"Compartilhar no Reddit\" aria-label=\"Compartilhar no Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#ff4500\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#ff4500\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#ff4500\">partilhar<\/span>&nbsp;<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>Neste post, quero falar sobre jogos no Raspberry Pi Pico. Lembro-me do meu primeiro dumbphone, que na altura se chamava \"telefone\". Conseguia jogar jogos simples como o Snake. Isso era uma novidade. Antes disso, era preciso levar um dispositivo port\u00e1til separado que jogasse Tetris ou um jogo mais din\u00e2mico...<\/p>","protected":false},"author":2,"featured_media":2946,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[525,528,510,527,187,526],"class_list":["post-2944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi-pico","tag-gameboy","tag-picosystem","tag-pimoroni","tag-pong","tag-raspberry-pi","tag-tamagotchi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gaming on the Raspberry Pi Pico | PiCockpit<\/title>\n<meta name=\"description\" content=\"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/picockpit.com\/raspberry-pi\/pt\/gaming-on-the-raspberry-pi-pico\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gaming on the Raspberry Pi Pico | PiCockpit\" \/>\n<meta property=\"og:description\" content=\"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/picockpit.com\/raspberry-pi\/pt\/gaming-on-the-raspberry-pi-pico\/\" \/>\n<meta property=\"og:site_name\" content=\"PiCockpit\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pi3gshop\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-17T11:44:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-23T10:43:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1778\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"raspi berry\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pi3g\" \/>\n<meta name=\"twitter:site\" content=\"@pi3g\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"raspi berry\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\"},\"author\":{\"name\":\"raspi berry\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\"},\"headline\":\"Gaming on the Raspberry Pi Pico\",\"datePublished\":\"2022-09-17T11:44:21+00:00\",\"dateModified\":\"2023-08-23T10:43:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\"},\"wordCount\":3348,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"keywords\":[\"Gameboy\",\"picosystem\",\"Pimoroni\",\"Pong\",\"Raspberry Pi\",\"Tamagotchi\"],\"articleSection\":[\"Raspberry Pi Pico\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\",\"name\":\"Gaming on the Raspberry Pi Pico | PiCockpit\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"datePublished\":\"2022-09-17T11:44:21+00:00\",\"dateModified\":\"2023-08-23T10:43:28+00:00\",\"description\":\"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"width\":1778,\"height\":1000,\"caption\":\"games on raspberry pi pico\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi Pico\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/category\\\/raspberry-pi-pico\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Gaming on the Raspberry Pi Pico\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"name\":\"PiCockpit\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\",\"name\":\"PiCockpit.com\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"width\":1165,\"height\":283,\"caption\":\"PiCockpit.com\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pi3gshop\",\"https:\\\/\\\/x.com\\\/pi3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\",\"name\":\"raspi berry\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"caption\":\"raspi berry\"},\"description\":\"I'm here to help you with all your Raspberry Pi related questions &amp; love to share about new project ideas for the Raspberry Pi, and give quick tips. Of course I'll also help you with PiCockpit and how to make your Raspberry Pi even easier to use with this raspberry pi monitoring solution :-)\",\"sameAs\":[\"https:\\\/\\\/picockpit.com\"],\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/pt\\\/author\\\/raspi-berry\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jogos no Raspberry Pi Pico | PiCockpit","description":"Jogar no Raspberry Pi Pico \u00e9 uma forma fant\u00e1stica de emular consolas e \u00e9 uma \u00f3ptima plataforma para aprender a programar os seus pr\u00f3prios jogos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/picockpit.com\/raspberry-pi\/pt\/gaming-on-the-raspberry-pi-pico\/","og_locale":"pt_PT","og_type":"article","og_title":"Gaming on the Raspberry Pi Pico | PiCockpit","og_description":"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.","og_url":"https:\/\/picockpit.com\/raspberry-pi\/pt\/gaming-on-the-raspberry-pi-pico\/","og_site_name":"PiCockpit","article_publisher":"https:\/\/www.facebook.com\/pi3gshop","article_published_time":"2022-09-17T11:44:21+00:00","article_modified_time":"2023-08-23T10:43:28+00:00","og_image":[{"width":1778,"height":1000,"url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","type":"image\/jpeg"}],"author":"raspi berry","twitter_card":"summary_large_image","twitter_creator":"@pi3g","twitter_site":"@pi3g","twitter_misc":{"Escrito por":"raspi berry","Tempo estimado de leitura":"16 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#article","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/"},"author":{"name":"raspi berry","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee"},"headline":"Gaming on the Raspberry Pi Pico","datePublished":"2022-09-17T11:44:21+00:00","dateModified":"2023-08-23T10:43:28+00:00","mainEntityOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/"},"wordCount":3348,"commentCount":1,"publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","keywords":["Gameboy","picosystem","Pimoroni","Pong","Raspberry Pi","Tamagotchi"],"articleSection":["Raspberry Pi Pico"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/","url":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/","name":"Jogos no Raspberry Pi Pico | PiCockpit","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","datePublished":"2022-09-17T11:44:21+00:00","dateModified":"2023-08-23T10:43:28+00:00","description":"Jogar no Raspberry Pi Pico \u00e9 uma forma fant\u00e1stica de emular consolas e \u00e9 uma \u00f3ptima plataforma para aprender a programar os seus pr\u00f3prios jogos.","breadcrumb":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","width":1778,"height":1000,"caption":"games on raspberry pi pico"},{"@type":"BreadcrumbList","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/picockpit.com\/raspberry-pi\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi Pico","item":"https:\/\/picockpit.com\/raspberry-pi\/category\/raspberry-pi-pico\/"},{"@type":"ListItem","position":3,"name":"Gaming on the Raspberry Pi Pico"}]},{"@type":"WebSite","@id":"https:\/\/picockpit.com\/raspberry-pi\/#website","url":"https:\/\/picockpit.com\/raspberry-pi\/","name":"PiCockpit","description":"","publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/picockpit.com\/raspberry-pi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization","name":"PiCockpit.com","url":"https:\/\/picockpit.com\/raspberry-pi\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","width":1165,"height":283,"caption":"PiCockpit.com"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pi3gshop","https:\/\/x.com\/pi3g"]},{"@type":"Person","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee","name":"baga de framboesa","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","caption":"raspi berry"},"description":"Estou aqui para ajud\u00e1-lo com todas as suas perguntas relacionadas com o Raspberry Pi e adoro compartilhar sobre novas id\u00e9ias de projetos para o Raspberry Pi, e dar dicas r\u00e1pidas. Claro que tamb\u00e9m o ajudarei com o PiCockpit e como tornar o seu Raspberry Pi ainda mais f\u00e1cil de usar com esta solu\u00e7\u00e3o de monitoriza\u00e7\u00e3o do raspberry Pi :-)","sameAs":["https:\/\/picockpit.com"],"url":"https:\/\/picockpit.com\/raspberry-pi\/pt\/author\/raspi-berry\/"}]}},"_links":{"self":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts\/2944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/comments?post=2944"}],"version-history":[{"count":8,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts\/2944\/revisions"}],"predecessor-version":[{"id":4882,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts\/2944\/revisions\/4882"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/media\/2946"}],"wp:attachment":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/media?parent=2944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/categories?post=2944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/tags?post=2944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}