Sáng kiến kinh nghiệm 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
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,.
- 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.
Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm 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
m đã 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. 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 độ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. 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. 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: 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 Rèn kỹ năng nhớ, vận dụng kiến thức Tin học đã học của HS. 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) 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 Hình 2.4. Giới thiệu game Các ống màu xanh luôn di chuyển qua trái Ống nào đi hết qua trái rồi phải có ống mới được tạo ra Các ống có chiều cao ngẫu nhiên Luôn có 2 ống đối diện nhau 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: Bấm phím cách (space) để làm con chim nhảy lên 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 Màn hình sẽ dừng lại khi chim chạm vào ống hoặc rơi Khi chim chạm vào ống hoặc rơi sẽ hện điểm và chữ "Game Over" Người chơi có thể bấm dấu cách (Space) để chơi lại 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 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 Cấu trúc rẽ nhánh if Cú pháp: if : Ví dụ: Ứng dụng trong trò chơi Oắn tù tỳ Cấu trúc rẽ nhánh if else Cú pháp: if : else: Ví dụ: kiểm tra số chẵn lẻ Cú pháp: if điều_kiện_1: đoạn_mã_1 if điều_kiện_2: đoạn_mã_2 Cấu trúc rẽ nhánh lông nhau if elif else đoạn_mã_4 elif điều_kiện_4: đoạn_mã_5 else: đoạn_mã_6 elif điều_kiện_3: đoạn_mã_3 else Ví dụ : Đoạn lệnh game kiểm tra oắn tù tỳ Code game đầy đủ xem bước 8 Câu lệnh lặp for Cú pháp: for in : Ví dụ: for event in pygame.event.get(): print(event) Câu lệnh lặp while Cú pháp: while : Ví dụ: Đoạn lệnh thoát game while game_close == True: dis.fill(white) message("", red) 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 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: 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. Sau khi đặt cược xong, hệ thống sẽ tự động quay và cho ra kết quả. 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. 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 Hình 2.8: Nhóm đồ họa thiết kế phác thảo game snake Di chuyển đầu (di chuyển bằng bằng các phím mũi tên hoặc chuột, di chuyển rắn, di chuyển 4 đường) Di chuyển tự động (di chuyển tự động theo hướng, chắn hướng đi) · · · · · · · Hình 2.9: Nhóm đồ họa thiết kế phác thảo game snake Ăn điểm (vẽ mồi, thức ăn ngẫu nhiên) · Hình 2.10: Nhóm đồ họa thiết kế phác thảo game snake Cắn đuôi/ đâm vào tường Dựng màn hình Hình 2.11: HS lớp 10 biên kịch và thiết kế sơ bộ game snake 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: 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à
File đính kèm:
- sang_kien_kinh_nghiem_su_dung_lap_trinh_game_de_minh_hoa_tro.docx
- TôThịLinh,LêThịVinh-THPTĐặngThaiMai,THPTĐặngThúcHứa-Tinhọc.pdf