{"id":13538,"date":"2023-09-03T22:57:58","date_gmt":"2023-09-03T20:57:58","guid":{"rendered":"https:\/\/pythonprogramming.altervista.org\/?p=13538"},"modified":"2023-09-03T23:05:03","modified_gmt":"2023-09-03T21:05:03","slug":"pygame-walking-cat","status":"publish","type":"post","link":"https:\/\/pythonprogramming.altervista.org\/pygame-walking-cat\/","title":{"rendered":"Pygame: walking cat"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"439\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-8.png\" alt=\"\" class=\"wp-image-13541\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-8.png 615w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-8-320x228.png 320w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For the script of the day we got a walking cat. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import pygame\nfrom glob import glob\nimport sys\n\n\npygame.init()\nscreen = pygame.display.set_mode((400, 600))\n\n\ndef debug(message=\"ended\"):\n    print(\"\\n\", message, \"\\n\")\n    pygame.quit()\n    sys.exit()\n\n\nclass Cat:\n    def __init__(self, x, y):\n        self.x = x\n        self.y = y\n        # list of surfaces with all the images for the different animatios\n        self.idle = [pygame.image.load(f).convert_alpha() for f in glob(f\"cat\/Idle*.png\")[1:]]\n        self.walk = [pygame.image.load(f).convert_alpha() for f in glob(f\"cat\/Walk*.png\")[1:]]\n        self.imagelist = self.idle\n        print(self.imagelist)\n        # debug()\n        # starting animation\n        self.images_counter = 0\n        self.image = self.imagelist[0]\n        self.direct = \"\"\n        self.store_direction = \"\"\n\n    def update(self):\n        self.images_counter += .4\n        if self.images_counter >= len(self.imagelist):\n            #debug(len(self.imagelist))\n            self.images_counter = 0\n        if self.direct == \"right\":\n            self.imagelist = self.walk\n            self.image = self.imagelist[int(self.images_counter)]\n            self.store_direction = \"right\"\n            screen.blit(cat.image, (cat.x, cat.y))\n        elif self.direct == \"left\":\n            self.imagelist = self.walk\n            self.image = self.imagelist[int(self.images_counter)]\n            screen.blit(pygame.transform.flip(cat.image, True, False), (cat.x, cat.y))\n            self.store_direction = \"left\"\n        else:\n            self.imagelist = self.idle\n            self.image = self.imagelist[int(self.images_counter)]\n            if self.store_direction == \"left\":\n                screen.blit(pygame.transform.flip(cat.image, True, False), (cat.x, cat.y))\n            else:\n                screen.blit(cat.image, (cat.x, cat.y))\n\n\n\ncat = Cat(100, 100)\nsquare = pygame.Surface((cat.image.get_size()))\nsquare.fill((0, 180, 250))\nsw, sh = screen.get_size()\nclock = pygame.time.Clock()\nwhile True:\n    screen.fill((128, 255, 128))\n    # screen.blit(pygame.transform.scale(cat, (sw, sh)),(0, 0))\n    #screen.blit(square, (Cat.x, Cat.y))\n    match cat.direct:\n        case \"right\":\n            cat.x += 2\n        case \"left\":\n            cat.x -= 2\n    if pygame.event.get(pygame.QUIT):\n        break\n    for event in pygame.event.get():\n        if event.type == pygame.KEYDOWN:\n            if event.key == pygame.K_RIGHT:\n                cat.direct = \"right\"\n\n            if event.key == pygame.K_LEFT:\n                cat.direct = \"left\"\n            if event.key == pygame.K_UP:\n                cat.y -= 10\n            if event.key == pygame.K_DOWN:\n                cat.y += 10\n        if event.type == pygame.KEYUP:\n            cat.direct = \"\"\n    cat.update()\n\n\n    pygame.display.update()\n    clock.tick(60)\n\n\npygame.quit()<\/pre>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"960\" style=\"aspect-ratio: 640 \/ 960;\" width=\"640\" controls src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/pygame-window-2023-09-03-22-20-02.mp4\"><\/video><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">My code in Internet (thanks to pygbag)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pygame in the browser? Is it possible? What is this revolution? Yes, it can sound incredible, but thanks to Wasm and the fact that it supports SDL2 that by the way is what pygame uses, we got this incredible change to use and make people use pygame, our apps, into the browser, simply giving them the link, not having to install anything. This is one of the most exciting thing of the latest time aroung pygame and python too, among other great news (more speed, python integrated in excel. facebook working to improve python for the future etc.). So, now you can make games that can become viral, it&#8217;s a reason to start learning or improving your pygame skill. Com&#8217;on the time is now and only who starts first can make the difference. Who came later, well&#8230; too late. So this will be the year of pygame videogame invasion. Are you ready? <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"810\" height=\"725\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-9.png\" alt=\"\" class=\"wp-image-13543\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-9.png 810w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-9-320x286.png 320w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/09\/image-9-768x687.png 768w\" sizes=\"auto, (max-width: 810px) 100vw, 810px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/formazione.github.io\/cat\/index.html\">https:\/\/formazione.github.io\/cat\/index.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following code is the one that you can see going to the code above and it&#8217;s always into the repository. If you want to see how to use pygbag to see pygame into the browser and make it playable from the browser by anyone without installing anything read this <a href=\"https:\/\/pythonprogramming.altervista.org\/pygame-in-the-browser-with-pygbag-and-github\/\" data-type=\"post\" data-id=\"12743\">post about pygabag and pygame in the browser<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pythonprogramming.altervista.org\/tag\/browser-pygbag\/\" data-type=\"post_tag\" data-id=\"1065\">browser pygbag<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import pygame\nfrom glob import glob\nimport sys\nfrom pygame.locals import *\n\n\npygame.init()\nWINDOWWIDTH = w = 400\nWINDOWHEIGHT = h = 400\nscreen = pygame.display.set_mode((w, h))\n\n\nclass Sprite(pygame.sprite.Sprite):\n    def __init__(self, x, y):\n        super(Sprite, self).__init__()\n        self.x = x\n        self.y = y\n        self.dogwalking = glob(\"dog\/Walk*.png\")\n        self.dogidling = glob(\"dog\/Idle*.png\")\n        self.load_images()\n\n    def load(self, x):\n        return pygame.image.load(x).convert_alpha()\n\n    def flip(self, x):\n        return pygame.transform.flip(self.load(x), 1, 0)\n\n    def load_images(self):\n        self.list = [self.load(f) for f in self.dogwalking]\n        self.listflip = [self.flip(f) for f in self.dogwalking]\n        self.list_idle = [self.load(f) for f in self.dogidling]\n        self.list_idleflip = [self.flip(f) for f in self.dogidling]\n        self.counter = 0\n        self.image = self.list[0]\n        self.rect = self.image.get_rect()\n        self.dir = \"\"\n        self.prov = \"\"\n        g.add(self)\n\n    def update_counter(self, vel, img_list):\n        self.counter += vel\n        if self.counter >= len(img_list):\n            self.counter = 0\n        self.image = img_list[int(self.counter)]\n\n    def update(self):\n        if moveRight:\n            self.update_counter(.1, self.list)\n            self.prov = self.dir\n\n        if moveLeft:\n            self.update_counter(.1, self.listflip)\n            # self.image = self.listflip[int(self.counter)]\n            self.prov = self.dir\n\n        if self.dir == \"\":\n            self.update_counter(.1, self.list_idle)\n\n            if moveRight:\n                self.image = self.list_idle[int(self.counter)]\n\n            else:\n                self.image = self.list_idleflip[int(self.counter)]\n\n\ng = pygame.sprite.Group()\nplayer = Sprite(100, 100)\nclock = pygame.time.Clock()\n\nmoveLeft = False\nmoveRight = False\nmoveUp = False\nmoveDown = False\n\nMOVESPEED = 1\nwhile True:\n# Check for events.\n    for event in pygame.event.get():\n        if event.type == QUIT:\n            pygame.quit()\n            sys.exit()\n        if event.type == KEYDOWN:\n            # Change the keyboard variables.\n            if event.key == K_LEFT or event.key == K_a:\n                moveRight = False\n                moveLeft = True\n            if event.key == K_RIGHT or event.key == K_d:\n                moveLeft = False\n                moveRight = True\n                player.image = player.list[int(player.counter)]\n            if event.key == K_UP or event.key == K_w:\n                moveDown = False\n                moveUp = True\n            if event.key == K_DOWN or event.key == K_s:\n                moveUp = False\n                moveDown = True\n\n        # KEYUP\n\n        if event.type == KEYUP:\n            player.counter = 0\n            if event.key == K_ESCAPE:\n                pygame.quit()\n                sys.exit()\n            if event.key == K_LEFT or event.key == K_a:\n                moveLeft = False\n            if event.key == K_RIGHT or event.key == K_d:\n                moveRight = False\n            if event.key == K_UP or event.key == K_w:\n                moveUp = False\n            if event.key == K_DOWN or event.key == K_s:\n                moveDown = False\n\n# Draw the white background onto the surface.\n    screen.fill((255, 255, 255))\n\n    # Move the player.\n    if moveDown and player.rect.bottom &lt; WINDOWHEIGHT:\n        player.rect.top += MOVESPEED\n    if moveUp and player.rect.top > 0:\n        player.rect.top -= MOVESPEED\n    if moveLeft and player.rect.left > -35:\n        player.rect.left -= MOVESPEED\n        try:\n            player.counter += .1\n            player.image = pygame.transform.flip(player.list[int(player.counter)], True, False)\n        except:\n            player.counter = 0\n            player.image = pygame.transform.flip(player.list[int(player.counter)], True, False)\n    if moveRight and player.rect.right &lt; WINDOWWIDTH + 35:\n        player.rect.right += MOVESPEED\n        try:\n            player.counter -= .1\n            player.image = player.list[int(player.counter)]\n        except:\n            player.counter = 0\n            player.image = player.list[int(player.counter)]\n\n    # Draw the player onto the surface.\n    g.draw(screen)\n    g.update()\n    # Draw the window onto the screen.\n    pygame.display.update()\n    clock.tick(120)\n\npygame.quit()<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><!-- se vuoi mettere un testo scorrevole\r\n[hoops name=\"typeWriterGen\"]\r\n\r\npoi metti un id diverso per ogni testo nella stessa pagina\r\n\r\n<div id=\"div01\">\r\n<script>\r\n\r\ntypeWriterGen(\"div01\",\"Esempio di testo scorrevole\");\r\n<\/script>\r\n\r\n-->\r\n<style>\r\n.avatar {\r\n  vertical-align: middle;\r\n  width: 100px;\r\n  height: 100px;\r\n  border-radius: 50%;\r\n}\r\n<\/style>\r\n\r\n<hr>\r\n\r\n<!-- NEWSLETTER LINK -->\r\n<a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLSf7TniIPCWHDzCSGh2dYZaCwDvi9yLKS5ovFdKuK1sdfOvwEg\/viewform\">\r\n<img decoding=\"async\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/08\/image-13.png\" class=\"avatar\">\r\nSubscribe to the <b>newsletter<\/b> for updates<\/a><br>\r\n\r\n<!-- TKINTER TEMPLATE LINK -->\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/tkinter-templates\/\">\r\n<img decoding=\"async\" src=\"https:\/\/i0.wp.com\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/07\/image-26.png\" class=\"avatar\">\r\nTkinter templates<\/a><br>\r\n\r\n<!-- MY AVATAR PUT A LINK TO YOUTUBE CHANNEL-->\r\n<iframe loading=\"lazy\" frameborder=\"0\" src=\"https:\/\/itch.io\/embed\/711828\" width=\"552\" height=\"167\"><a href=\"https:\/\/pythonprogrammi.itch.io\/pysnake\">PySnake by PythonProgrammi<\/a><\/iframe>\r\n<br>\r\n<style>\r\n.avatar {\r\n  vertical-align: middle;\r\n  width: 100px;\r\n  height: 100px;\r\n  border-radius: 50%;\r\n}\r\n<\/style>\r\n\r\n\r\n<a href=\"https:\/\/www.youtube.com\/channel\/UCzbxq5e9gLiY-je2-br1rvg\">\r\n\t<img decoding=\"async\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2020\/10\/avatar64x64.png\" alt=\"Avatar\" class=\"avatar\">\r\n\t My youtube channel<\/a><br>\r\n\r\n<br>\r\n\r\nTwitter: <a href=\"https:\/\/twitter.com\/pythonprogrammi\">@pythonprogrammi - python_pygame<\/a>\r\n<h3>Claude's Games<\/h3>\r\n<p><a href=\"https:\/\/pythonprogramming.altervista.org\/random-daily-game-1-arkanoid\/\">Arkanoid<\/a><br>\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/platform-2d-with-pygame-made-with-claude\/\">Platform 2d<\/a><\/p> <!-- videogames made with claude -->\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/artifacts-games-day-1-memory-game\/\">1. Memory game<\/a>\r\n<h4>Videos<\/h4>\r\n<a href=\"https:\/\/youtu.be\/ciLjWWw5pLY\">Speech recognition game<\/a>\r\n<h3>Pygame's Platform Game<\/h3>\r\n\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-5-sounds-and-mixer\/\"><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/pythonprogramming.altervista.org\/wp-content\/uploads\/2020\/01\/climbercover.png?w=557&ssl=1\"\/ width=\"50%\"><\/a>\r\n<script>\r\nvar title = \"Platform Pygame\";\r\n\t\tvar links = [\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-animation-of-a-sprite-v-1-3\/\",\"Animation 1.3\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-sprite-animation-v-2-better-coding-test-it-checking-fps-on-the-screen\/\",\"Animation 1.2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-how-to-display-the-frame-rate-fps-on-the-screen\/\",\"Display Frame rate\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-sprite-animation-update\/\",\"Animation 1.1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platformer-1\/\",\"Pygame Platform Game 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-platform-game-2\/\",\"Pygame Platform 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-3-recap-cheatsheet\/\",\"Pygame PLatform 3 - recap and some Cheat Sheet\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-4-background-and-stuffs\/\",\"Pygame Platform 4 - Background & organizing code\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-5-sounds-and-mixer\/\",\"Pygame Platform 5 - Sounds\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/platform-game-in-detail-part-1\/\",\"Game in detail part 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/map-maker-1-2\/\", \"Map maker 1.2\"]\r\n\t\t];\r\n\t\t<\/script>\r\n<script>\r\n\t\r\nif (typeof next2 != \"undefined\"){let next2 = 0;}\r\n\t\r\nnext2 = 0;\r\n\thtml = \"\";\/\/<b style='color:coral;font-size:1.2em'>Other posts about \" + title + \"<\/b><br>\";\r\nfor (address of links) \r\n{\r\n\r\n\tif (next2 == 1){\r\n\t\thtml += \"<div style='background:coral'>\";\r\n\t\thtml += \"Next link => <a href='\" + address[0] + \"'>\" + address[1] + \"<\/a>\";\r\n\t\thtml += \"<\/div><br>\";\r\n\t\tnext2 = 0;\r\n\t}\r\n\tif (address[0] == document.URL) {\r\n\t\tnext2 = 1;\r\n\t}\r\n}\r\n\r\nif (typeof next != \"undefined\") {let next = 0;}\r\nif (typeof addressStart != \"undefined\") {let addressStart = \"\";}\r\nnext = 0;\r\naddressStart = \"<a href='\";\r\nfor (address of links) {\r\n\tif (next == 1){\r\n\t\thtml += \">>>\" + addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t\tnext = 0;\r\n\t}\r\n\telse if (addressStart + address[0] != document.URL)\r\n\t{\r\n\t\thtml += addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tnext = 1;\r\n\t\tnext_address = address[0]\r\n\t\tnext_title = address[1]\r\n\t\thtml += \"<span style='color:gray'>\" + address[1] + \"<\/span><br>\";\r\n\t}\r\n\r\n}\r\n\r\n\thtml += `<span style=\"font-size:8px\">Powered by <a href=\"https:\/\/pythonprogramming.altervista.org\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2673\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png\" alt=\"\" width=\"70\" height=\"25\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png 156w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2-150x56.png 150w\" sizes=\"auto, (max-width: 70px) 100vw, 70px\" \/>pythonprogramming.altervista.org<\/a><\/span>`\r\n\thtml = \"<div style='background:yellow'>\" + html + \"<\/div>\";\r\n\tdocument.write(html)\r\n<\/script>\r\n\r\n<h3>Other Pygame's posts<\/h3>\r\n\r\n<script>\r\nvar title = \"Pygame's Posts\"\r\nvar links = [\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platformer-1\/\",\"Platform game 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/make-a-platform-game-with-pygame-dafluffypotato\/\",\"DaFluffyPotato Platform Tutorials\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-and-classic-arcade-games-pong\/\",\"Pong Game Full\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-draws-in-colors-app-to-draw-with-pygame\/\",\"PyGameGIF 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-draw-app-with-animation\/\",\"PyGameGIF 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pydraw-2-0-app-to-draw-gif\/\",\"PyDraw 2.0\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-drawing-2\/\",\"Draw with Pygame\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/animation-with-pygame\",\"Sprite animation 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/animation-on-pygame-2-free-characters-and-more-actions\/\",\"Sprite animation 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/starting-with-pygame\/\",\"Starting movements with Pygame\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-3-move-sprite\/\", \"Move a Sprite\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-4-fonts\/\",\"Text and Fonts\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-animate-a-sprite\/\", \"Animate a sprite\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-and-mouse-events\/\",\"Mouse events\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pgp-aka-pygamepresentation-project\/\",\"Pygame presentation\"],\r\n\t[\"https:\/\/pythonprogramming.altervista.org\/moving-the-player-in-pygame-with-key-get_pressed\/\",\"How to use key.get_pressed()\"]\r\n]\r\n<\/script>\r\n\r\n\r\n<script>\r\n\t\r\nif (typeof next2 != \"undefined\"){let next2 = 0;}\r\n\t\r\nnext2 = 0;\r\n\thtml = \"\";\/\/<b style='color:coral;font-size:1.2em'>Other posts about \" + title + \"<\/b><br>\";\r\nfor (address of links) \r\n{\r\n\r\n\tif (next2 == 1){\r\n\t\thtml += \"<div style='background:coral'>\";\r\n\t\thtml += \"Next link => <a href='\" + address[0] + \"'>\" + address[1] + \"<\/a>\";\r\n\t\thtml += \"<\/div><br>\";\r\n\t\tnext2 = 0;\r\n\t}\r\n\tif (address[0] == document.URL) {\r\n\t\tnext2 = 1;\r\n\t}\r\n}\r\n\r\nif (typeof next != \"undefined\") {let next = 0;}\r\nif (typeof addressStart != \"undefined\") {let addressStart = \"\";}\r\nnext = 0;\r\naddressStart = \"<a href='\";\r\nfor (address of links) {\r\n\tif (next == 1){\r\n\t\thtml += \">>>\" + addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t\tnext = 0;\r\n\t}\r\n\telse if (addressStart + address[0] != document.URL)\r\n\t{\r\n\t\thtml += addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tnext = 1;\r\n\t\tnext_address = address[0]\r\n\t\tnext_title = address[1]\r\n\t\thtml += \"<span style='color:gray'>\" + address[1] + \"<\/span><br>\";\r\n\t}\r\n\r\n}\r\n\r\n\thtml += `<span style=\"font-size:8px\">Powered by <a href=\"https:\/\/pythonprogramming.altervista.org\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2673\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png\" alt=\"\" width=\"70\" height=\"25\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png 156w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2-150x56.png 150w\" sizes=\"auto, (max-width: 70px) 100vw, 70px\" \/>pythonprogramming.altervista.org<\/a><\/span>`\r\n\thtml = \"<div style='background:yellow'>\" + html + \"<\/div>\";\r\n\tdocument.write(html)\r\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"For the script of the day we got a walking cat. My code in Internet (thanks to pygbag) Pygame in the browser? Is \n<a class=\"moretag\" href=\"https:\/\/pythonprogramming.altervista.org\/pygame-walking-cat\/\"> [...]<\/a>","protected":false},"author":1,"featured_media":13541,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-13538","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-examples"],"avopt_banners_inside_post":true,"avopt_banners_on_page":true,"av_copy_from":"","av_sharing_message":"","av_sharing_allowed":true,"av_sharing_on":{"fb":[],"tw":[]},"av_allow_affiliate_banner":false,"av_allow_affiliate_multi_banner":false,"av_show_affiliation_buy_button":false,"av_post_rating":true,"av_have_post_rating_value":false,"av_is_artificial_intelligence_content":false,"_links":{"self":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/13538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/comments?post=13538"}],"version-history":[{"count":3,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/13538\/revisions"}],"predecessor-version":[{"id":13546,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/13538\/revisions\/13546"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media\/13541"}],"wp:attachment":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media?parent=13538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/categories?post=13538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/tags?post=13538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}