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ỘI
TRƯỜ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 Huy Sinh viên thực hiện : Đặng Đình Ân Phúc
-20223804 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
1 Lý do chọn đề tài: 4
2 Chức năng chính: 4
III Nhiệm vụ 4
1 Công việc chính: 4
2 Bảng phân công nhiệm vụ: 4
IV Sơ đồ 5
V Thiết kế chương trình 8
1 Khai báo thư viện 8
2 Thiết kế các viên gạch 8
3 Lệnh các nút di chuyển 9
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ởi Alexey Pajitnov, một kỹ sư phần mềm người Liên Xô Trong trò chơi nà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 nhau rơi từ trên xuống sao cho chúng ghép lại với nhau để tạo thành các hàng ngang hoàn chỉnh Khi một hàng được hoàn thành, nó sẽ biến mất và các khối được đặt trên hàng đó sẽ rơi xuống một bậc Người chơi sẽ được cộng điểm và tiếp tục chơi đến khi các khối không thể rơi xuống nữa hoặc không thể ghép lại với nhau nữa Trò chơi này đã được phát hành bởi nhiều công ty cho nhiều nền tảng khác nhau, phổ biến nhất là trong cuộc tranh chấp về việc sở hữu quyền vào cuối những năm 1980 Sau mộ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 Tetris với Henk Rogers để quản lý việc cấp phép Trò chơi này đã bán được hơn 202 triệu bản trên toàn thế giới, trở thành một trong những thương hiệu trò chơi video bán chạy nhất Trò chơi này đã có sức ảnh hưởng lớn đến văn hóa đại chúng và được coi là một trong những trò chơi video hay 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ách Trạng thái
Chọn đề tài Chọn đề tài trong các
đề tài được gợi ý Cả nhóm Hoàn tất Tì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ện của chương trình cần thực hiện
Cả nhóm Hoàn tất
Làm slide , báo cáo Làm slide và báo cáo
theo yêu cầu của giảng viên
Dương Thị Mỹ Hạnh Hoàn tất
Viết code Viết chương trình C+
+ , sửa lỗi, chạy thử
Đặng Đình Ân Phúc Hoà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ình
1 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ảo
Code tham khảo:
Repository search results (github.com)
Thuật toán tham khảo:
Youtube
Github
Stackoverflow
VII 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 )