What would you see in your Chrome browser when there is no internet connection? Yes, everybody knows that dinosaur game that comes on screen. So, in this article, we are going to build a simple python bot that plays Chrome Dino Game without user interaction. Here we are not using any machine learning or artificial intelligence to counter this problem but we will use simple image/screen processing.

We will work with Pyautogui and PIL (Python Imaging Library) for implementation. This project is very basic and consists of only about 50 lines of code but its result will make you surprise.
Some libraries used are:
- PIL: Python Imaging Library (PIL) is a free library for the Python programming language that adds support for opening, manipulating, and saving many different image file formats.
- Pyautogui: PyAutoGUI is a Python module for programmatically controlling the mouse and keyboard without any user interaction.
- Time: Python “Time” Module which allows us to handle various operations regarding time, its conversions and representations, which find its use in various applications in life.
- Numpy:NumPy is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays.
Algorithm:
- Click on the restart button using Pyautogui library using “replaybutton” coordinates.
- Calculate the sum of all white pixels values present in the box in front of Dinosaur.
- If the sum of pixels values present at any time in the box becomes less than the sum of white pixels values, it means either “bush” or “bird” is coming. So either we have to make our Dino jump or bend down.
- In order to protect Dino from “Bush”, we make a jump.
- In order to protect Dino from “Bird”, we always keep our Dino down.
Below is the Python implementation:
Python3
from PIL import ImageGrab, ImageOps
import pyautogui
import time
import numpy as np
class coordinates():
replaybutton = ( 360 , 214 )
dinasaur = ( 149 , 239 )
def restartGame():
pyautogui.click(coordinates.replaybutton)
pyautogui.keyDown( 'down' )
def press_space():
pyautogui.keyUp( 'down' )
pyautogui.keyDown( 'space' )
time.sleep( 0.05 )
print ( "jump" )
time.sleep( 0.10 )
pyautogui.keyUp( 'space' )
pyautogui.keyDown( 'down' )
def imageGrab():
box = (coordinates.dinasaur[ 0 ] + 30 , coordinates.dinasaur[ 1 ],
coordinates.dinasaur[ 0 ] + 120 , coordinates.dinasaur[ 1 ] + 2 )
image = ImageGrab.grab(box)
grayImage = ImageOps.grayscale(image)
a = np.array(grayImage.getcolors())
print (a. sum ())
return a. sum ()
restartGame()
while True :
if (imageGrab()! = 435 ):
press_space()
time.sleep( 0.1 )
|
Output :
Improvements : Over a period of time, the Dino Bot Game becomes fast. The Birds and Bushes start coming very fast. So we are not making our Bot to learn all these things, changing its speed based on past learning. So our bot will function for around 2000 score. In order to score more, we have to apply machine learning and artificial intelligence.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
26 Apr, 2023
Like Article
Save Article