Iara  Simões

Iara Simões

1653496939

Cómo crear un programa de dibujo simple con Python y PyGame

Aprenda a crear una herramienta de dibujo simple con la función de cambio de color y tamaño del pincel utilizando la biblioteca PyGame en Python.

En este tutorial, crearemos un programa de dibujo simple en Python usando PyGame

Como siempre, comenzamos con las importaciones. Debido a que usamos PyGame, también debemos tener en cuenta instalarlo primero con el siguiente comando:

$ pip install pygame

También importamos syspara eliminar correctamente el proceso y ctypeshabilitar el reconocimiento de dpi para que nuestra ventana se vea más nítida, es totalmente opcional:

# Imports
import sys
import pygame
import ctypes

# Increas Dots Per inch so it looks sharper
ctypes.windll.shcore.SetProcessDpiAwareness(True)

Configuración Pygame

Seguimos con la pygameconfiguración. Para usar el módulo, tenemos que inicializarlo. Establecemos una fpsvariable que luego se proporcionará al pygame.time.clock.tick()método para restringir la cantidad máxima de fotogramas por segundo.

Después de eso, hacemos el objeto para eso, y luego declaramos el inicio widthy height. Canalizaremos estos valores a la pygame.display.set_mode()función, pero también estableceremos su indicador de modo para pygame.RESIZEABLEque la ventana se pueda cambiar de tamaño en cualquier momento.

Por último, pero no menos importante, importamos un fontpara usar en nuestros botones:

# Pygame Configuration
pygame.init()
fps = 300
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)
font = pygame.font.SysFont('Arial', 20)

Variables

Ahora hacemos algunas variables para usar más tarde. Comenzamos con una lista llamada objectsdonde almacenamos los botones. Luego configuramos el color del pincel inicial en forma RGB.

Después de eso, establecemos la inicial brushSizey cuántos píxeles aumenta o disminuye el pincel cuando presionamos el botón respectivo.

Al final, definimos las dimensiones de nuestro lienzo, y esta es el área donde podremos dibujar:

# Variables
# Our Buttons will append themself to this list
objects = []
# Initial color
drawColor = [0, 0, 0]
# Initial brush size
brushSize = 30
brushSizeSteps = 3
# Drawing Area Size
canvasSize = [800, 800]

Clase de botón

Usamos la clase de botón de este tutorial (siéntete libre de ir y copiar/pegar u obtener el código completo aquí ). Así que insertamos su clase aquí; ya hemos hecho la objectslista, solo tenemos que recorrerla en el ciclo principal, para que aparezcan nuestros botones:

# Button Class
class Button():
    ...

Funciones del controlador

Ahora configuraremos tres funciones para manejar los cambios de color y tamaño del pincel y la solicitud de guardado.

Cambiar el color

La changeColor()función simplemente tomará el color deseado y establecerá la variable global drawColoren este valor.

# Handler Functions
# Changing the Color
def changeColor(color):
    global drawColor
    drawColor = color

Cambiar el tamaño del pincel

La changebrushSize()función tomará el dirargumento para comprobar si el pincel debe hacerse más grande o más pequeño. Si es mayor, se sumará brushSizeStepsa nuestro brushSize. En el resto de los casos sucede lo contrario porque suponemos que el usuario quiere que sea más pequeño.

# Changing the Brush Size
def changebrushSize(dir):
    global brushSize
    if dir == 'greater':
        brushSize += brushSizeSteps
    else:
        brushSize -= brushSizeSteps

Guardar en el disco

Gracias al pygame.imagemódulo, guardar nuestro lienzo es tan fácil como llamar a la pygame.image.save()función con la superficie a guardar y la ruta del archivo:

# Save the surface to the Disk
def save():
    pygame.image.save(canvas, "canvas.png")

Configuración de botones

Seguimos configurando nuestros botones. Primero definimos dos variables que representan el ancho y alto del botón:

# Button Variables.
buttonWidth = 120
buttonHeight = 35

Después de eso, hacemos una lista que consta de más listas donde cada primer elemento es el texto que se muestra y cada segundo elemento es la función a llamar:

# Buttons and their respective functions.
buttons = [
    ['Black', lambda: changeColor([0, 0, 0])],
    ['White', lambda: changeColor([255, 255, 255])],
    ['Blue', lambda: changeColor([0, 0, 255])],
    ['Green', lambda: changeColor([0, 255, 0])],
    ['Brush Larger', lambda: changebrushSize('greater')],
    ['Brush Smaller', lambda: changebrushSize('smaller')],
    ['Save', save],
]

We will now loop over this list and generate buttons. They will all be in a row and have 10-pixel gaps. This won't look pretty, but it will do the work for our little application:

# Making the buttons
for index, buttonName in enumerate(buttons):
    Button(index * (buttonWidth + 10) + 10, 10, buttonWidth,
           buttonHeight, buttonName[0], buttonName[1])

Canvas

Now we use the canvasSize to make a new surface that will serve as the canvas we draw onto. We fill() that surface with white:

# Canvas
canvas = pygame.Surface(canvasSize)
canvas.fill((255, 255, 255))

Main Loop

Now for the exciting part. As usual, we fill() the whole screen with a dark grey, and then we check if the user pressed the red x at the top of the screen so we can stop the program.

We are also looping over our objects list and calling the process() function on each object to draw them.

# Game loop.
while True:
    screen.fill((30, 30, 30))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # Drawing the Buttons
    for object in objects:
        object.process()

Drawing

Before we make the draw function, we blit() the canvas in the center of the screen:

    # Draw the Canvas at the center of the screen
    x, y = screen.get_size()
    screen.blit(canvas, [x/2 - canvasSize[0]/2, y/2 - canvasSize[1]/2])

A continuación, verificamos si el botón izquierdo del mouse se presionó con pygame.mouse.get_pressed()[0]. Luego obtenemos la posición del mouse y calculamos la posición del mouse en el lienzo. Después de eso, tenemos toda la información que necesitamos para dibujar un círculo donde se presionó el mouse. También suministramos esta función con nuestro drawColory nuestro brushSize.

    # Drawing with the mouse
    if pygame.mouse.get_pressed()[0]:
        mx, my = pygame.mouse.get_pos()
        # Calculate Position on the Canvas
        dx = mx - x/2 + canvasSize[0]/2
        dy = my - y/2 + canvasSize[1]/2
        pygame.draw.circle(
            canvas,
            drawColor,
            [dx, dy],
            brushSize,
        )

Al final, también dibujamos un círculo que muestra a los usuarios qué tan grande es el pincel y de qué color es:

    # Reference Dot
    pygame.draw.circle(
        screen,
        drawColor,
        [100, 100],
        brushSize,
    )
    pygame.display.flip()
    fpsClock.tick(fps)

Escaparate

Escaparate del editor de texto

¡Increíble, mira cómo puedes personalizar la herramienta como quieras!

Obtén el código completo aquí .

Fuente del artículo original en https://www.thepythoncode.com

#python #pygame 

What is GEEK

Buddha Community

Cómo crear un programa de dibujo simple con Python y PyGame
Iara  Simões

Iara Simões

1653496939

Cómo crear un programa de dibujo simple con Python y PyGame

Aprenda a crear una herramienta de dibujo simple con la función de cambio de color y tamaño del pincel utilizando la biblioteca PyGame en Python.

En este tutorial, crearemos un programa de dibujo simple en Python usando PyGame

Como siempre, comenzamos con las importaciones. Debido a que usamos PyGame, también debemos tener en cuenta instalarlo primero con el siguiente comando:

$ pip install pygame

También importamos syspara eliminar correctamente el proceso y ctypeshabilitar el reconocimiento de dpi para que nuestra ventana se vea más nítida, es totalmente opcional:

# Imports
import sys
import pygame
import ctypes

# Increas Dots Per inch so it looks sharper
ctypes.windll.shcore.SetProcessDpiAwareness(True)

Configuración Pygame

Seguimos con la pygameconfiguración. Para usar el módulo, tenemos que inicializarlo. Establecemos una fpsvariable que luego se proporcionará al pygame.time.clock.tick()método para restringir la cantidad máxima de fotogramas por segundo.

Después de eso, hacemos el objeto para eso, y luego declaramos el inicio widthy height. Canalizaremos estos valores a la pygame.display.set_mode()función, pero también estableceremos su indicador de modo para pygame.RESIZEABLEque la ventana se pueda cambiar de tamaño en cualquier momento.

Por último, pero no menos importante, importamos un fontpara usar en nuestros botones:

# Pygame Configuration
pygame.init()
fps = 300
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)
font = pygame.font.SysFont('Arial', 20)

Variables

Ahora hacemos algunas variables para usar más tarde. Comenzamos con una lista llamada objectsdonde almacenamos los botones. Luego configuramos el color del pincel inicial en forma RGB.

Después de eso, establecemos la inicial brushSizey cuántos píxeles aumenta o disminuye el pincel cuando presionamos el botón respectivo.

Al final, definimos las dimensiones de nuestro lienzo, y esta es el área donde podremos dibujar:

# Variables
# Our Buttons will append themself to this list
objects = []
# Initial color
drawColor = [0, 0, 0]
# Initial brush size
brushSize = 30
brushSizeSteps = 3
# Drawing Area Size
canvasSize = [800, 800]

Clase de botón

Usamos la clase de botón de este tutorial (siéntete libre de ir y copiar/pegar u obtener el código completo aquí ). Así que insertamos su clase aquí; ya hemos hecho la objectslista, solo tenemos que recorrerla en el ciclo principal, para que aparezcan nuestros botones:

# Button Class
class Button():
    ...

Funciones del controlador

Ahora configuraremos tres funciones para manejar los cambios de color y tamaño del pincel y la solicitud de guardado.

Cambiar el color

La changeColor()función simplemente tomará el color deseado y establecerá la variable global drawColoren este valor.

# Handler Functions
# Changing the Color
def changeColor(color):
    global drawColor
    drawColor = color

Cambiar el tamaño del pincel

La changebrushSize()función tomará el dirargumento para comprobar si el pincel debe hacerse más grande o más pequeño. Si es mayor, se sumará brushSizeStepsa nuestro brushSize. En el resto de los casos sucede lo contrario porque suponemos que el usuario quiere que sea más pequeño.

# Changing the Brush Size
def changebrushSize(dir):
    global brushSize
    if dir == 'greater':
        brushSize += brushSizeSteps
    else:
        brushSize -= brushSizeSteps

Guardar en el disco

Gracias al pygame.imagemódulo, guardar nuestro lienzo es tan fácil como llamar a la pygame.image.save()función con la superficie a guardar y la ruta del archivo:

# Save the surface to the Disk
def save():
    pygame.image.save(canvas, "canvas.png")

Configuración de botones

Seguimos configurando nuestros botones. Primero definimos dos variables que representan el ancho y alto del botón:

# Button Variables.
buttonWidth = 120
buttonHeight = 35

Después de eso, hacemos una lista que consta de más listas donde cada primer elemento es el texto que se muestra y cada segundo elemento es la función a llamar:

# Buttons and their respective functions.
buttons = [
    ['Black', lambda: changeColor([0, 0, 0])],
    ['White', lambda: changeColor([255, 255, 255])],
    ['Blue', lambda: changeColor([0, 0, 255])],
    ['Green', lambda: changeColor([0, 255, 0])],
    ['Brush Larger', lambda: changebrushSize('greater')],
    ['Brush Smaller', lambda: changebrushSize('smaller')],
    ['Save', save],
]

We will now loop over this list and generate buttons. They will all be in a row and have 10-pixel gaps. This won't look pretty, but it will do the work for our little application:

# Making the buttons
for index, buttonName in enumerate(buttons):
    Button(index * (buttonWidth + 10) + 10, 10, buttonWidth,
           buttonHeight, buttonName[0], buttonName[1])

Canvas

Now we use the canvasSize to make a new surface that will serve as the canvas we draw onto. We fill() that surface with white:

# Canvas
canvas = pygame.Surface(canvasSize)
canvas.fill((255, 255, 255))

Main Loop

Now for the exciting part. As usual, we fill() the whole screen with a dark grey, and then we check if the user pressed the red x at the top of the screen so we can stop the program.

We are also looping over our objects list and calling the process() function on each object to draw them.

# Game loop.
while True:
    screen.fill((30, 30, 30))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # Drawing the Buttons
    for object in objects:
        object.process()

Drawing

Before we make the draw function, we blit() the canvas in the center of the screen:

    # Draw the Canvas at the center of the screen
    x, y = screen.get_size()
    screen.blit(canvas, [x/2 - canvasSize[0]/2, y/2 - canvasSize[1]/2])

A continuación, verificamos si el botón izquierdo del mouse se presionó con pygame.mouse.get_pressed()[0]. Luego obtenemos la posición del mouse y calculamos la posición del mouse en el lienzo. Después de eso, tenemos toda la información que necesitamos para dibujar un círculo donde se presionó el mouse. También suministramos esta función con nuestro drawColory nuestro brushSize.

    # Drawing with the mouse
    if pygame.mouse.get_pressed()[0]:
        mx, my = pygame.mouse.get_pos()
        # Calculate Position on the Canvas
        dx = mx - x/2 + canvasSize[0]/2
        dy = my - y/2 + canvasSize[1]/2
        pygame.draw.circle(
            canvas,
            drawColor,
            [dx, dy],
            brushSize,
        )

Al final, también dibujamos un círculo que muestra a los usuarios qué tan grande es el pincel y de qué color es:

    # Reference Dot
    pygame.draw.circle(
        screen,
        drawColor,
        [100, 100],
        brushSize,
    )
    pygame.display.flip()
    fpsClock.tick(fps)

Escaparate

Escaparate del editor de texto

¡Increíble, mira cómo puedes personalizar la herramienta como quieras!

Obtén el código completo aquí .

Fuente del artículo original en https://www.thepythoncode.com

#python #pygame 

Shardul Bhatt

Shardul Bhatt

1626775355

Why use Python for Software Development

No programming language is pretty much as diverse as Python. It enables building cutting edge applications effortlessly. Developers are as yet investigating the full capability of end-to-end Python development services in various areas. 

By areas, we mean FinTech, HealthTech, InsureTech, Cybersecurity, and that's just the beginning. These are New Economy areas, and Python has the ability to serve every one of them. The vast majority of them require massive computational abilities. Python's code is dynamic and powerful - equipped for taking care of the heavy traffic and substantial algorithmic capacities. 

Programming advancement is multidimensional today. Endeavor programming requires an intelligent application with AI and ML capacities. Shopper based applications require information examination to convey a superior client experience. Netflix, Trello, and Amazon are genuine instances of such applications. Python assists with building them effortlessly. 

5 Reasons to Utilize Python for Programming Web Apps 

Python can do such numerous things that developers can't discover enough reasons to admire it. Python application development isn't restricted to web and enterprise applications. It is exceptionally adaptable and superb for a wide range of uses.

Robust frameworks 

Python is known for its tools and frameworks. There's a structure for everything. Django is helpful for building web applications, venture applications, logical applications, and mathematical processing. Flask is another web improvement framework with no conditions. 

Web2Py, CherryPy, and Falcon offer incredible capabilities to customize Python development services. A large portion of them are open-source frameworks that allow quick turn of events. 

Simple to read and compose 

Python has an improved sentence structure - one that is like the English language. New engineers for Python can undoubtedly understand where they stand in the development process. The simplicity of composing allows quick application building. 

The motivation behind building Python, as said by its maker Guido Van Rossum, was to empower even beginner engineers to comprehend the programming language. The simple coding likewise permits developers to roll out speedy improvements without getting confused by pointless subtleties. 

Utilized by the best 

Alright - Python isn't simply one more programming language. It should have something, which is the reason the business giants use it. Furthermore, that too for different purposes. Developers at Google use Python to assemble framework organization systems, parallel information pusher, code audit, testing and QA, and substantially more. Netflix utilizes Python web development services for its recommendation algorithm and media player. 

Massive community support 

Python has a steadily developing community that offers enormous help. From amateurs to specialists, there's everybody. There are a lot of instructional exercises, documentation, and guides accessible for Python web development solutions. 

Today, numerous universities start with Python, adding to the quantity of individuals in the community. Frequently, Python designers team up on various tasks and help each other with algorithmic, utilitarian, and application critical thinking. 

Progressive applications 

Python is the greatest supporter of data science, Machine Learning, and Artificial Intelligence at any enterprise software development company. Its utilization cases in cutting edge applications are the most compelling motivation for its prosperity. Python is the second most well known tool after R for data analytics.

The simplicity of getting sorted out, overseeing, and visualizing information through unique libraries makes it ideal for data based applications. TensorFlow for neural networks and OpenCV for computer vision are two of Python's most well known use cases for Machine learning applications.

Summary

Thinking about the advances in programming and innovation, Python is a YES for an assorted scope of utilizations. Game development, web application development services, GUI advancement, ML and AI improvement, Enterprise and customer applications - every one of them uses Python to its full potential. 

The disadvantages of Python web improvement arrangements are regularly disregarded by developers and organizations because of the advantages it gives. They focus on quality over speed and performance over blunders. That is the reason it's a good idea to utilize Python for building the applications of the future.

#python development services #python development company #python app development #python development #python in web development #python software development

Sival Alethea

Sival Alethea

1624402800

Connect Four Python Game Tutorial with Pygame. DO NOT MISS!!!

Learn how to program Connect Four in Python 3 and pygame. First, see how to store the board state, and build a simple command line interface for dropping pieces. Then see how to write a function to check for wins. Finally, learn to build graphics for your game.
📺 The video in this post was made by freeCodeCamp.org
The origin of the article: https://www.youtube.com/watch?v=XpYz-q1lxu8&list=PLWKjhJtqVAbnqBxcdjVGgT3uVR10bzTEB&index=13
🔥 If you’re a beginner. I believe the article below will be useful to you ☞ What You Should Know Before Investing in Cryptocurrency - For Beginner
⭐ ⭐ ⭐The project is of interest to the community. Join to Get free ‘GEEK coin’ (GEEKCASH coin)!
☞ **-----CLICK HERE-----**⭐ ⭐ ⭐
Thanks for visiting and watching! Please don’t forget to leave a like, comment and share!

#python #pygame #python game tutorial #python game tutorial with pygame #connect #connect four python game tutorial with pygame

Art  Lind

Art Lind

1602968400

Python Tricks Every Developer Should Know

Python is awesome, it’s one of the easiest languages with simple and intuitive syntax but wait, have you ever thought that there might ways to write your python code simpler?

In this tutorial, you’re going to learn a variety of Python tricks that you can use to write your Python code in a more readable and efficient way like a pro.

Let’s get started

Swapping value in Python

Instead of creating a temporary variable to hold the value of the one while swapping, you can do this instead

>>> FirstName = "kalebu"
>>> LastName = "Jordan"
>>> FirstName, LastName = LastName, FirstName 
>>> print(FirstName, LastName)
('Jordan', 'kalebu')

#python #python-programming #python3 #python-tutorials #learn-python #python-tips #python-skills #python-development

Art  Lind

Art Lind

1602666000

How to Remove all Duplicate Files on your Drive via Python

Today you’re going to learn how to use Python programming in a way that can ultimately save a lot of space on your drive by removing all the duplicates.

Intro

In many situations you may find yourself having duplicates files on your disk and but when it comes to tracking and checking them manually it can tedious.

Heres a solution

Instead of tracking throughout your disk to see if there is a duplicate, you can automate the process using coding, by writing a program to recursively track through the disk and remove all the found duplicates and that’s what this article is about.

But How do we do it?

If we were to read the whole file and then compare it to the rest of the files recursively through the given directory it will take a very long time, then how do we do it?

The answer is hashing, with hashing can generate a given string of letters and numbers which act as the identity of a given file and if we find any other file with the same identity we gonna delete it.

There’s a variety of hashing algorithms out there such as

  • md5
  • sha1
  • sha224, sha256, sha384 and sha512

#python-programming #python-tutorials #learn-python #python-project #python3 #python #python-skills #python-tips