Xây dựng trò chơi với Python

Python là một ngôn ngữ lập trình nổi tiếng. Python rất dễ hiểu và viết mã. Nó được cho là thân thiện với nhà phát triển. Bất kỳ người mới bắt đầu nào cũng có thể học cách viết mã bằng python trong một khoảng thời gian ngắn

Một số tính năng thú vị nhất của ngôn ngữ này như sau

  • Python là mã nguồn mở và miễn phí
  • Di động và năng động
  • Siêu dễ hiểu, v.v.

Tạo trò chơi dễ dàng bằng Python

Bây giờ, hãy triển khai một số trò chơi đơn giản trong Python mà bạn có thể xây dựng khi mới bắt đầu để bắt đầu quá trình học tập của mình

1. Trò chơi đố vui trong Python

Đây là một trò chơi dựa trên văn bản rất đơn giản trong python. Đây là một bài kiểm tra nhỏ mà bạn có thể làm cho chính mình hoặc bạn bè của mình. Chúng tôi không cần nhập bất kỳ mô-đun nào cho trò chơi này, điều này giúp dễ dàng hơn. Hãy tự mình thử 😉

Đây là sử dụng

  • câu lệnh if-else – Để kiểm tra câu trả lời
  • Tuyên bố in – cho đầu ra in

print['Welcome to AskPython Quiz']
answer=input['Are you ready to play the Quiz ? [yes/no] :']
score=0
total_questions=3

if answer.lower[]=='yes':
    answer=input['Question 1: What is your Favourite programming language?']
    if answer.lower[]=='python':
        score += 1
        print['correct']
    else:
        print['Wrong Answer :[']


    answer=input['Question 2: Do you follow any author on AskPython? ']
    if answer.lower[]=='yes':
        score += 1
        print['correct']
    else:
        print['Wrong Answer :[']

    answer=input['Question 3: What is the name of your favourite website for learning Python?']
    if answer.lower[]=='askpython':
        score += 1
        print['correct']
    else:
        print['Wrong Answer :[']

print['Thankyou for Playing this small quiz game, you attempted',score,"questions correctly!"]
mark=[score/total_questions]*100
print['Marks obtained:',mark]
print['BYE!']

đầu ra

Welcome to AskPython Quiz
Are you ready to play the Quiz ? [yes/no] :yes
Question 1: What is your Favourite programming language?python
correct
Question 2: Do you follow any author on AskPython? yes
correct
Question 3: What is the name of your favourite website for learning Python?askpython
correct
Thankyou for Playing this small quiz game, you attempted 3 questions correctly!
Marks obtained: 100.0
BYE!

2. Trò chơi Pong trong Python

Hầu hết chúng ta đã nghe nói về trò chơi bóng bàn nổi tiếng. Nhiều người trong chúng ta thích chơi nó. Hôm nay hãy cùng tìm hiểu cách viết mã trò chơi cổ điển này bằng ngôn ngữ lập trình python

Trước khi bắt đầu với phần mã hóa, trước tiên chúng ta cần cài đặt mô-đun rùa. Mô-đun con rùa là thư viện Python cho phép người dùng tạo ảnh và hình dạng bằng cách cung cấp cho họ một canvas ảo

Nếu bạn chưa có nó, bạn có thể cài đặt thư viện bằng cách sử dụng pip

C:\Users\Admin>pip install turtle

Đọc thêm về thư viện rùa trong tài liệu chính thức của họ

Tự mình thử mã

import turtle as t
playerAscore=0
playerBscore=0
 
#create a window and declare a variable called window and call the screen[]
window=t.Screen[]
window.title["The Pong Game"]
window.bgcolor["green"]
window.setup[width=800,height=600]
window.tracer[0]
 
#Creating the left paddle
leftpaddle=t.Turtle[]
leftpaddle.speed[0]
leftpaddle.shape["square"]
leftpaddle.color["white"]
leftpaddle.shapesize[stretch_wid=5,stretch_len=1]
leftpaddle.penup[]
leftpaddle.goto[-350,0]
 
#Creating the right paddle
rightpaddle=t.Turtle[]
rightpaddle.speed[0]
rightpaddle.shape["square"]
rightpaddle.color["white"]
rightpaddle.shapesize[stretch_wid=5,stretch_len=1]
rightpaddle.penup[]
rightpaddle.goto[-350,0]
 
#Code for creating the ball
ball=t.Turtle[]
ball.speed[0]
ball.shape["circle"]
ball.color["red"]
ball.penup[]
ball.goto[5,5]
ballxdirection=0.2
ballydirection=0.2
 
#Code for creating pen for scorecard update
pen=t.Turtle[]
pen.speed[0]
pen.color["Blue"]
pen.penup[]
pen.hideturtle[]
pen.goto[0,260]
pen.write["score",align="center",font=['Arial',24,'normal']]
 
#code for moving the leftpaddle
def leftpaddleup[]:
    y=leftpaddle.ycor[]
    y=y+90
    leftpaddle.sety[y]
 
def leftpaddledown[]:
    y=leftpaddle.ycor[]
    y=y+90
    leftpaddle.sety[y]
 
#code for moving the rightpaddle
def rightpaddleup[]:
    y=rightpaddle.ycor[]
    y=y+90
    rightpaddle.sety[y]
 
def rightpaddledown[]:
    y=rightpaddle.ycor[]
    y=y+90
    rightpaddle.sety[y]
 
#Assign keys to play
window.listen[]
window.onkeypress[leftpaddleup,'w']
window.onkeypress[leftpaddledown,'s']
window.onkeypress[rightpaddleup,'Up']
window.onkeypress[rightpaddledown,'Down']
 
while True:
    window.update[]
 
    #moving the ball
    ball.setx[ball.xcor[]+ballxdirection]
    ball.sety[ball.ycor[]+ballxdirection]
 
    #border set up
    if ball.ycor[]>290:
        ball.sety[290]
        ballydirection=ballydirection*-1
    if ball.ycor[] 390:
        ball.goto[0,0]
        ball_dx = ball_dx * -1
        player_a_score = player_a_score + 1
        pen.clear[]
        pen.write["Player A: {}                    Player B: {} ".format[player_a_score,player_b_score],align="center",font=['Monaco',24,"normal"]]
        os.system["afplay wallhit.wav&"]
 
 
 
    if[ball.xcor[]] < -390: # Left width paddle Border
        ball.goto[0,0]
        ball_dx = ball_dx * -1
        player_b_score = player_b_score + 1
        pen.clear[]
        pen.write["Player A: {}                    Player B: {} ".format[player_a_score,player_b_score],align="center",font=['Monaco',24,"normal"]]
        os.system["afplay wallhit.wav&"]
 
     # Handling the collisions with paddles.
 
    if[ball.xcor[] > 340] and [ball.xcor[] < 350] and [ball.ycor[] < rightpaddle.ycor[] + 40 and ball.ycor[] > rightpaddle.ycor[] - 40]:
        ball.setx[340]
        ball_dx = ball_dx * -1
        os.system["afplay paddle.wav&"]
 
    if[ball.xcor[] < -340] and [ball.xcor[] > -350] and [ball.ycor[] < leftpaddle.ycor[] + 40 and ball.ycor[] > leftpaddle.ycor[] - 40]:
        ball.setx[-340]
        ball_dx = ball_dx * -1
        os.system["afplay paddle.wav&"]

đầu ra

trò chơi bóng bàn

3. Trò chơi rắn đói trong Python

Đây là trò chơi yêu thích nhất của chúng tôi khi chúng tôi còn nhỏ. Chúng tôi thực sự có thể viết mã trò chơi này bằng python bằng cách chỉ nhập hai mô-đun. Làm thế nào là mát mẻ đó

Bắt đầu nào

Đầu tiên, chúng ta cần cài đặt rùa. Nếu bạn chưa cài đặt nó, hãy mở cmd của bạn và gõ lệnh sau

C:\Users\Admin>pip install turtle

Bây giờ chúng ta sẽ cài đặt mô-đun ngẫu nhiên. Mô-đun ngẫu nhiên được sử dụng để tạo số ngẫu nhiên. Trong cmd của bạn gõ lệnh sau

C:\Users\Admin>pip install random2

Viết mã và tự mình thử và tận hưởng trò chơi

import turtle
import random

w = 500
h = 500
food_size = 10
delay = 100 

offsets = {
    "up": [0, 20],
    "down": [0, -20],
    "left": [-20, 0],
    "right": [20, 0]
}

def reset[]:
    global snake, snake_dir, food_position, pen
    snake = [[0, 0], [0, 20], [0, 40], [0, 60], [0, 80]]
    snake_dir = "up"
    food_position = get_random_food_position[]
    food.goto[food_position]
    move_snake[]
    
def move_snake[]:
    global snake_dir

    new_head = snake[-1].copy[]
    new_head[0] = snake[-1][0] + offsets[snake_dir][0]
    new_head[1] = snake[-1][1] + offsets[snake_dir][1]

    
    if new_head in snake[:-1]:
        reset[]
    else:
        snake.append[new_head]

    
        if not food_collision[]:
            snake.pop[0]


        if snake[-1][0] > w / 2:
            snake[-1][0] -= w
        elif snake[-1][0] < - w / 2:
            snake[-1][0] += w
        elif snake[-1][1] > h / 2:
            snake[-1][1] -= h
        elif snake[-1][1] < -h / 2:
            snake[-1][1] += h


        pen.clearstamps[]

        
        for segment in snake:
            pen.goto[segment[0], segment[1]]
            pen.stamp[]

        
        screen.update[]

        turtle.ontimer[move_snake, delay]

def food_collision[]:
    global food_position
    if get_distance[snake[-1], food_position] < 20:
        food_position = get_random_food_position[]
        food.goto[food_position]
        return True
    return False

def get_random_food_position[]:
    x = random.randint[- w / 2 + food_size, w / 2 - food_size]
    y = random.randint[- h / 2 + food_size, h / 2 - food_size]
    return [x, y]

def get_distance[pos1, pos2]:
    x1, y1 = pos1
    x2, y2 = pos2
    distance = [[y2 - y1] ** 2 + [x2 - x1] ** 2] ** 0.5
    return distance
def go_up[]:
    global snake_dir
    if snake_dir != "down":
        snake_dir = "up"

def go_right[]:
    global snake_dir
    if snake_dir != "left":
        snake_dir = "right"

def go_down[]:
    global snake_dir
    if snake_dir!= "up":
        snake_dir = "down"

def go_left[]:
    global snake_dir
    if snake_dir != "right":
        snake_dir = "left"


screen = turtle.Screen[]
screen.setup[w, h]
screen.title["Snake"]
screen.bgcolor["blue"]
screen.setup[500, 500]
screen.tracer[0]


pen = turtle.Turtle["square"]
pen.penup[]


food = turtle.Turtle[]
food.shape["square"]
food.color["yellow"]
food.shapesize[food_size / 20]
food.penup[]


screen.listen[]
screen.onkey[go_up, "Up"]
screen.onkey[go_right, "Right"]
screen.onkey[go_down, "Down"]
screen.onkey[go_left, "Left"]


reset[]
turtle.done[]

đầu ra

Phần kết luận

Và đó là nó. Đây là một số trò chơi dễ dàng trong Python mà bạn có thể tạo khi mới bắt đầu và tận hưởng niềm vui. Chúng tôi thích xây dựng những dự án này và chúng tôi hy vọng bạn cũng vậy

Python hay C++ tốt hơn để phát triển trò chơi?

C++ là ngôn ngữ lập trình tốt để phát triển trò chơi vì nó nhanh và hiệu quả. Các nhà phát triển trò chơi sử dụng C++ để tạo các trò chơi có hiệu suất cao và nó cũng có nhiều công cụ sửa lỗi, điều này rất quan trọng đối với việc phát triển trò chơi. Các ngôn ngữ khác, chẳng hạn như Python, được thiết kế để dễ đọc và đơn giản.

Bạn có thể xây dựng trò chơi 3D bằng Python không?

Nếu bạn quan tâm đến việc tìm hiểu cách sử dụng Pygame để tạo trò chơi 3D, hai trang web dành riêng cho Python 3D là Python 3D[py3d. org] và Phần mềm Python 3D . Bạn có thể tìm thấy một số dự án trò chơi 3D có sẵn tại đây. PyWeek là một trang web thách thức lập trình hai năm một lần sản xuất một số trò chơi tuyệt vời.

Python có tốt cho phát triển trò chơi 3D không?

Mặc dù các studio trò chơi lớn sử dụng các ngôn ngữ mang lại tốc độ cao hơn và cho phép đồ họa đẹp hơn, Python có rất nhiều lợi ích khiến ngôn ngữ này trở thành ngôn ngữ đặc biệt hữu ích để phát triển trò chơi.

Chủ Đề