Top doanh nghiệp đã đăng ký cho nhân viên

Khóa học này dành cho?

Những người mới bắt đầu học lập trình
Những người muốn bắt đầu vào con đường Phân tích dữ liệu
Sinh viên ngành CNTT muốn học một ngôn ngữ lập trình mới

Bạn sẽ học được gì?

Xây dựng được những kỹ năng lập trình python đầu tiên.
Hiểu được cú pháp và cách thức lập trình hướng đối tượng với python
Sử dụng được gói pygame để lập trình một game
Tự tay lập trình một game đơn giản.

Khoá học này sẽ có:

Video

4h 15m giờ học

Article

0 bài viết chuyên môn

Material

1 tài liệu đính kèm

Exam questions

0 đề thi ghi nhớ kiến thức

Nội dung khoá học

3 Chương . 22 bài giảng . 4h 15m giờ học

Mở rộng tất cả các phần

Giới thiệu và cài đặt

3 bài giảng • 19 phút

Mô tả khoá học

- Cách cài đặt python và pygame. Python ở đây sẽ sử dụng gói phần mềm Anaconda. Anaconda là nền tảng mã nguồn mở về Khoa học dữ liệu trên Python thông dụng nhất hiện nay. Khi cài đặt Anaconda, bạn sẽ được cài mặc định Spyder. Đây là 1 trong những IDE (môi trường tích hợp dùng để phát triển phần mềm) rất tốt cho data science. 

- Cơ bản về ngôn ngữ lập trình python. Bao gồm: variable, collection, control flow, function và class. Chúng ta sẽ thảo luận về các biến và các phép toán. Collection là các kiểu dữ liệu như mảng, tuple, dictionary, … Sau đó, control flow  là các câu lệnh rẽ nhánh và các vòng lặp. Sau cùng đó là những chủ đề về hàm, các lớp và đối tượng. Đó cũng là chủ đề chính trong việc lập trình game, giúp game tạo ra trở nên hướng đối tượng.

- Trong khóa học, bạn không học những lý thuyết suông mà ứng dụng ngay những gì đã học để tự mình lập trình một game đơn giản (game kiểu băng qua đường) từ số không. Bạn sẽ học được làm thế nào để thiết lập màn hình game, làm thế nào để đưa các đối tượng lên màn hình, làm thế nào để thực hiện một vòng lặp game. Đồng thời cũng học cách điều khiển việc di chuyển các đối tượng và kiểm tra sự va chạm của các đối tượng trong game.

- Cuối cùng, thông qua khóa học, bạn sẽ hoàn thành được một game. Thông qua dự án cụ thể như vậy, bạn sẽ nắm vững hơn về ngôn ngữ lập trình python, vững hơn về cách sử dụng các biến, hàm, các cú pháp, các câu lệnh và thậm chí là các khái niệm và cách lập trình hướng đối tượng trong python.

Giảng viên:

Đinh Nguyễn Trọng Nghĩa
  • 4.5 điểm đánh giá

  • 6 đánh giá

  • 773 học viên

  • 10 khóa học

Xin chào, Tôi là Trọng Nghĩa. Tôi thích viết code và cũng thích giúp mọi người viết được code. Tôi đã có hơn 10 năm kinh nghiệm lập trình và giảng dạy. Hiện đang giảng dạy tại bộ môn Khoa học dữ liệu và Trí tuệ nhân tạo.

Tôi có thể hỗ trợ các bạn về các vấn đề liên quan đến AI, Data Science và Full-stack Web developer, với các ngôn ngữ lập trình như python, JavaScript, PHP, C#, java, cùng với các thư viện để thực hiện công việc như Flask, Django, React, Nodejs, …

Hy vọng được kết nối với các bạn ❤️❤️❤️

Học viên cũng mua

Phân tích dữ liệu với lập trình Python
49 bài giảng
4.91
1,524
499,000 đ
799,000 đ
Phân tích dữ liệu với lập trình Python
Khóa học gửi email tự động bằng Google Apps Script từ A-Z
11 bài giảng
5
941
99,000 đ
299,000 đ
Khóa học gửi email tự động bằng Google Apps Script từ A-Z
Làm chủ công cụ Microsoft Access từ A–Z
53 bài giảng
0
111
499,000 đ
799,000 đ
Làm chủ công cụ Microsoft Access từ A–Z
Lập trình C# cơ bản cho Excel
25 bài giảng
4
103
399,000 đ
799,000 đ
Lập trình C# cơ bản cho Excel
Làm chủ Python trong 4 tuần
103 bài giảng
4.75
87
499,000 đ
799,000 đ
Làm chủ Python trong 4 tuần

Hỏi đáp khóa học

0 thảo luận

Thảo luận về bài học

20 thảo luận

Nhan Thị Kim Ngọc

Nhan Thị Kim Ngọc

Chào Thầy

Thầy cho hỏi bài của e bị sai chổ nào mà NV người chơi ko có chạy lên chạy xuống, còn khi click vào màn hình lên xuống thì chương trình bị treo lun

còn Quan_Thu_0 thì vẫn chạy bt ạ

Nhờ Thầy kiểm tra hướng dẫn giúp.

Cảm ơn,

 

 

Nhan Thị Kim Ngọc

Nhan Thị Kim Ngọc

# -*- coding: utf-8 -*-
"""
Created on Wed Feb 11 11:00:58 2026

@author: Ngoc.NhanThiKim
"""
"""
#------------------------------------
Pygame 5

Cài đặt các lớp của game
Cài đặt lớp đối tượng chung cho game
#------------------------------------

#------------------------------------
# Phần 7:
   Cài đặt các lớp của game
   CÀi dặt lớp Quân Thủ và kiểm tra biên
   
#------------------------------------
"""

import pygame  #thư viện chứa các hàm, lớp

#------------------------------------
#1. Thiết lập màn hình game
#------------------------------------

#KO NÊN CHỌN QUÁ 1000 VÌ ĐỘ PHÂN GIẢI MÀN HÌNH

# ĐỘ PHÂN GIẢI MÀN HÌNH
CHIEU_RONG_MAN_HINH = 600
CHIEU_CAO_MAN_HINH  = 600

#MÀN SẮC CỦA MÀN HÌNH:
MAU_TRANG = (255,255,255)
MAU_DEN   = (0,0,0)
TIEU_DE_MAN_HINH = 'Crossy Game '


#thiết lập biến đồng hồ
dong_ho = pygame.time.Clock()


#Định nghĩa lớp Trò chơi
class TroChoi:
   toc_do_bam_gio = 60  #tuong duongongw FPS = 60
   
   #biến kiểm tra thoát khỏi game
   game_over = False
   
   def __init__(self,tieu_de, chieu_rong, chieu_cao):
       self.tieu_de = tieu_de
       self.chieu_rong = chieu_rong
       self.chieu_cao = chieu_cao
       
       self.man_hinh_game = pygame.display.set_mode((chieu_rong,chieu_cao))
       self.man_hinh_game.fill(MAU_TRANG) # Tô màn hình game = màu trắng
       pygame.display.set_caption(tieu_de)

   def chay_vong_lap_game(self):
       game_over = False
       chieu = 0
       
       #Tạo nhân vật ng chơi:
       nhan_vat_nguoi_choi = NhanVatNguoiChoi('Hinh_it_1.jpg', 300, 500, 50, 50)
       quan_thu_0 = QuanThu('Hinh_Canh.jpg',20, 300, 50, 50)

       #vòng lặp game    
       while not game_over:
           
           #Lây tất cả sự kiện
           for su_kien in pygame.event.get():
           
               #Nếu sự kiệm phát sinh là thoát
               if su_kien.type == pygame.QUIT:
                   game_over=True
               
               # kiểm tra mũi tên lên (âm), mũi tên xuống (duong)
               elif su_kien.type ==pygame.KEYDOWN:
                   if su_kien.key == pygame.K_Up:
                       chieu = 1
                   elif su_kien.key == pygame.K_DOWN:
                       chieu = -1
               elif su_kien.type == pygame.KEYUP:
                   if su_kien.key == pygame.K_UP or su_kien.key == pygame.K_DOWN:
                       chieu = 0 #nv ko di chuyển
                       

               #In ra sự kiện         
               print('Sự kiện : ', su_kien)
           
           #di chuyển
           nhan_vat_nguoi_choi.di_chuyen(chieu,self.chieu_cao)
           quan_thu_0.di_chuyen(self.chieu_rong)
           
           #tô màu màn hình
           self.man_hinh_game.fill(MAU_TRANG)
           #vẽ
           nhan_vat_nguoi_choi.ve(self.man_hinh_game)
           quan_thu_0.ve(self.man_hinh_game)
                       
           
           #Kết xuất hình ảnh ra màn hình
           
           # Cập nhật, thực hiện kết xuất hình ảnh        
           pygame.display.update()
           # bám giờ đê qua vòng lặp kế tiêp
           dong_ho.tick(self.toc_do_bam_gio)
                       
#######################
# phần 5 : tiếp theo

class DoiTuongGame:
   def __init__(self,duong_dan_hinh_anh,x,y,chieu_rong,chieu_cao):
       self.vitri_x = x
       self.vitri_y = y
       self.chieu_rong = chieu_rong 
       self.chieu_cao = chieu_cao
    
       
       #load hình ảnh
       hinh_doi_tuong = pygame.image.load(duong_dan_hinh_anh)
       
       #thay đổi hình ảnh 
       self.hinh_anh = pygame.transform.scale(hinh_doi_tuong, (chieu_rong,chieu_cao))
       
   def ve(self,nen):
       nen.blit(self.hinh_anh,(self.vitri_x,self.vitri_y))

#phan 6
class NhanVatNguoiChoi(DoiTuongGame):
   TOC_DO = 10
   
   def __init__(self,duong_dan_hinh_anh,x,y,chieu_rong,chieu_cao):
       super().__init__(duong_dan_hinh_anh,x,y,chieu_rong,chieu_cao)
   
   #Phương thức di chuyển    
   def di_chuyen(self, chieu,chieu_cao_man_hinh):
       # chỉ di chuyển lên xuống, ko di chuyển trái, phải 
       # tăng y: đi lên, giãm y: đi xuống
       # x= ko thay đổi
       if chieu > 0: #đi lên
           self.vitri_y -= self.TOC_DO
       elif chieu <0:  #đi xuống
           self.vitri_y += self.TOC_DO
           
       #kiểm tra chiều cao màn hình
       if self.vitri_y  >= chieu_cao_man_hinh - 70: #cộng thêm kich thước quân thù
          self.vitri_y =   chieu_cao_man_hinh - 70 #dừng tại vị trí cạnh biên    

#phan 7
class QuanThu(DoiTuongGame):
   toc_do = 10
   
   def __init__(self,duong_dan_hinh_anh,x,y,chieu_rong,chieu_cao):
       super().__init__(duong_dan_hinh_anh,x,y,chieu_rong,chieu_cao)
   
   #Phương thức di chuyển  - di chuyển ngang  
   def di_chuyen(self, chieu_rong_man_hinh):
       # chỉ di chuyển ngang
       # ko nên để sát tường quá
       if self.vitri_x <= 20:
           #di chuyển từ trái qua phải
           self.toc_do = abs(self.toc_do)
       elif self.vitri_x >= chieu_rong_man_hinh -70:
            self.toc_do =-abs(self.toc_do)   
       self.vitri_x += self.toc_do
       
           
                      
                      
#######################    
#Khởi tạo pygame
pygame.init()

#Tạo đối tượng Trò chơi

tro_choi = TroChoi(TIEU_DE_MAN_HINH, CHIEU_RONG_MAN_HINH, CHIEU_CAO_MAN_HINH)

#Chạy chương trình : gọi phương thức
tro_choi.chay_vong_lap_game()

# thóa khỏi pygame và chương trình    
pygame.quit()

 

 

   
 


   

 

Nhan Thị Kim Ngọc

Nhan Thị Kim Ngọc

Chào Thầy,

hôm nay mở lại file hôm trước đang thực hành thì chạy báo lỗi, nhờ thầy hd giúp ạ.

Cảm ơn

**************

Python 3.12.11 | packaged by conda-forge | (main, Jun  4 2025, 14:29:09) [MSC v.1943 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 9.10.0 -- An enhanced Interactive Python. Type '?' for help.

%runfile D:/Data/Hoc/106_Gitiho/106_10_Python_Game/106_10_04_ThucHanh/Game_Bang_Qua_Duong_Phan_6.py --wdir
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
 

File d:\data\hoc\106_gitiho\106_10_python_game\106_10_04_thuchanh\game_bang_qua_duong_phan_6.py:16
     2 """
     3 Created on Wed Feb 11 11:00:58 2026
     4 
     5 @author: Ngoc.NhanThiKim
     6 """
     7 """
     8 #------------------------------------
     9 Pygame 5
  (...)     13 #------------------------------------
    14 """
---> 16 import pygame  #thư viện chứa các hàm, lớp 
    18 #------------------------------------
    19 #1. Thiết lập màn hình game
    20 #------------------------------------
  (...)     23 
    24 # ĐỘ PHÂN GIẢI MÀN HÌNH
    25 CHIEU_RONG_MAN_HINH = 600

ModuleNotFoundError: No module named 'pygame'

Important
It seems you're trying to use a module that doesn't come with our installer. Check this FAQ in our docs to learn how to do this.

Đinh Nguyễn Trọng Nghĩa

Đinh Nguyễn Trọng Nghĩa [Giảng viên]

ModuleNotFoundError: No module named 'pygame'

Đây là thông báo pygame chưa được cài thành công. Bạn thử cài lại xem sao nhé.

Nhan Thị Kim Ngọc

Nhan Thị Kim Ngọc

Chào Thầy,

Sau khi cài Python xong, e cài pygame ko đc, 

Nhờ thầy kiểm tra giúp 

Cảm ơn

Đinh Nguyễn Trọng Nghĩa

Đinh Nguyễn Trọng Nghĩa [Giảng viên]

Tôi đã kiểm tra, nguyên nhân là khi cài Python mình chưa chọn thêm Python vào PATH, nên máy không nhận lệnh pip trong Command Prompt.

Bạn làm theo một trong hai cách sau nhé:

  1. Gỡ và Cài lại. Khi cài nhớ chọn tùy chọn PATH (trong video có lưu ý bước này)
  2. Thêm thủ công

Click phải Vào This PC → Properties → Advanced system settings

Chọn Environment Variables

Ở mục System variables → Path → Edit

Thêm 2 dòng (đúng theo thư mục Anaconda trên máy), ví dụ:

  • C:\Users\Admin\anaconda3
  • C:\Users\Admin\anaconda3\Scripts

Đóng CMD, mở lại rồi chạy:

  • pip install pygame

Chúc bạn thành công

 

Nhan Thị Kim Ngọc

Nhan Thị Kim Ngọc

Chào thầy,

Cho hỏi là trên máy tính của e mở ra ko giống giao diện như trong video, vậy tải chổ nào ạ

Nhờ thầy hướng dẫn giúp.

Cảm ơn

Đinh Nguyễn Trọng Nghĩa

Đinh Nguyễn Trọng Nghĩa [Giảng viên]

Chào bạn, Bạn download phiên bản Distribution nhé.

https://repo.anaconda.com/archive/Anaconda3-2025.12-1-Windows-x86_64.exe

 

Nguyen Thi Thuy Hong

Nguyen Thi Thuy Hong

cái anaconda mới nó ko có invidual edition thì mình chọn j

 

Đinh Nguyễn Trọng Nghĩa

Đinh Nguyễn Trọng Nghĩa [Giảng viên]

Chào bạn,

Bạn có thể vào trang này: https://www.anaconda.com/download/success

Sau đó download phiên bản Anaconda Distribution

 

499,000đ
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông