Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 24

Ngôn ngữ lập

trình Java
Lập trình game Tetris
Nhóm 08
• Mở đầu
1.1. LÝ DO CHỌN ĐỀ TÀI

• Hiện nay, ứng dụng của công nghệ thông tin đã được áp dụng trong mọi lĩnh vực của đời sống cũng như
trong các lĩnh vực quản lý xã hội khác. Một trong những lĩnh vực dành được sự quan tâm rất lớn là lĩnh
vực giải trí, mà một trong số đó là Game. Game vừa là một cách giúp chúng ta giải trí, rèn luyện khả
năng tư duy, đầu óc nhạy bén. Ngoài ra Game còn giúp con người nâng cao sự tập trung, rèn luyện sự
kiên trì, khả năng xử lý tình huống…

• Chúng em chọn đề tài “Lập trình trò chơi xếp hình Tetris bằng ngôn ngữ Java”, đây là một trong những
trò chơi phổ biến nhất từng được tạo ra. Ưu điểm của trò chơi này là tốc độ game nhanh, không yêu cầu
cấu hình mạnh. Với tên gọi trò chơi xếp hình khối rơi, bản gốc được thiết kế và lập trình vào năm 1985,
Tetris đã có mặt trên hầu hết mọi nền tảng máy tính với rất nhiều biến thể khác nhau.
1.2. Mục tiêu của đề tài
- Tìm hiểu ngôn ngữ lập trình Java, từ đó ứng dụng vào việc lập trình game
xếp hình Tetris.
- Nâng cao trình độ, khả năng tự nghiên cứu, học hỏi, tư duy, làm việc theo
nhóm, củng cố kỹ năng lập trình.
1.3. Đối tượng và phạm vi nghiên cứu:

- Đối tượng nghiên cứu:


· Ngôn ngữ lập trình Java và ứng dụng của nó.
· Các lớp, các phương thức cần thiết để xây dựng game xếp hình Tetris.
- Phạm vi nghiên cứu: Lập trình hướng đối tượng trong Java và các kỹ thuật lập
trình game theo hướng đối tượng.
2. Nội dung
2.1. Giới thiệu về game
Luật chơi Các chức năng chính
Lịch sử
Trong trò chơi này, chúng ta có bảy hình
Trò chơi xếp hình Tetris là một dạng khác nhau được gọi là tetromino. Trò chơi được đơn giản hóa
trong những trò chơi máy tính phổ Mỗi hình này được tạo thành từ bốn hình
để dễ hiểu hơn. Trò chơi bắt
biến nhất từng được tạo ra. Trò chơi vuông. Các khối hình sẽ di chuyển từ trên
gốc được thiết kế và lập trình bởi
đầu ngay sau khi chương
xuống dưới trong bảng. Mục tiêu của trò chơi
lập trình viên người Nga Alexey trình được chạy.
Tetris là di chuyển và xoay các hình dạng sao
- Phím p: tạm dừng trò chơi.
Pajitnov vào năm 1985. Kể từ đó, cho vừa khít nhất có thể. Nếu chúng tạo thành - Phím d: tăng tốc độ rơi của khối
Tetris có mặt trên hầu hết mọi nền một hàng, hàng đó sẽ bị phá hủy và chúng ta hình.
tảng máy tính với rất nhiều biến thể. ghi điểm. Chúng ta chơi trò chơi Tetris cho đến - Phím Space: đưa khối hình
Tetris được gọi là trò chơi xếp hình khi đạt thành tích cao nhất. xuống dưới ngay lập tức.
khối rơi. - Điểm số là số dòng đã được loại
bỏ.
Trong Tetris, chúng em thiết lập trò chơi, tạo ra một
bảng để chơi trò chơi và tạo một thanh trạng thái.
Mảng coordsTable chứa tất
cả các giá trị tọa độ có thể có
của các phần Tetris của
chúng ta. Đây là một mẫu mà
từ đó tất cả các phần đều lấy
giá trị tọa độ của chúng.
Code này xoay mảnh
sang phải. Nếu là mảnh
hình vuông thì không
cần phải xoay.
Code này dùng để tạo các khối một cách ngẫu nhiên.
• Các hằng số
BOARD_WIDTH và
BOARD_HEIGHT xác định
kích thước của bảng.

• Biến isFallingFinished xác


định xem hình Tetris đã rơi
xong chưa và khi đó chúng ta
cần tạo một hình mới

• Biến numLinesRemoved
đếm số dòng mà chúng ta đã
xóa cho đến hiện tại.

• Các biến curX và curY xác


định vị trí thực tế của hình
Tetris đang rơi.
Hàm start() và pause()
• Chúng ta phải gọi phương thức
setFocusable() một cách rõ ràng. Từ đây
board đã có đầu vào bàn phím.
• Hằng số DELAY xác định tốc độ của trò Phương thức actionPerformed() kiểm tra xem quá trình
chơi. rơi đã kết thúc chưa. Nếu vậy, một khối mới sẽ được tạo ra.
Nếu không, mảnh Tetris rơi sẽ di chuyển xuống một dòng.
Ở bước đầu tiên, chúng ta vẽ tất cả các hình hoặc phần còn lại của các
hình đã được thả xuống đáy bảng. Tất cả các hình được ghi nhớ trong
mảng Board. Chúng ta truy cập nó bằng phương thức ShapeAt().
Ở bước thứ hai, chúng ta vẽ mảnh rơi thực tế.
Nếu chúng ta nhấn phím
Space, quân cờ sẽ bị rơi
xuống dưới cùng. Chúng ta
chỉ cần cố gắng thả mảnh này
xuống một dòng cho đến khi
nó chạm đến đáy hoặc đỉnh
của một mảnh Tetris khác.
Khi mảnh Tetris rơi xong,
pieceDropped() sẽ được gọi.
Phương thức clearBoard() lấp đầy bảng bằng NoShapes trống.
• Phương thức
PieceDropped() đặt mảnh
rơi vào mảng Board.

• Phương thức newPiece()


tạo ra một mảnh Tetris
mới. Mảnh này có hình
dạng ngẫu nhiên mới. Sau
đó tính toán các giá trị
curX và curY ban đầu.
Phương thức tryMove() cố gắng di chuyển mảnh Tetris. Phương
thức trả về false nếu nó đã đạt đến ranh giới bàn cờ hoặc nó ở liền
kề với các quân Tetris đã rơi.
Bên trong phương thức
RemoveFullLines(), chúng ta kiểm tra
xem có hàng nào đầy đủ trong số tất cả
các hàng trong bảng hay không. Nếu
có ít nhất một dòng đầy đủ, nó sẽ bị
xóa.
3. Kết luận
3.1. Những điều đã đạt được

• - Lập trình hoàn thiện giao diện game với


một số chức năng cơ bản.
• - Có được cái nhìn sâu hơn về lập trình
hướng đối tượng trong Java.
3.2. Những vấn đề còn hạn chế

Do kỹ năng còn hạn chế nên chưa thể hoàn thành hết
các chức năng mới đã dự định đặt ra. Tuy nhiên các
chức năng mới sẽ sớm được hoàn thiện và bổ sung trong
thời gian sớm nhất.
Cảm ơn thầy và
các bạn đã lắng
nghe!

You might also like