Hi, welcome to my personal blog. Hope you could find useful python tricks. Feel free to exchange your valuable ideas with me. I am looking forward to your insightful opinion.
Table of Contents Preparation Introduction Import modules and define contants Create the main game screen Creae the data structure of the board Let's draw the tiles The game logic Define the missing functions Preparation In this tutorial, we are gonna use Python 3.8 and Pygame v1.96. For the installation of Python and Pygame, please follow the documents found on each webiste. Python: https://www.python.org/ Pygame: https://www.pygame.org/ Introduction As you can see from the picture above, we create a board with 15 green tiles and one white tile which represent a empty slot. Our gaol is to place all the 15 green tiles back into its sorted order, namely: A B C D E F G H I J K L M N O If we click on the tile "F", the tile will slide down south. And if all the tiles are back into their sorted order, you won the game and quit the game. That's pretty much the gist of the game, later you could add other features to the game. Import modules and define contatnts impor
First look at the following code: import time # create Font object text_font = pygame . font . SysFont( 'arial' , 50 ) # create a list that stores two pos that going to compare to each other pos_to_compare_list = [] # create a list that stores all the pos that matched pos_matched = [] # set backgroud color to white while True : for event in pygame . event . get(): if event . type == QUIT: pygame . quit() sys . exit() elif event . type == MOUSEBUTTONDOWN: (x,y) = pygame . mouse . get_pos() pos = check_click(x,y, square_pos) if pos: text_surface = text_font . render(board[pos[ 0 ]][pos[ 1 ]], True , WHITE) if len (pos_to_compare_list) < 2 : if pos not in pos_to_compare_list: pos_to_compare_list . append(pos)
1. What is multitasking? So far, we have written so many programs with python. All the instructions inside a program run sequentially one by one. Let's look at an simple example: # multithreading_example01.py # basci program without using threading import time def sing (): for i in range ( 5 ): print ( 'Singing...' ) time . sleep( 1 ) def dance (): for i in range ( 5 ): print ( 'Dancing...' ) time . sleep( 1 ) def main (): # singing a song sing() # dancing dance() if __name__ == '__main__' : main() After running this program, after ten seconds the program exits. But if we want to dance and sing at the same time intead of doing one after another, what we could do with the code? In python, we could use the threading module and run both sing() and dance functions at the same time. Here is how we can do it: # multithreading_example01.py
Comments
Post a Comment