1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11

44 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sử Dụng Lập Trình Game Để Minh Họa Trò Chơi Đơn Giản Tạo Hứng Thú Cho Học Sinh Học Môn Tin 11
Tác giả Tô Thị Linh, Lê Thị Vinh
Trường học Trường THPT Đặng Thai Mai
Chuyên ngành Tin học
Thể loại tiểu luận
Năm xuất bản 2022
Thành phố Nghệ An
Định dạng
Số trang 44
Dung lượng 2,28 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN TRƯỜNG THPT ĐẶNG THAI MAI TRƯỜNG THPT ĐẶNG THÚC HỨA SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11 Lĩnh vự

Trang 1

ĐỀ TÀI:

SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN

TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11

Tháng 4, năm 2022

Trang 2

SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN TRƯỜNG THPT ĐẶNG THAI MAI TRƯỜNG THPT ĐẶNG THÚC HỨA

SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN

TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11 Lĩnh vực: Tin học

Nhóm tác giả:

1 Tô Thị Linh – Trường THPT Đặng Thai Mai

2 Lê Thị Vinh – Trường THPT Đặng Thúc Hứa Điện thoại: 0369.530.798 – 0363.063.491

Tháng 4, năm 2022

Trang 3

PHỤ LỤC

PHẦN I ĐẶT VẤN ĐỀ 5

PHẦN II NỘI DUNG NGHIÊN CỨU 6

2.1 Mục đích nghiên cứu 6

2.2 Nhiệm vụ nghiên cứu 6

2.3 Phương pháp nghiên cứu 6

2.3.1 Nghiên cứu lý thuyết (Cơ sở khoa học) 6

2.3.3 Các ngôn ngữ lập trình game được sử dụng phổ biến nhất hiện nay 8

2.3.4 Ưu và nhược điểm của các ngôn ngữ lập trình 9

2.3.5 Lập trình game sử dụng ngôn ngữ Python 13

2.3.6 Một số game được lập trình bằng python 14

2.4 Thực nghiệm 15

2.4.1 Quy trình xây dựng tạo game chú chim bay lượn Flappy Bird 15

2.4.2 Quy trình xây dựng và thiết kế trò chơi rắn săn mồi Snaker 22

2.4.3 Quy trình xây dựng đấm giấy kéo Rock Paper Scissors 31

2.5 Kết quả thực nghiệm 38

PHẦN III KẾT LUẬN VÀ KIẾN NGHỊ 41

3.1 Quy trình nghiên cứu 41

3.2 Ý nghĩa của đề tài: 41

3.3 Đề xuất: 42

DANH MỤC CÁC TÀI LIỆU THAM KHẢO 44

Trang 5

PHẦN I ĐẶT VẤN ĐỀ

Với sự phát triển của công nghệ, học sinh càng có nhiều cơ hội trong các hoạt động giải trí, trong đó các trò chơi thường có sức hấp dẫn lạ kỳ đối với lứa tuổi học sinh, trò chơi điện tử trở thành tâm điểm chú ý của mọi thế hệ trẻ, độ tuổi ham học hỏi thích sự sáng tạo, tìm tòi, khám phá cao Nhiều người thường nghĩ chơi game

là một hình thức giải trí vô bổ, tiêu tốn thời gian và ảnh hưởng tiêu cực tới sức khỏe Tuy nhiên, xét về khía cạnh khoa học, chơi game một cách hợp lý có thể giúp bạn xả stress, kích thích phát triển trí não, phát triển kỹ năng giải quyết vấn đề

Chúng tôi công tác và giảng dạy cũng hơn 12 năm, nhận thấy khi học lập trình học sinh thường không thích thú với môn Tin học, với nhiều lí do như: Khó hiểu, khô khan, đòi hỏi tư duy nhiều, các thuật ngữ bằng tiếng anh và nội dung liên quan đến toán học cũng là vấn đề đó, khó khăn làm cho HS học lập trình trở nên không hứng thú,… Do đó để học tốt đòi hỏi học sinh phải có hứng thú, đặc biệt với học sinh giỏi môn Tin học cần có sự đam mê, tìm tòi, yêu thích, học hỏi mới có thể gắn

bó, theo học lâu dài môn học lập trình

Cùng với các môn học khác trong nhà trường, Tin học là môn ứng dụng và khoa học thực nghiệm với phương pháp nghiên cứu chủ yếu là lý thuyết gắn với thực hành Vì vậy trong giờ dạy Tin học nếu GV không tìm cách tổ chức hay minh họa một giờ dạy học sao cho hợp lý, sinh động, hấp dẫn thì rất khó lôi cuốn học sinh, giờ học sẽ tẻ nhạt, khô khan

Để giờ dạy - học Tin học đạt kết quả tốt hơn, gây được hứng thú học tập và phát huy được tính tích cực của học sinh, GV cần phải thường xuyên đổi mới phương pháp dạy học và hình thức tổ chức các hoạt động dạy học Một trong những hình thức dạy học đem lại hiệu quả cao là kết hợp tổ chức/ giới thiệu các trò chơi trong giờ dạy Tin học

Từ những lý do trên chúng tôi mạnh dạn đề xuất đề tài “Sử dụng lập trình game để minh hoạ trò chơi đơn giản tạo hứng thú cho học sinh học môn tin 11”

Muốn giới thiệu kinh nghiệm bản thân trong việc tạo hứng thú cho học sinh học lập trình, một khi đã có hứng thú kết hợp với phương pháp, công cụ lập trình Python, tạo ra các game đơn giản minh hoạ cho học sinh trong quá trình học chắc chắn các em sẽ yêu thích lập trình và học tốt môn này

Trang 6

PHẦN II NỘI DUNG NGHIÊN CỨU 2.1 Mục đích nghiên cứu

- Hướng dẫn quy trình thiết kế game, xây dựng và mô phỏng các trò chơi đơn giản trong dạy học lập trình câu lệnh rẽ nhánh và cấu trúc lặp trong chương trình THPT môn Tin học

- Rèn tư duy nhanh nhạy, kỹ năng quan sát, phân tích tổng hợp, khái quát hóa kiến thức, phát triển năng khiếu và óc phán đoán của học sinh

- Thực hiện và vận dụng được yêu cầu đổi mới phương pháp dạy học hiện nay

GV đóng vai trò là người tổ chức, hướng dẫn, điều khiển hoạt động của HS còn học sinh

là đối tượng tham gia trực tiếp, linh hoạt, chủ động, sáng tạo trong các hoạt động học tập của mình tạo ra tính tò mò, không khí phấn khởi, hào hứng trong giờ học

2.2 Nhiệm vụ nghiên cứu

- Xác định cơ sở lý luận của các câu lệnh trong ngôn ngữ lập trình Python

- Một số ngôn ngữ lập trình game mạnh nhất hiện nay

- Phương pháp thiết kế và lập trình game ứng dụng câu lệnh của Python

- Tiến hành thống kê chất lượng dạy học và thi HSG của học sinh và áp dụng dạy học thực nghiệm từ đó rút ra được hiệu quả và kết luận việc áp dụng minh họa game trong dạy học Tin học

2.3 Phương pháp nghiên cứu

2.3.1 Nghiên cứu lý thuyết (Cơ sở khoa học)

 Giới thiệu về game

Game là một trò chơi sử dụng các thiết bị điện tử để tạo ra một hệ thống tương tác mà người chơi có thể chơi Về cơ bản game là 1 vòng lặp vô hạn với các chức năng sau:

- Hiển thị: Đã là game thì hiển thị không thể thiếu, lúc đầu chỉ làm cho phần

hiển thị thật đơn giản, đừng quá chú tâm vào việc làm sao cho thật đẹp, chỉ làm tượng trưng thôi, khi nào game hoàn thiện cơ bản thì hãy chú tâm đến phần đẹp, việc đầu tiên là game phải chạy được đã

- Nhận lệnh từ người chơi, điều khiển: Khi đã hiển thị được các phần của

game ra màn hình thì tiếp theo việc cần làm là điều khiển, việc điều khiển được xem là phần khó nhất và quan trọng nhất của game, ở bước này muốn game của mình hay, hấp dẫn thì việc ứng dụng các kiến thức toán học, vật lí, là không thể thiếu Ví dụ: ứng dụng tốc độ rơi tự do trong game khủng long lúc rớt mạng mà các bạn vẫn quen thuộc, phương trình chuyển động của các nhân vật trong game,

Trang 7

- Xử lí: Đây là 1 bước để tăng thêm độ hấp dẫn các game lập trình, phần này sẽ

thiết lập 1 số các chức năng, vật phẩm (item), xử lí các trường hợp có thể xảy ra,

- Win, lose: lập trình game về cơ bản là 1 vòng lặp vô hạn, để xử lí việc thắng

hay thua game thì chỉ việc thoát vòng lặp game và thực hiện các chức năng khác

 Tìm hiểu về lập trình game

- Lập trình game là xây dựng, thiết kế và phát triển game phục vụ người chơi

Nó là công việc phát triển và tạo ra tất cả các khía cạnh sáng tạo của game (trò chơi điện tử) trên nhiều nền tảng như máy tính, điện thoại di động,…nhằm tạo ra code để làm mọi hoạt động trong trò chơi Trực tiếp nhận tương tác từ bên ngoài bằng những phím điều khiển và gamepad đến hiển thị màn hình

Các ngôn ngữ có thể sử dụng để lập trình game là: Python, C, C++, C#, Java,

- Các công việc cụ thể của lập trình game

 Viết ra ý tưởng, xây dựng câu chuyện cho trò chơi, đưa ra nhân vật và các tính cách trong game

 Lên kịch bản chi tiết cho các tình huống trong game

 Xác định cách thức game sẽ hoạt động, lên kế hoạch về các cấp độ game

 Thiết kế bố cục của trò chơi, thiết kế tạo hình nhân vật và bối cảnh game (phối hợp với designer)

 Lập trình bằng cách tạo mã, chỉnh sửa mã, kết hợp tính nghệ thuật vào trò chơi, tối ưu truy cập trực tuyến và tạo danh mục (menu) cho trò chơi Game Developer cũng có thể thực hiện nhiệm vụ kiểm tra game dưới vai trò của một GM (Game master) Nhiệm vụ của họ là kiểm tra và khắc phục sự cố chức năng của trò chơi mà họ đang xây dựng Họ có thể tự phát hiện ra các lỗi hoặc được người chơi thông báo và sửa chúng

2.3.2 Cơ sở thực tiễn

Hội nhập kinh tế quốc tế đòi hỏi về mặt con người khá toàn diện, ngoài trình

độ chuyên môn đòi hỏi người Việt Nam còn phải sử dụng thành thạo máy vi tính, cập nhật công nghệ thông tin, nói thông viết thạo một số ngoại ngữ… Hiện nay một số bộ phận thanh thiếu niên có dấu hiệu thờ ơ và thiếu nghiêm túc trong việc học Tin học và cập nhật công nghệ thông tin dẫn đến trong quá trình phát triển kém, trong quan hệ cộng đồng khó khăn, thiếu niềm tin trong cuộc sống, ý chí hội nhập phát triển kém, không còn tính tự chủ dễ bị tụt hậu so với xã hội

Những năm gần đây Tin học được đưa vào trường trung học phổ thông trong phạm vi cả nước, là môn học bắt buộc Khi mới làm quen với Tin học các em tỏ ra rất hào hứng vì đây là một môn học khá mới mẻ, hiện đại và mang tính thực tế cao Tuy nhiên sau một thời gian khi kiến thức đã khó hơn, nhất là kiến thức về lập trình thì học sinh lại có thái độ thờ ơ trong học tập cũng như vận dụng Tin học vào

Trang 8

thực tế Đặc biệt đối với học sinh trung học phổ thông thường chỉ chú tâm và nổ lực học tập các môn khối để ôn thi trung học phổ thông quốc gia nên vai trò của môn Tin học trong các em rất mờ nhạt Bên cạnh đó, cơ sở vật chất phục vụ cho việc giảng dạy cho môn Tin ở các trường đang còn chưa đáp ứng, đặc biệt là phòng máy thực hành cho học sinh Các em đang còn phải ngồi rất chật chội, thậm chí 3-4 học sinh/ 1 máy tính.Vì vậy, để tạo hứng thú, sự yêu thích, đam mê học Tin học cho học sinh là một vấn đề rất khó khăn

2.3.3 Các ngôn ngữ lập trình game được sử dụng phổ biến nhất hiện nay

Game là một nền công nghiệp hot nhất hiện nay với rất nhiều tựa game và thể loại game Để lập trình game cũng có rất nhiều ngôn ngữ lập trình nhưng phổ biến

và mạnh nhất hiện nay gồm Python, C++, C#, Java, JavaScript, Objective-C, Lua,…tuy nhiên vì đề tài có hạn nên chúng tối chỉ giới thiệu một số loại sau

Ngôn ngữ lập trình C#

C# là ngôn ngữ hướng đối tượng Ngôn ngữ này nếu chưa học căn bản thì có thể rất khó với các học sinh, sinh viên Nếu đã học C, C++ rồi thì học C# dễ chứ không đến nối khó Nhưng khi học được ngôn ngữ này thì sẽ được một mũi tên trúng 3 đích hơn cả C++ bao gồm website, app, và game Nếu dùng C# làm Ngôn Ngữ Lập Trình Game thì có những Engine sau đây hỗ trợ nó:

 Unity: hỗ trợ rất tốt không có điểm yếu

 Godot: Support vẫn khá còn yếu

 CryEngine: Đây là Engine được built từ c++ và nó hỗ trợ C#, Lua

 WaveEngine: Đây là Engine mà được tạo ra dựa trên C# cho phép bạn tạo game đa nên tảng

Các game nổi tiếng lập trình bằng C#: lag Pokemon Go và Super Mario Run

 Ngôn ngữ lập trình Python

Được tạo ra vào năm 1991 bởi một người đàn ông tên là Guido van Rossum, Python là ngôn ngữ lập trình có mục đích chung (general-purpose programming), nhấn mạnh tính năng hàng đầu của nó là dễ đọc

Ngay từ những ngày đầu phát triển, Python đã được sử dụng đơn giản nhất có thể Sự đơn giản thực sự là những gì nó được biết đến - Python sử dụng một lượng khoảng trắng dồi dào để làm cho mã code dễ đọc, do đó giúp cho việc trải nghiệm, học tập đơn giản và dễ chịu hơn

Python đây thật sự là 1 Ngôn Ngữ Lập Trình Game dễ hơn các ngôn ngữ lập trình khác Python được ứng dụng trong game tương đối đa số là Engine game Python cũng được đánh giá khá cao trên bảng xếp hạng Với Engine hỗ trợ thì có:

Trang 9

- Godot Engine: luôn hỗ trợ như C# – Unity Ngôn ngữ riêng của Engine này

sử dụng GDScript dựa trên Python và Lua Hầu hết là Python, Lua chiếm khá là ít Support 2D & 2.5D & 3D

- Cocos2D Engine: Support giống Godot

- Panda3D: tương tự C## (3D)

- Pygame: làm game ổn định

Với cấu trúc đơn giản, không quá chú trọng về cú pháp mà tập trung vào sức sáng tạo chức năng câu lệnh của người viết nên Python rất phù hợp với người mới bắt đầu học lập trình Các trò chơi phổ biến bao gồm: Snake rắn săn mồi, Tetris, Space Invader, Sudoku, Tom Clancy’s Politika hoặc Roboforge, Disney’s Toontown Online,

Ngôn ngữ lập trình C++

Ngày nay, hầu hết các game “chuyên nghiệp” được viết trên nền tảng C++ (game engine) C++ là một ngôn ngữ "hướng đối tượng" Lập trình hướng đối tượng (OOP) là một chủ đề rất rộng vượt ra ngoài phạm vi của đề tài này, C++ là nơi tất cả các hành động có thể thực hiện và xử lý được tổ chức thành một danh sách lớn gọi là các "hàm", lập trình hướng đối tượng cung cấp một cách để cấu trúc tất cả những hành động và quá trình thành một hệ thống các"classes" với các dữ liệu và các hàm liên quan chặt chẽ với nhau

C++ được dùng để tạo ra rất nhiều game như caro nổi tiếng trên thế giới như World of Warcraft, Diablo series, StarCraft series, Doom 3, Team Fortress 2, Counter-Strike, Warcraft III, Football Pro, Master of Orion III… Và tất nhiên cũng

có rất nhiều engine game sử dụng C++ để phát triển như Unreal Engine, Coscos2dx framework,

Tuy nhiên với đề tài có hạn, chúng tôi chỉ giới thiệu một số game phổ biến phù hợp với lứa tuổi học sinh và liên quan đến câu lệnh và cấu trúc lặp đơn giản,

dễ học, dễ nhớ

2.3.4 Ưu và nhược điểm của các ngôn ngữ lập trình

Để tìm ngôn ngữ phù hợp cho các bạn học sinh ta tìm ưu điểm và nhược điểm của các ngôn ngữ lập trình này nhé

 Python với C++

Ưu điểm:

- C++ tạo đồ họa lõi cứng và các game nặng, hiệu năng tức tốc độ nhanh hơn, phát triển trò chơi chiếm ưu thế, linh hoạt hơn C++ cũng có thể học máy nhưng không tốt bằng

- Python có cú pháp đơn giản hơn, mã code dễ đọc, phù hợp với người mới bắt đầu dễ học dễ hiểu, python coi phần cuối là của dòng là phần cuối của câu lệnh

Trang 10

Python là ngôn ngữ hàng đầu về phân tích dữ liệu và học máy

- Phát triển trò chơi thì python phù hợp cho người mới bắt đầu như HS, còn C++ phù hợp cho chuyên nghiệp hơn dành cho chuyên da

 Nhược điểm:

- C++ Cú pháp phức tạp đòi hỏi phải suy ngấm ở chỗ C, C++ đều sử dụng dấu ngoặc nhọn và dấu chấm phẩy, còn Python sử dụng sự thụt lề Một tính năng khác quan trong của python nó là ngôn ngữ được dịch.C++ dành cho những người

có kinh nghiệm nó nhanh hơn và tích hợp với framewwork.net trên nền tảng microshoft word

- Python thường chậm hơn do giải mã code

Ví dụ: đoạn code in ra lời chào “xin chao Hoan”

 Ưu điểm của Python so với C#

- Python có nhiều lợi thế hơn trong việc phát triển dự án, chẳng hạn như tốc độ tương đối nhanh và dễ dàng hơn Còn C# cần nhiều bước build và biên dịch không cần thiết

- Đối lập với C# vốn dĩ chỉ nằm trong vũ trụ Microsoft (mãi đến năm 2017 mới thực sự trở thành ngôn ngữ mã nguồn mở), thì Python lại có tất cả những điều đó

và trở nên nổi tiếng với người dùng chỉ sau vài ngày ra mắt Bên cạnh đó, Python cũng có cộng đồng lập trình viên lớn hơn rất nhiều so với C#, với số lượng người đóng góp lớn thứ 3 trên Github trong khi với C# lại chỉ đứng thứ 8

- Không giống với C# dựa trên 100% concept OOP, thì Python còn hỗ trợ thêm nhiều mô hình lập trình khác nữa như (lập trình thủ tục, lập trình hàm, v.v…)

- Có thể được tích hợp với các ngôn ngữ khác Java (JVM), NET, C và cả Javascript trong khi C# chỉ có thể được hỗ trợ trên framework NET (và với mình thì đây là nhược điểm lớn nhất mà C# có) cũng như những nền tảng khác sử dụng module của bên thứ ba đến từ Package Python Index (PyPI)

- Cú pháp của Python khá đơn giản và không đòi hỏi ở một người mới quá nhiều thời gian để làm quen, trong khi đối với C# thì bạn không thể viết ra một

Trang 11

chương trình mà chẳng biết gì về việc biên dịch, namespace, class hay các phương thức của nó, v.v…

- Khi phát triển game engines thì C# có thể nhanh, nhưng tốc độ của nó lại không thể đánh bại được tốc độ phát triển siêu xịn xò đến từ Python

- Sở hữu kho thư viện package khổng lồ và đa dạng hơn, rất nhiều code

- Ứng dụng C# vào machine learning, nhưng điều đó có vẻ khá khó khăn so với việc dùng Python

 Nhược điểm của Python so với C#

- Python có một nhược điểm khá lớn khi lập trình so với C#, đó là bởi chính cơ chế Global Interpreter Lock (GIL) của mình nên việc sử dụng đa luồng đòi hỏi đa tiến trình Trong khi với C# thì chuyện này dễ như ăn cháo nhờ sử dụng NET framework

- Nhờ có sự hỗ trợ của framework Common Language Infrastructure mà C# có thể chạy nhanh và có hiệu suất cao hơn so với Python gấp 44 lần Có thể C# khiến bạn mất khá nhiều thời gian cho việc viết code nhưng lại giúp bạn trải nghiệm tốt hơn khi chạy ứng dụng

Ví dụ: in ra dòng “ Xin chao Hoan”

Thực hiện trên C# Thực hiện trên Python

Trang 12

Bảng 2.1 Bảng so sánh xếp hạng thế giới về các NNLT tháng 4/2022

Chú giải: Rank: thứ hạng; change: thay đổi; share: chia sẻ; trend: xu hướng

Biểu đồ cho thấy sự phổ biến của Python đang tăng lên nhanh chóng

Trang 13

Từ các phân tích trên, các bạn sẽ có thể hiểu hơn về ưu và nhược điểm của Python so với C# và C++ cũng như tìm ra câu trả lời phù hợp cho việc tìm ngôn ngữ nào để học cho các dự án sắp tới và công việc của mình

Cũng chính vì những ưu và nhược điểm như thế mà chúng tôi đã chọn ngôn ngữ lập trình python để giới thiệu lập trình và tạo các game đơn giản minh họa cho HS trong đề tài này

2.3.5 Lập trình game sử dụng ngôn ngữ Python

 Lập trình game bằng Python là sử dụng NNLT Python để sáng tạo nên

những game trực tuyến thú vị của riêng bạn Có nhiều NNLT được sử dụng cho việc sáng tạo game như C++, Java, Lua, Python, C#… Trong số đó Python được

số đông lựa chọn bởi những ưu điểm riêng của nó

Ngôn ngữ lập trình Python là một loại ngôn ngữ cao cấp, với đặc điểm nổi bật nhất đó là cấu trúc đơn giản, không quá chú trọng về cú pháp mà tập trung vào sức sáng tạo chức năng câu lệnh của người viết Python cho phép lập trình viên di chuyển giữa các máy, hỗ trợ nhúng Và đặc biệt khi sử dụng Python vào công việc sáng tạo game, lập trình viên được hỗ trợ bởi phần mềm Pygame rất hữu ích

Python được khuyến khích sử dụng đối với người mới bắt đầu bước và nghề lập trình, không chỉ sáng tạo ra trò chơi mà còn ứng dụng vào thiết kế phần mềm, xây dựng website, ứng dụng trên các thiết bị điện tử…

Hình 2.1 Giao diện ngôn ngữ lập trình Python

Trong ngôn ngữ Python có nhiều câu lệnh, cấu trúc lặp, hàm,… thường sử dụng trong lập trình game như câu lệnh if, cấu trúc lặp for, while, là một trong những câu lệnh, cấu trúc cơ bản trong lập trình hướng đối tượng Tuy nhiên trước một bài toán lập trình Tin học có các câu lệnh điều kiện nhiều, thao tác lặp đi lặp lại nhiều học sinh thường lúng túng, không biết nên lựa chọn và sử dụng câu lệnh rẽ nhánh, hay lặp nào cho phù hợp với yêu cầu bài toán và tối ưu hóa thuật toán? Một số học sinh khá, giỏi có thể sử dụng cấu trúc lặp để mô tả nhưng đa số chưa biết tối ưu hóa thuật toán để giảm số lần lặp và điều đó gây tâm lý chán nản cho các em Với

Trang 14

tình hình ấy để giúp HS có kĩ năng tốt hơn trong việc sử dụng cấu trúc lặp để mô tả thuật toán, thì giáo viên cần tăng cường rèn luyện cho học sinh kĩ năng sử dụng cấu trúc lặp từ các các bài toán cơ bản quen thuộc mà các em đã biết, khai thác các yếu tố đặc trưng của một số bài toán cơ bản để tìm thuật toán cho các bài toán mới, dựa vào đặc điểm cụ thể của từng bài toán để tối ưu hóa thuật toán Việc rèn luyện

kĩ năng lập trình cho học sinh từ những bài toán cơ bản hoặc các bài toán trò chơi

từ các bài toán cơ bản đó là một quá trình giúp học sinh rèn luyện kỹ năng lập trình

và gây hứng thú cho các em

2.3.6 Một số game được lập trình bằng python

 Game Snake (Con rắn săn mồi)

Snake là một trò chơi vui nhộn cổ điển, trong đó bạn có được một con rắn trên một hộp lưới bảng Bạn cho nó ăn, và mỗi lần con rắn của bạn ăn, nó sẽ dài ra một đoạn Tránh những viên thuốc độc hoặc bất kỳ chướng ngại vật nào có thể giết chết nó Giới hạn các bức tường ranh giới của bạn hoặc sử dụng chúng làm kích thước, như trong điện thoại di động Nokia Một trò chơi thú vị mà bạn có thể thực hiện bằng cách sử dụng mã Python

Phát triển trò chơi Snake trong Python rất đơn giản Và mọi thứ còn trở nên

dễ dàng hơn với thư viện Pygame Sử dụng kiến thức cơ bản Snake của bạn để tạo màn hình, rắn, thức ăn và chức năng tăng chiều dài Cuối cùng, hiển thị thông báo Game Over khi con rắn va chạm vào phần cơ thể của nó

 Flappy Bird (Chú chim vỗ cánh)

Flappy bird là một trò chơi điện tử trên điện thoại do Nguyễn Hà Đông, một lập trình viên ở Hà Nội, Việt Nam phát triển nổi tiếng khắp thế giới năm 2013, đưa lên App Store và Play Store đầu 2014, dù mang phong cách game thập niên 90 (có

vẻ lỗi thời) nhưng lại làm mưa làm gió trong giới lập trình và được hành triệu lượt tải về toàn thế giới, trở thành trò chơi kinh điển Về cơ bản, bạn có thể thấy rằng hầu hết mọi nhà phát triển Python đều từng làm trò chơi này Cách chơi khá đơn giản, người dùng phải liên tục nhấn vào màn hình để điều khiển chú chim vượt qua các chướng ngại vật là những ống cống màu xanh Trò chơi kết thúc khi chú chim chạm vào chướng ngại vật và người dùng sẽ được tính 1 điểm nếu vượt qua một ống cống

Vì vậy, trò chơi này dựa trên cơ bản hai khái niệm mà chúng tôi phải tập trung vào khi phát triển Đầu tiên, một trong những đường ống xuất hiện ngẫu nhiên (đối tượng cản trở) Mô-đun ngẫu nhiên có thể xử lý điều này và thứ hai là giao diện người dùng đồ họa có sẵn thư viện Pygame Phần còn lại của phần mã hóa phụ thuộc vào cách người lập trình sử dụng và hoàn thành dự án này

 Rock – paper – scissor (Oẳn tù tì)

Oẳn tù tì thực sự không phải là một trò chơi điện tử Nó đúng hơn là một cách để quyết định ai sẽ đi trước Người chơi thường sử dụng điều này trong hành

Trang 15

động vật lý để tung trước khi chơi một trò chơi vật lý Vì vậy, nếu bạn đã quen thuộc với trò chơi này và mọi thứ hoạt động ở đó May mắn thay, bạn có thể tạo điều này bằng cách sử dụng python và đó là một trong những dự án dễ dàng hơn

mà bạn có thể tiếp tục

Dự án Oẳn tù tì thuộc dự án đơn giản Trong 60 dòng mã, bạn có thể hoàn thành nó ở mức tối thiểu Để bắt đầu xây dựng, trước tiên hãy nhập một mô-đun ngẫu nhiên để tạo các số ngẫu nhiên, sử dụng ba số 0,1,2 Liên kết chúng tương ứng với đá, giấy, kéo trong khi điều này được thực hiện Phần lớn trò chơi sẽ kết thúc Sử dụng vòng lặp while để lặp lại trò chơi nếu người dùng muốn và các biến

để thực hiện chức năng THẮNG, THUA và các mục tiêu quan trọng khác

2.4 Thực nghiệm

Lập trình tạo ra ứng dụng, một số trò chơi đơn giản, quen thuộc, đa số học

sinh cũng đã biết như: Rock-paper-scissors “Oẳn tù tỳ”, Flappy Bird - "Chú chim bay lượn", Snake “rắn săn mồi”, sử dụng các trò chơi để minh hoạ cho học

sinh trong quá trình giảng dạy, các bài học giới thiệu về ngôn ngữ lập trình, câu lệnh rẽ nhánh, câu lệnh lặp

2.4.1 Quy trình xây dựng tạo game chú chim bay lượn Flappy Bird

Giáo viên xác định các nhóm chơi, số người trong nhóm, các đồ dùng, dụng

cụ cần thiết như: bút màu, giấy trắng, thước, nam châm ghim giấy lên bảng,…

Chú ý: Năng lực của học sinh trong nhóm chơi phải phù hợp với nhiệm vụ của nhóm đó

Mục tiêu:

o Củng cố khắc sâu kiến thức của bài học, của chương từ đó giáo dục ý thức, thái độ của học sinh qua bài dạy Tin học

o Rèn kỹ năng nhớ, vận dụng kiến thức Tin học đã học của HS

o Phát triển tư duy lành mạnh, sáng tạo của HS

Nhóm 1: Biên kịch (tương đương ví trí công việc Game Designer)

Nhiệm vụ: Viết ra ý tưởng, xây dựng câu chuyện cho trò chơi, đưa ra nhân vật và các tính cách trong game

Bước 0: Ổn định tổ chức: Để tập trung sự chú ý cho cả lớp (sau khi học một nội dung nào đó hoặc đã học xong kiến thức trọng tâm của bài)

Bước 1: Lên kịch bản cho các ống (vật cản đường)

Trang 16

Hình 2.2 Nhóm đồ họa đang thiết kế mô hình game

Hình 2.3 Nhóm đồ họa đang trình bày mô hình game

Trang 17

Hình 2.4 Giới thiệu game

o Các ống màu xanh luôn di chuyển qua trái

o Ống nào đi hết qua trái rồi phải có ống mới được tạo ra

Trang 18

o Các ống có chiều cao ngẫu nhiên

o Luôn có 2 ống đối diện nhau

o Khoảng cách giữa ống trên và ống dưới không đổi

Hình 2.5 Hình vẽ các cột chướng ngại vật minh họa game flappybird của nhóm đồ họa

Bước 2: Vẽ con chim

Đây thực chất là 1 ô vuông hoặc chèn ảnh con chim vào, nó di chuyển lên xuống, vì ống luôn đi sang trái nên có cảm giác như con chim đang di chuyển Thực chất là con chim chỉ đứng im và biết nhảy và rơi (xem hình 2.4)

Mục tiêu:

o Bấm phím cách (space) để làm con chim nhảy lên

o Làm chim rơi tự do (tốc độ rơi tăng dần theo thời gian)

Bước 3: Tính điểm

Ta sẽ tính điểm, khi chim đi qua 1 ống thì điểm được +1

Nghe có vẻ đơn giản, tuy nhiên, bạn không thể chỉ xét xem khi nào ống ở bên trái con chim Nếu làm vậy thì điểm cứ tăng liên tục khi chim đi qua ống

Ta cần xét xem khi nào chim đi qua ống rồi, và quan trọng là, nếu đã đi qua rồi thì đánh dấu là đi qua rồi và không tính điểm cho ống đó nữa

Bước 4: Dừng màn hình

o Màn hình sẽ dừng lại khi chim chạm vào ống hoặc rơi

o Khi chim chạm vào ống hoặc rơi sẽ hện điểm và chữ "Game Over"

o Người chơi có thể bấm dấu cách (Space) để chơi lại

Trang 19

Cái số 3 cần tinh tế một tí vì nút Space vừa dùng để nhảy vừa dùng để chơi lại khi đã chạm vào ống hoặc rơi

Bước 5: Dùng hình thật

Ở bước 5, ta sẽ thay hình nền và hình còn chim

Cực kì đơn giản, ta cần lấy hình vẽ hoặc download ảnh trên mạng, từ assets nghĩa là các thứ mà game đó sử dụng, như là âm thành, hình vẽ, màu sắc, font chữ Đối với ảnh, nó được hiểu như 1 hình chữ nhật mà thôi, ta sẽ load ảnh bằng đường dẫn, sau đó chỉnh kích thước ảnh nếu cần và thay hình mình vẽ bằng ảnh

Nhóm 2: Đạo diễn (tương đương ví trí công việc manager)

Nhiệm vụ: Phân công các nhóm làm việc, lên kịch bản chi tiết cho các tình huống trong game, xác định cách thức game sẽ hoạt động, lên kế hoạch về các cấp độ game

Nhóm 3: Đồ họa (tương đương ví trí công việc Game Artist)

Nhiệm vụ: Thiết kế bố cục của trò chơi, thiết kế tạo hình nhân vật và bối cảnh game

Nhóm 4: Tìm hiểu một số câu lệnh Python và ứng dụng trong lập trình game

(Game Developer):

Hình 2.6: Giáo viên giảng phần câu lệnh rẽ nhánh if

Nhiệm vụ: tìm hiểu và lập trình bằng cách tạo mã, chỉnh sửa mã, kết hợp tính nghệ

thuật vào trò chơi, tối ưu truy cập trực tuyến và tạo danh mục (menu) cho trò chơi Game Developer cũng có thể thực hiện nhiệm vụ kiểm tra game dưới vai trò của

Trang 20

một GM (Game master) Nhiệm vụ của họ là kiểm tra và khắc phục sự cố chức năng của trò chơi mà họ đang xây dựng Họ có thể tự phát hiện ra các lỗi hoặc được người chơi thông báo và sửa chúng

Nhóm 5: Kiểm thử (Game Tester)

Nhiệm vụ: phát hiện, báo cáo lỗi, thường không đòi hỏi chuyên môn cao, chỉ cần tỉ mỉ, kiên nhẫn

Tùy từng bài toán (trò chơi) ta sử dụng cầu lệnh rẽ nhánh hay lặp hoặc vừa lặp vừa rẽ nhánh,…Sau đây là một số câu lệnh, cấu trúc thường sử dụng

Trang 21

Ví dụ : Đoạn lệnh game kiểm tra oắn tù tỳ

Code game đầy đủ xem bước 8

Ví dụ: Đoạn lệnh thoát game

while game_close == True:

dis.fill(white)

message("", red)

Trang 22

pygame.display.update()

Nhóm 5: Kiểm thử (Game Tester): Chày thử và báo cáo cho nhóm 1,2,3,4

2.4.2 Quy trình xây dựng và thiết kế trò chơi rắn săn mồi Snaker

Các nhóm và nhiệm vụ tương tự mục 2.4.1

Nhóm 1: Biên kịch luật chơi

Game oẳn tù tì online cũng tương tự như oẳn tù tì truyền thống, cụ thể như sau:

o Bắt đầu ván chơi, bạn chỉ cần đặt cược vào một trong 3 cửa: Kéo, Dao, Búa làm sao để có thể thắng được máy Lưu ý, mỗi cửa cược sẽ có tỷ lệ trả thưởng khác nhau

o Sau khi đặt cược xong, hệ thống sẽ tự động quay và cho ra kết quả

o Nếu người chơi thắng máy thì sẽ được ăn thưởng theo tỷ lệ mà máy đã đưa ra Nếu thua sẽ mất số điểm đặt cược ban đầu còn nếu hòa sẽ được hoàn lại điểm cược

o Thông thường tỷ lệ trả thưởng game Oẳn tù tì ở các máy online thường là 1:2, gấp đôi số điểm đặt cược lúc đầu

Nhóm 2: Đạo diễn phân công theo dõi các nhóm làm nhiệm vụ

Nhóm 3: Đồ họa thực hiện vẽ bản thảo trò chơi

Các bước phác họa game:

Bước 1: Chuẩn bị (dụng cụ bút màu, giấy, thước, …)

Bước 2: Vẽ hình

 Vẽ bản đồ (lưới ô vuông)

Hình 2.7: Nhóm đồ họa thiết kế phác thảo game snake

 Nơi tọa độ các con rắn sẽ di chuyển, ăn mồi

Ngày đăng: 03/07/2022, 17:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3]. Barack Obama, https://kenh14.vn/, ngày 03/09/2015 Link
[4]. Tự học lập trình game, https://topdev.vn/blog/tu-hoc-lap-trinh-game [5]. Wikipedia, snake, flappy bird, Rock-paper-scissors Link
[6]. Tú Trần, https://viblo.asia/, 2/2021 [7]. Engine game, idgol.com, 2/2022 [8]. PYPL, Worldwide, Apr 2022 Link
[1]. Hồ Sỹ Đàm, Phạm Thị Thanh Nam, Nguyễn Thị Thanh Xuân, Sách giáo khoa tin học tin học 11, Nhà xuất bản Giáo dục – Bộ Giáo dục và Đào tạo, 2008 Khác
[2]. Hồ Sỹ Đàm, Sách lập trình python cơ bản, Nhà xuất bản Giáo dục – Bộ Giáo dục và Đào tạo, 2021 Khác

HÌNH ẢNH LIÊN QUAN

BẢNG CHỮ VIẾT TẮT - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
BẢNG CHỮ VIẾT TẮT (Trang 4)
phương, cùng vị trí cân bằng với li độ được biểu diễn như hình vẽ. Khoảng cách giữa hai vật tại thời điểm t 1,125slà : - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
ph ương, cùng vị trí cân bằng với li độ được biểu diễn như hình vẽ. Khoảng cách giữa hai vật tại thời điểm t 1,125slà : (Trang 7)
Bảng 2.1. Bảng so sánh xếp hạng thế giới về các NNLT tháng 4/2022 - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Bảng 2.1. Bảng so sánh xếp hạng thế giới về các NNLT tháng 4/2022 (Trang 12)
Hình 2.2. Nhóm đồ họa đang thiết kế mô hình game - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.2. Nhóm đồ họa đang thiết kế mô hình game (Trang 16)
Hình 2.3. Nhóm đồ họa đang trình bày mô hình game - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.3. Nhóm đồ họa đang trình bày mô hình game (Trang 16)
Hình 2.4. Giới thiệu game - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.4. Giới thiệu game (Trang 17)
Hình 2.5. Hình vẽ các cột chướng ngại vật minh họa game flappybird của nhóm đồ họa - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.5. Hình vẽ các cột chướng ngại vật minh họa game flappybird của nhóm đồ họa (Trang 18)
Bước 5: Dùng hình thật - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
c 5: Dùng hình thật (Trang 19)
2.4.2. Quy trình xây dựng và thiết kế trò chơi rắn săn mồi Snaker - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
2.4.2. Quy trình xây dựng và thiết kế trò chơi rắn săn mồi Snaker (Trang 22)
Hình 2.9: Nhóm đồ họa thiết kế phác thảo game snake - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.9 Nhóm đồ họa thiết kế phác thảo game snake (Trang 23)
Hình 2.8: Nhóm đồ họa thiết kế phác thảo game snake - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.8 Nhóm đồ họa thiết kế phác thảo game snake (Trang 23)
 Dựng màn hình - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
ng màn hình (Trang 24)
Hình 2.12. Con mồi màu xanh da trời đã được thêm vào - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.12. Con mồi màu xanh da trời đã được thêm vào (Trang 27)
Hình 2.13. Rắn đầm vào tường/thân bị thua - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.13. Rắn đầm vào tường/thân bị thua (Trang 31)
Hình 2.14: Học sinh say mê tìm hiểu cách tạo ra 1 game - (SKKN MỚI NHẤT) SỬ DỤNG LẬP TRÌNH GAME ĐỂ MINH HỌA TRÒ CHƠI ĐƠN GIẢN TẠO HỨNG THÚ CHO HỌC SINH HỌC MÔN TIN 11
Hình 2.14 Học sinh say mê tìm hiểu cách tạo ra 1 game (Trang 32)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w