Lời mở đầuTetris là một trò chơi video giải đố được tạo ra vào năm 1985 bởiAlexey Pajitnov, một kỹ sư phần mềm người Liên Xô.. Trong trò chơinày, người chơi sẽ phải sắp xếp các khối hình
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘITRƯỜNG ĐIỆN – ĐIỆN TỬ
-BÁO CÁO BÀI TẬP LỚN:
Kỹ thuật lập trình
ĐỀ TÀI: Game TETRIS
Giảng viên hướng dẫn : ThS Hoàng Quang HuySinh viên thực hiện : Đặng Đình Ân Phúc -
Dương Thị Mỹ Hạnh 20223956
Trang 2Mục lục
Lời mở đầu 2
I.Giới thiệu thành viên: 3
II Giới thiệu đề tài: 3
4 Tạo khung giới hạn trò chơi 11
VI Tài liệu tham khảo 11
VII Tổng kết 12
Trang 3Lời mở đầu
Tetris là một trò chơi video giải đố được tạo ra vào năm 1985 bởiAlexey Pajitnov, một kỹ sư phần mềm người Liên Xô Trong trò chơinày, người chơi sẽ phải sắp xếp các khối hình có hình dạng khác nhaurơi từ trên xuống sao cho chúng ghép lại với nhau để tạo thành các hàngngang hoàn chỉnh Khi một hàng được hoàn thành, nó sẽ biến mất và cáckhối được đặt trên hàng đó sẽ rơi xuống một bậc Người chơi sẽ đượccộng điểm và tiếp tục chơi đến khi các khối không thể rơi xuống nữahoặc không thể ghép lại với nhau nữa Trò chơi này đã được phát hànhbởi nhiều công ty cho nhiều nền tảng khác nhau, phổ biến nhất là trongcuộc tranh chấp về việc sở hữu quyền vào cuối những năm 1980 Saumột thời gian xuất bản đáng kể bởi Nintendo, vào năm 1996, quyền sởhữu trò chơi đã trở lại với Pajitnov, người đã thành lập Công ty Tetrisvới Henk Rogers để quản lý việc cấp phép Trò chơi này đã bán đượchơn 202 triệu bản trên toàn thế giới, trở thành một trong những thươnghiệu trò chơi video bán chạy nhất Trò chơi này đã có sức ảnh hưởnglớn đến văn hóa đại chúng và được coi là một trong những trò chơi videohay nhất mọi thời đại Với trò chơi của chúng em sẽ mang tính giải trícao hơn với tính khác biệt trong các lệnh so với game cổ điển
Trang 4I.Giới thiệu thành viên:
1 Đặng Đình Ân Phúc- MSSV: 20223804- STT: 76
- Định hướng: lập trình IoT- Kỹ năng: lập trình C/C++,
2 Dương Thị Mỹ Hạnh- MSSV: 20223956- STT: 36
- Định hướng: lập trình IoT- Kỹ năng: lập trình C/C++
II Giới thiệu đề tài:
Trò chơi có bảy loại khối hình: I (thẳng đứng), J, L, O (vuông), S, T, Z Ta thấy mỗi khối gạch được cấu tạo từ 4 hình vuông nhỏ xếp lại với nhau.
Mục tiêu của trò chơi là di chuyển các khối gạch đang rơi từ từ xuống trong kích thước hình chữ nhật 20 hàng x 10 cột (trên màn hình) Chỗ nào có gạch rồi thì không di chuyển được tới vị trí đó Người chơi xếp những khối hình sao cho khối hình lấp đầy 1 hàng ngang để ghi điểm và hàng ngang ấy sẽ biến mất.
Phím W: Dịch khối lên trên Phím A : di chuyển sang trái Phím D : di chuyển sang phải Phím S : tăng tốc độ rơi Phím E: Xoay viên gạch sang phải Phím Q: Xoay viên gạch sang trái Phím Space: Thả viên gạch thẳng xuống
Trang 51 Lý do chọn đề tài: - Giúp giải trí
- Rèn luyện kỹ năng lập trình C/C++
2 Chức năng chính:- Thay đổi hàng cột
- Thay đổi hướng của viên gạch- Xóa hết hàng khi đầy hàng
- Xóa hết gạch khi chạm vạch giới hạn trên
III Nhiệm vụ
1 Công việc chính:- Tạo thư viện cho game
- Tạo các chức năng xoay chuyển hàng cột - Tạo giao diện sử dụng
2 Bảng phân công nhiệm vụ:
Nhiệm vụMô tảThành viên phụ tráchTrạng thái
Chọn đề tàiChọn đề tài trong các
đề tài được gợi ý Cả nhóm Hoàn tấtTìm hiểu, phân tích công
việc cần làm
Tìm hiểu cấu trúc, chức năng , giao diệncủa chương trình cần thực hiện
Cả nhómHoàn tất
Làm slide , báo cáoLàm slide và báo cáotheo yêu cầu của giảng viên
Dương Thị Mỹ HạnhHoàn tất
Viết codeViết chương trình C++ , sửa lỗi, chạy thử
Đặng Đình Ân PhúcHoàn tất
Trang 6IV Sơ đồ
Sơ đồ chức năng:
Sơ đồ use case:
Trang 7
Sơ đồ hoạt động:
Trang 8Sơ đồ tuần tự:
Trang 9V Thiết kế chương trình1 Khai báo thư viện
#include <iostream> // thư viện chuẩn c++#include <SDL.h> // thư viên đồ họa SDL#include <random> // thư viện ngẫu nhiên#include <vector> // thư viện vecto
#include <chrono> // thư viện tương tác với thời gian thực
2 Thiết kế các viên gạch
Trang 103 Lệnh các nút di chuyển
Trang 124 Tạo khung giới hạn trò chơi
Trang 13VI Tài liệu tham khảoCode tham khảo:
Repository search results (github.com)
Thuật toán tham khảo: Youtube Github StackoverflowVII Tổng kết
Các chức năng của chương trình đã được hoàn thiện.
Bài viết: 20231 ET2031 145502 NHÓM 36 TETRIS – BME HUST Elearning (wordpress.com)
Link code: anphuc0311 / anphuc0311 : game Tetris ( github.com )