Khi người chơi, mỗi khối hình được tạo bởi 4 i ch i l p đ y m t hàng ngang thì các mi ng g ch hàng ơi Tetris với các yêu cầu: ất hiện trên màn hình và tự động rơi xuống đáy màn ần mềm tr
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA ĐÀO TẠO QUỐC TẾ
-o0o -Bài tập lớn môn học
CÔNG NGHỆ JAVA
Đề tài: Lập trình trò chơi Tetris
Trang 2M c ục l c ục
I Mô t bài toán và ph ả bài toán và phương hướng giải quyết bài toán ương hướng giải quyết bài toán ng h ướng giải quyết bài toán ng gi i quy t bài toán ả bài toán và phương hướng giải quyết bài toán ết bài toán 3
1 Mô t bài toán ả bài toán và phương hướng giải quyết bài toán 3
2 Ph ương hướng giải quyết bài toán ng h ướng giải quyết bài toán ng gi i quy t bài toán ả bài toán và phương hướng giải quyết bài toán ết bài toán 4
II Các l p c a ch ớng giải quyết bài toán ủa chương trình ương hướng giải quyết bài toán ng trình 5
1 L p Block ớng giải quyết bài toán 5
2 L p Mino ớng giải quyết bài toán 6
3 L p Mino_I, Mino_L, Mino_O, Mino_rL, Mino_S, Mino_T, Mino_Z ớng giải quyết bài toán 8
4 L p KeyboardHandler ớng giải quyết bài toán 8
5 L p PlayManager ớng giải quyết bài toán 9
6 L p Sound ớng giải quyết bài toán 11
7 L p GamePanel ớng giải quyết bài toán 12
III Xây d ng ch ựng chương trình ương hướng giải quyết bài toán ng trình 13
1 Kh i t o ch ởi tạo chương trình ạo chương trình ương hướng giải quyết bài toán ng trình 13
2 B t đ u ch ắt đầu chương trình ầu chương trình ương hướng giải quyết bài toán ng trình 13
IV K t lu n ết bài toán ận 14
Trang 3I Mô t bài toán và ph ả bài toán và phương hướng giải quyết bài toán ương hướng giải quyết bài toán ng h ướng giải quyết bài toán ng gi i quy t bài toán ả bài toán và phương hướng giải quyết bài toán ết bài toán
L p trình ph n m m trò ch i Tetris v i các yêu c u:ập trình phần mềm trò chơi Tetris với các yêu cầu: ần mềm trò chơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ơi Tetris với các yêu cầu: ới các yêu cầu: ần mềm trò chơi Tetris với các yêu cầu:
1 S d ng kỹ thu t l p trình hử dụng kỹ thuật lập trình hướng đối tượng ụng kỹ thuật lập trình hướng đối tượng ập trình phần mềm trò chơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ưới các yêu cầu:ng đ i tối tượng ượngng
2 Có các kh i hình xu t hi n trên màn hình và t đ ng r i xu ng đáy mànối tượng ất hiện trên màn hình và tự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ự động rơi xuống đáy màn ộng rơi xuống đáy màn ơi Tetris với các yêu cầu: ối tượng
ch i n u không có s đi u khi n c a ngơi Tetris với các yêu cầu: ự động rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch i, m i kh i hình đơi Tetris với các yêu cầu: ỗi khối hình được tạo bởi 4 ối tượng ượng ạo bởi 4 c t o b i 4 ởi 4
mi ng g ch hình vuôngạo bởi 4
3 Các kh i hình tối tượng ươi Tetris với các yêu cầu:ng tác v i gi i h n màn ch i và các kh i hình khác đã ới các yêu cầu: ới các yêu cầu: ạo bởi 4 ơi Tetris với các yêu cầu: ối tượng
đượngc đ t xu ngặt xuống ối tượng
4 Khi người chơi, mỗi khối hình được tạo bởi 4 i ch i l p đ y m t hàng ngang thì các mi ng g ch hàng ơi Tetris với các yêu cầu: ất hiện trên màn hình và tự động rơi xuống đáy màn ần mềm trò chơi Tetris với các yêu cầu: ộng rơi xuống đáy màn ạo bởi 4 ởi 4 ngang đó sẽ bi n m t, các mi ng g ch trên đất hiện trên màn hình và tự động rơi xuống đáy màn ạo bởi 4 ởi 4 ượngc h xu ng m t hàng và ngạo bởi 4 ối tượng ộng rơi xuống đáy màn ười chơi, mỗi khối hình được tạo bởi 4 i
ch i đơi Tetris với các yêu cầu: ượng ộng rơi xuống đáy mànc c ng đi mển của người chơi, mỗi khối hình được tạo bởi 4
5 M i 10 hàng ngang đỗi khối hình được tạo bởi 4 ượng ất hiện trên màn hình và tự động rơi xuống đáy mànc l p đ y sẽ nâng trò ch i lên m t level m i, ần mềm trò chơi Tetris với các yêu cầu: ơi Tetris với các yêu cầu: ộng rơi xuống đáy màn ới các yêu cầu: tăng đ khó c a trò ch i b ng cách tăng t c đ r i c a m i kh i hìnhộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ơi Tetris với các yêu cầu: ằng cách tăng tốc độ rơi của mỗi khối hình ối tượng ộng rơi xuống đáy màn ơi Tetris với các yêu cầu: ủa người chơi, mỗi khối hình được tạo bởi 4 ỗi khối hình được tạo bởi 4 ối tượng
6 Khi các kh i hình dâng lên quá cao, không cho phép các kh i hình m i ối tượng ối tượng ới các yêu cầu:
đượng ơi Tetris với các yêu cầu:c r i xu ng, trò ch i sẽ k t thúcối tượng ơi Tetris với các yêu cầu:
1 Mô t bài toán ả bài toán và phương hướng giải quyết bài toán
Trò ch i Tetris c n ph i có:ơi Tetris với các yêu cầu: ần mềm trò chơi Tetris với các yêu cầu: ải có:
- Kh i t o trò ch i: xây d ng m t Frame ch a màn ch i và các thông tin ởi 4 ạo bởi 4 ơi Tetris với các yêu cầu: ự động rơi xuống đáy màn ộng rơi xuống đáy màn ứa màn chơi và các thông tin ơi Tetris với các yêu cầu:
c n thi t v trò ch iần mềm trò chơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ơi Tetris với các yêu cầu:
- Người chơi, mỗi khối hình được tạo bởi 4 i ch i: đi u khi n trò ch i b ng bàn phím máy tínhơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ơi Tetris với các yêu cầu: ằng cách tăng tốc độ rơi của mỗi khối hình
- Màn ch i: n i ngơi Tetris với các yêu cầu: ơi Tetris với các yêu cầu: ười chơi, mỗi khối hình được tạo bởi 4 i ch i đi u khi n các kh i hình, ch a các kh i hình ơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng ứa màn chơi và các thông tin ối tượng
đã đượngc đ t xu ngặt xuống ối tượng
- Đi m s : m i khi ngển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng ỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch i l p đ y đơi Tetris với các yêu cầu: ất hiện trên màn hình và tự động rơi xuống đáy màn ần mềm trò chơi Tetris với các yêu cầu: ượngc m t s hàng ngang nh t đ nh,ộng rơi xuống đáy màn ối tượng ất hiện trên màn hình và tự động rơi xuống đáy màn ịnh,
c p nh t đi m s , s hàng ngang đã l p đ y trong quá trình ch i và level hi n ập trình phần mềm trò chơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng ối tượng ất hiện trên màn hình và tự động rơi xuống đáy màn ần mềm trò chơi Tetris với các yêu cầu: ơi Tetris với các yêu cầu: ện trên màn hình và tự động rơi xuống đáy màn
t i d a trên s hàng ngang l p đ y đạo bởi 4 ự động rơi xuống đáy màn ối tượng ất hiện trên màn hình và tự động rơi xuống đáy màn ần mềm trò chơi Tetris với các yêu cầu: ượngc
- Đ khó: yêu c u t đ ng tăng đ khó c a trò ch i b ng vi c tăng t c đ ộng rơi xuống đáy màn ần mềm trò chơi Tetris với các yêu cầu: ự động rơi xuống đáy màn ộng rơi xuống đáy màn ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ơi Tetris với các yêu cầu: ằng cách tăng tốc độ rơi của mỗi khối hình ện trên màn hình và tự động rơi xuống đáy màn ối tượng ộng rơi xuống đáy màn
r i t đ ng c a các kh i hìnhơi Tetris với các yêu cầu: ự động rơi xuống đáy màn ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng
Trang 42 Ph ương hướng giải quyết bài toán ng h ướng giải quyết bài toán ng gi i quy t bài toán ả bài toán và phương hướng giải quyết bài toán ết bài toán
Trên c s đã phân tích bài toán, d a trên kỹ thu t l p trình hơi Tetris với các yêu cầu: ởi 4 ự động rơi xuống đáy màn ập trình phần mềm trò chơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ưới các yêu cầu:ng đ i ối tượng
tượngng, em đã th c hi n xây d ng các l p, các thu c tính và các phự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ự động rơi xuống đáy màn ới các yêu cầu: ộng rơi xuống đáy màn ươi Tetris với các yêu cầu:ng th c ứa màn chơi và các thông tin
tươi Tetris với các yêu cầu:ng ng v i khi phân tích bài toánứa màn chơi và các thông tin ới các yêu cầu:
- Kh i t o trò ch i: xây d ng Frame giao di n ngởi 4 ạo bởi 4 ơi Tetris với các yêu cầu: ự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ười chơi, mỗi khối hình được tạo bởi 4 i dùng ch a màn ch i ứa màn chơi và các thông tin ơi Tetris với các yêu cầu: chính gi a, bên c nh đó là b ng th hi n kh i hình ti p theo sẽ đ c đ a vào
ởi 4 ạo bởi 4 ải có: ển của người chơi, mỗi khối hình được tạo bởi 4 ện trên màn hình và tự động rơi xuống đáy màn ối tượng ượng ư
màn ch i và b ng đi m th hi n đi m s , s hàng ngang đã đơi Tetris với các yêu cầu: ải có: ển của người chơi, mỗi khối hình được tạo bởi 4 ển của người chơi, mỗi khối hình được tạo bởi 4 ện trên màn hình và tự động rơi xuống đáy màn ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng ối tượng ượng ất hiện trên màn hình và tự động rơi xuống đáy mànc l p đ y và ần mềm trò chơi Tetris với các yêu cầu: level hi n t iện trên màn hình và tự động rơi xuống đáy màn ạo bởi 4
- Người chơi, mỗi khối hình được tạo bởi 4 i ch i: đi u khi n trò ch i b ng các hành đ ng: di chuy n kh i ơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ơi Tetris với các yêu cầu: ằng cách tăng tốc độ rơi của mỗi khối hình ộng rơi xuống đáy màn ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng hình sang trái, ph i ho c xu ng dải có: ặt xuống ối tượng ưới các yêu cầu:i, xoay kh i hình theo chi u ho c ngối tượng ềm trò chơi Tetris với các yêu cầu: ặt xuống ượngc chi u kim đ ng h và h kh i hình xu ng đáy màn ch i ngay l p t cềm trò chơi Tetris với các yêu cầu: ồng hồ và hạ khối hình xuống đáy màn chơi ngay lập tức ồng hồ và hạ khối hình xuống đáy màn chơi ngay lập tức ạo bởi 4 ối tượng ối tượng ơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ứa màn chơi và các thông tin
- Đ khó trò ch i: v i m i 10 hàng ngang ngộng rơi xuống đáy màn ơi Tetris với các yêu cầu: ới các yêu cầu: ỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch i l p đ y đơi Tetris với các yêu cầu: ất hiện trên màn hình và tự động rơi xuống đáy màn ần mềm trò chơi Tetris với các yêu cầu: ượngc đ khó ộng rơi xuống đáy màn
sẽ tăng 1 level, cùng v i đó chu kì r i t đ ng c a kh i hình sẽ đới các yêu cầu: ơi Tetris với các yêu cầu: ự động rơi xuống đáy màn ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ượngc rút ng n ắn
Trang 5II Các l p c a ch ớng giải quyết bài toán ủa chương trình ương hướng giải quyết bài toán ng trình
1 L p Block ớng giải quyết bài toán
L p Block k th a l p Java.awt.Rectangle.ới các yêu cầu: ừa lớp Java.awt.Rectangle ới các yêu cầu:
L p Block t o nên t ng mi ng g ch ghép l i đ t o thành các kh i hình ngới các yêu cầu: ạo bởi 4 ừa lớp Java.awt.Rectangle ạo bởi 4 ạo bởi 4 ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ối tượng ười chơi, mỗi khối hình được tạo bởi 4 i
ch i đi u khi n.ơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4
Các thu c tính c a l p Block:ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu:
- public int x, y: t a đ c a t ng mi ng g chọa độ của từng miếng gạch ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ừa lớp Java.awt.Rectangle ạo bởi 4
- public static final int SIZE = 30: m i mi ng g ch có kích thỗi khối hình được tạo bởi 4 ạo bởi 4 ưới các yêu cầu:c 30 x 30 pixel
- public Color c: m i mi ng g ch và m i kh i hình có m t màu riêng bi tỗi khối hình được tạo bởi 4 ạo bởi 4 ỗi khối hình được tạo bởi 4 ối tượng ộng rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn
Các phươi Tetris với các yêu cầu:ng th c c a l p Block:ứa màn chơi và các thông tin ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu:
- Constructor: Nh n tham s là m t màu nh t đ nh, đ t màu đó là màu c aập trình phần mềm trò chơi Tetris với các yêu cầu: ối tượng ộng rơi xuống đáy màn ất hiện trên màn hình và tự động rơi xuống đáy màn ịnh, ặt xuống ủa người chơi, mỗi khối hình được tạo bởi 4
mi ng g chạo bởi 4
- public void draw(Graphics2D g2): Nh n tham s ki u Graphics2D g2 kập trình phần mềm trò chơi Tetris với các yêu cầu: ối tượng ển của người chơi, mỗi khối hình được tạo bởi 4
th a l p Graphics, th c hi n vẽ mi ng g ch lên màn hình s d ng t a đ , kíchừa lớp Java.awt.Rectangle ới các yêu cầu: ự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ạo bởi 4 ử dụng kỹ thuật lập trình hướng đối tượng ụng kỹ thuật lập trình hướng đối tượng ọa độ của từng miếng gạch ộng rơi xuống đáy màn
thưới các yêu cầu:c và màu c a mi ng g ch M i mi ng g ch đủa người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ỗi khối hình được tạo bởi 4 ạo bởi 4 ượngc bao b i vi n 2 pixel, táchởi 4 ềm trò chơi Tetris với các yêu cầu:
bi t t ng mi ng g ch m t cách rõ ràng đ ngện trên màn hình và tự động rơi xuống đáy màn ừa lớp Java.awt.Rectangle ạo bởi 4 ộng rơi xuống đáy màn ển của người chơi, mỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch i d dàng nh n bi t v tríơi Tetris với các yêu cầu: ễ dàng nhận biết vị trí ập trình phần mềm trò chơi Tetris với các yêu cầu: ịnh, các mi ng g ch trên ma tr n màn ch iạo bởi 4 ập trình phần mềm trò chơi Tetris với các yêu cầu: ơi Tetris với các yêu cầu:
Trang 62 L p Mino ớng giải quyết bài toán
L p Mino ghép các mi ng g ch(Block) l i đ t o nên các kh i hình, ki m soát ới các yêu cầu: ạo bởi 4 ạo bởi 4 ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ối tượng ển của người chơi, mỗi khối hình được tạo bởi 4
tươi Tetris với các yêu cầu:ng tác gi a các kh i hình v i nhau và v i gi i h n màn ch i, ki m soát ối tượng ới các yêu cầu: ới các yêu cầu: ới các yêu cầu: ạo bởi 4 ơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 chuy n đ ng c a kh i hình theo s đi u khi n c a ngển của người chơi, mỗi khối hình được tạo bởi 4 ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ự động rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch i và c p nh t ơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu:
tr ng thái c a các kh i hìnhạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng
Các thu c tính c a l p Mino:ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu:
- public Block b[] = new Block[4]: m i kh i hình đỗi khối hình được tạo bởi 4 ối tượng ượng ạo bởi 4 c t o b i 4 mi ng ởi 4
g chạo bởi 4
- public Block tempB[] = new Block[4]: v trí t m th i c a 4 mi ng g ch, ịnh, ạo bởi 4 ời chơi, mỗi khối hình được tạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4
ph c v cho vi c ki m soát va ch m khi xoay các kh i hìnhụng kỹ thuật lập trình hướng đối tượng ụng kỹ thuật lập trình hướng đối tượng ện trên màn hình và tự động rơi xuống đáy màn ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ối tượng
- int autoDropCounter = 0: ph c v cho vi c các kh i hình t đ ng r iụng kỹ thuật lập trình hướng đối tượng ụng kỹ thuật lập trình hướng đối tượng ện trên màn hình và tự động rơi xuống đáy màn ối tượng ự động rơi xuống đáy màn ộng rơi xuống đáy màn ơi Tetris với các yêu cầu:
- public int direction = 1: m i kh i hình có 4 hỗi khối hình được tạo bởi 4 ối tượng ưới các yêu cầu:ng xoay (1,2,3,4)
- boolean leftCollision, rightCollision, bottomCollision: ki m tra tr ng thái ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4
va ch m c a kh i hình bên trái, bên ph i và bên dạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ởi 4 ải có: ưới các yêu cầu:i
Trang 7- public boolean active = true; public boolean deactivating = false; int deactivateCounter = 0: ki m soát tr ng thái ho t đ ng c a các kh i hìnhển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ạo bởi 4 ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng
Các phươi Tetris với các yêu cầu:ng th c c a l p Mino:ứa màn chơi và các thông tin ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu:
- public void create(Color c): Nh n tham s là m t màu nh t đ nh, kh i ập trình phần mềm trò chơi Tetris với các yêu cầu: ối tượng ộng rơi xuống đáy màn ất hiện trên màn hình và tự động rơi xuống đáy màn ịnh, ởi 4
t o các mi ng g ch t o nên kh i hình và v trí t m th i c a chúngạo bởi 4 ạo bởi 4 ạo bởi 4 ối tượng ịnh, ạo bởi 4 ời chơi, mỗi khối hình được tạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4
- public void updateXY(int direction): Nh n tham s là hập trình phần mềm trò chơi Tetris với các yêu cầu: ối tượng ưới các yêu cầu:ng xoay c a ủa người chơi, mỗi khối hình được tạo bởi 4
kh i hình, s d ng phối tượng ử dụng kỹ thuật lập trình hướng đối tượng ụng kỹ thuật lập trình hướng đối tượng ươi Tetris với các yêu cầu:ng th c checkRotationCollision() ki m tra xem kh i ứa màn chơi và các thông tin ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng hình có đượngc xoay hay không N u có, c p nh t hập trình phần mềm trò chơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ưới các yêu cầu:ng xoay c a kh i hình và v ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ịnh, trí c a kh i hình b ng tempB[]ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ằng cách tăng tốc độ rơi của mỗi khối hình
- public void checkMovementCollision(): Ki m tra tr ng thái va ch m c a ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4
kh i hình v i gi i h n trái, ph i và dối tượng ới các yêu cầu: ới các yêu cầu: ạo bởi 4 ải có: ưới các yêu cầu: ủa người chơi, mỗi khối hình được tạo bởi 4 i c a màn ch i N u có x y ra va ch m, ơi Tetris với các yêu cầu: ải có: ạo bởi 4 thay đ i thu c tính ki m tra tr ng thái va ch m tổi thuộc tính kiểm tra trạng thái va chạm tương ứng ộng rơi xuống đáy màn ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ạo bởi 4 ươi Tetris với các yêu cầu:ng ng ứa màn chơi và các thông tin
- public void checkRotationCollision(): Ki m tra tr ng thái va ch m c a ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4
kh i hình v i các gi i h n trái, ph i và dối tượng ới các yêu cầu: ới các yêu cầu: ạo bởi 4 ải có: ưới các yêu cầu: ủa người chơi, mỗi khối hình được tạo bởi 4 i c a màn ch i trong trơi Tetris với các yêu cầu: ười chơi, mỗi khối hình được tạo bởi 4 ng h p xoayợng
kh i hình N u có x y ra va ch m, thay đ i thu c tính ki m tra tr ng thái va ối tượng ải có: ạo bởi 4 ổi thuộc tính kiểm tra trạng thái va chạm tương ứng ộng rơi xuống đáy màn ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4
ch m tạo bởi 4 ươi Tetris với các yêu cầu:ng ng.ứa màn chơi và các thông tin
- public void checkStaticBlocksCollision(): Ki m tra tr ng thái va ch m ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ạo bởi 4
c a kh i hình v i các mi ng g ch đã đủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ới các yêu cầu: ạo bởi 4 ượngc người chơi, mỗi khối hình được tạo bởi 4 i ch i đ t xu ng và đã d ng ơi Tetris với các yêu cầu: ặt xuống ối tượng ừa lớp Java.awt.Rectangle
ho t đ ng N u có x y ra va ch m, thay đ i thu c tính ki m tra tr ng thái va ạo bởi 4 ộng rơi xuống đáy màn ải có: ạo bởi 4 ổi thuộc tính kiểm tra trạng thái va chạm tương ứng ộng rơi xuống đáy màn ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4
ch m tạo bởi 4 ươi Tetris với các yêu cầu:ng ng.ứa màn chơi và các thông tin
- public void update(): C p nh t tr ng thái c a kh i hình Nh n l nh đi u ập trình phần mềm trò chơi Tetris với các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ập trình phần mềm trò chơi Tetris với các yêu cầu: ện trên màn hình và tự động rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: khi n c a ngển của người chơi, mỗi khối hình được tạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch i b ng bàn phím máy tính, th c hi n các hành đ ng di ơi Tetris với các yêu cầu: ằng cách tăng tốc độ rơi của mỗi khối hình ự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ộng rơi xuống đáy màn chuy n kh i hình sang trái, ph i, xu ng, xoay kh i hình và h kh i hình xu ng ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng ải có: ối tượng ối tượng ạo bởi 4 ối tượng ối tượng ngay l p t c n u không b tr ng thái va ch m tập trình phần mềm trò chơi Tetris với các yêu cầu: ứa màn chơi và các thông tin ịnh, ạo bởi 4 ạo bởi 4 ươi Tetris với các yêu cầu:ng ng ngăn c n N u không ứa màn chơi và các thông tin ải có:
có l nh đi u khi n t ngện trên màn hình và tự động rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ừa lớp Java.awt.Rectangle ười chơi, mỗi khối hình được tạo bởi 4 i ch i, th c hi n cho kh i hình t đ ng r i theo chu ơi Tetris với các yêu cầu: ự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ối tượng ự động rơi xuống đáy màn ộng rơi xuống đáy màn ơi Tetris với các yêu cầu:
kì, m i 60 frame = 1 giây kh i hình sẽ t đ ng r i xu ng m t hàng ngang.ỗi khối hình được tạo bởi 4 ối tượng ự động rơi xuống đáy màn ộng rơi xuống đáy màn ơi Tetris với các yêu cầu: ối tượng ộng rơi xuống đáy màn
- private void deactivating(): Khi kh i hình có tr ng thái đang b va ch m ối tượng ạo bởi 4 ịnh, ạo bởi 4 ởi 4
dưới các yêu cầu:i đáy và không th r i xu ng thêm n a n u ngển của người chơi, mỗi khối hình được tạo bởi 4 ơi Tetris với các yêu cầu: ối tượng ười chơi, mỗi khối hình được tạo bởi 4 i ch i không di chuy n ơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4
kh i hình, thay vì ngay l p t c đ t kh i hình vào tr ng thái không ho t đ ng, ối tượng ập trình phần mềm trò chơi Tetris với các yêu cầu: ứa màn chơi và các thông tin ặt xuống ối tượng ạo bởi 4 ạo bởi 4 ộng rơi xuống đáy màn
Trang 8phươi Tetris với các yêu cầu:ng th c này cho phép ngứa màn chơi và các thông tin ười chơi, mỗi khối hình được tạo bởi 4 i ch i kho ng th i gian 45 frame = 0.75 giây đ ơi Tetris với các yêu cầu: ải có: ời chơi, mỗi khối hình được tạo bởi 4 ển của người chơi, mỗi khối hình được tạo bởi 4
ti p t c di chuy n kh i hình trụng kỹ thuật lập trình hướng đối tượng ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng ưới các yêu cầu:c khi kh i hình ng ng ho t đ ng.ối tượng ừa lớp Java.awt.Rectangle ạo bởi 4 ộng rơi xuống đáy màn
- public void draw(Graphics2D g2): Nh n tham s ki u Graphics2D g2 k ập trình phần mềm trò chơi Tetris với các yêu cầu: ối tượng ển của người chơi, mỗi khối hình được tạo bởi 4
th a l p Graphics, th c hi n vẽ t ng mi ng g ch t o nên kh i hình.ừa lớp Java.awt.Rectangle ới các yêu cầu: ự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ừa lớp Java.awt.Rectangle ạo bởi 4 ạo bởi 4 ối tượng
Các l p Mino_I, Mino_L, Mino_O, Mino_rL, Mino_S, Mino_T, Mino_Z k th a l p ới các yêu cầu: ừa lớp Java.awt.Rectangle ới các yêu cầu: Mino
Các l p Mino_I, Mino_L, Mino_O, Mino_rL, Mino_S, Mino_T, Mino_Z ki m soát ới các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4
tr ng thái, hạo bởi 4 ưới các yêu cầu:ng xoay cho t ng lo i kh i hình khác nhau.ừa lớp Java.awt.Rectangle ạo bởi 4 ối tượng
Các phươi Tetris với các yêu cầu:ng th c c a các l p Mino_I, Mino_L, Mino_O, Mino_rL, Mino_S, Mino_T, ứa màn chơi và các thông tin ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu: Mino_Z:
- Constructor: S d ng phử dụng kỹ thuật lập trình hướng đối tượng ụng kỹ thuật lập trình hướng đối tượng ươi Tetris với các yêu cầu:ng th c Mino.create(Color c) đ kh i t o ứa màn chơi và các thông tin ển của người chơi, mỗi khối hình được tạo bởi 4 ởi 4 ạo bởi 4
kh i hình M i lo i kh i hình có màu riêng bi t.ối tượng ỗi khối hình được tạo bởi 4 ạo bởi 4 ối tượng ện trên màn hình và tự động rơi xuống đáy màn
- public void setXY(int x, int y): Nh n tham s là t a đ x,y, cài đ t v trí ập trình phần mềm trò chơi Tetris với các yêu cầu: ối tượng ọa độ của từng miếng gạch ộng rơi xuống đáy màn ặt xuống ịnh, ban đ u c a các mi ng g ch t o nên kh i hình s d ng t a đ x,y.ần mềm trò chơi Tetris với các yêu cầu: ủa người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ạo bởi 4 ối tượng ử dụng kỹ thuật lập trình hướng đối tượng ụng kỹ thuật lập trình hướng đối tượng ọa độ của từng miếng gạch ộng rơi xuống đáy màn
- public void getDirection1(), getDirection2(), getDirection3(),
getDirection4(): Cài đ t v trí t m th i cho kh i hình theo t ng hặt xuống ịnh, ạo bởi 4 ời chơi, mỗi khối hình được tạo bởi 4 ối tượng ừa lớp Java.awt.Rectangle ưới các yêu cầu:ng xoay, sau
đó g i phọa độ của từng miếng gạch ươi Tetris với các yêu cầu:ng th c Mino.updateXY(int direction) đ xoay kh i hìnhứa màn chơi và các thông tin ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng
L p KeyboardHandler l ng nghe s ki n b ng KeyListenerới các yêu cầu: ắn ự động rơi xuống đáy màn ện trên màn hình và tự động rơi xuống đáy màn ằng cách tăng tốc độ rơi của mỗi khối hình
Trang 9L p KeyboardHandler nh n và ki m soát l nh đi u khi n b ng bàn phím máy ới các yêu cầu: ập trình phần mềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ện trên màn hình và tự động rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ằng cách tăng tốc độ rơi của mỗi khối hình tính c a ngủa người chơi, mỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch iơi Tetris với các yêu cầu:
Các thu c tính c a l p KeyboardHandler:ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu:
- public static boolean upPressed, downPressed, leftPressed, rightPressed, pausePressed, zPressed, spacePressed: ki m tra tr ng thái c a t ng phím nh p ển của người chơi, mỗi khối hình được tạo bởi 4 ạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 ừa lớp Java.awt.Rectangle ập trình phần mềm trò chơi Tetris với các yêu cầu:
l nh đi u khi nện trên màn hình và tự động rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4
Các phươi Tetris với các yêu cầu:ng th c c a l p KeyboardHandler:ứa màn chơi và các thông tin ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu:
- public void keyPressed: Khi người chơi, mỗi khối hình được tạo bởi 4 i ch i nh n m t phím đi u khi n, thay ơi Tetris với các yêu cầu: ất hiện trên màn hình và tự động rơi xuống đáy màn ộng rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4
đ i tr ng thái tổi thuộc tính kiểm tra trạng thái va chạm tương ứng ạo bởi 4 ươi Tetris với các yêu cầu:ng ng v i phím đóứa màn chơi và các thông tin ới các yêu cầu:
Trang 105 L p PlayManager ớng giải quyết bài toán
L p PlayManager ki m soát gi i h n màn ch i, các kh i hình trong màn ch i ới các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu: ạo bởi 4 ơi Tetris với các yêu cầu: ối tượng ơi Tetris với các yêu cầu:
ho c đang đặt xuống ượngc người chơi, mỗi khối hình được tạo bởi 4 i ch i đi u khi n ho c đã ng ng ho t đ ng, tr ng thái c a ơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4 ặt xuống ừa lớp Java.awt.Rectangle ạo bởi 4 ộng rơi xuống đáy màn ạo bởi 4 ủa người chơi, mỗi khối hình được tạo bởi 4 trò ch i hi n t i và đi m s c a ngơi Tetris với các yêu cầu: ện trên màn hình và tự động rơi xuống đáy màn ạo bởi 4 ển của người chơi, mỗi khối hình được tạo bởi 4 ối tượng ủa người chơi, mỗi khối hình được tạo bởi 4 ười chơi, mỗi khối hình được tạo bởi 4 i ch i.ơi Tetris với các yêu cầu:
Các thu c tính c a l p PlayManager:ộng rơi xuống đáy màn ủa người chơi, mỗi khối hình được tạo bởi 4 ới các yêu cầu:
- final int WIDTH = 300, HEIGHT = 600; public static int left_x, right_x, top_y, bottom_y: gi i h n màn ch i, chi u r ng 300 & chi u cao 600 => màn ch iới các yêu cầu: ạo bởi 4 ơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ộng rơi xuống đáy màn ềm trò chơi Tetris với các yêu cầu: ơi Tetris với các yêu cầu:
c 10 x 20 mi ng g chỡ 10 x 20 miếng gạch ạo bởi 4
- Mino currentMino, nextMino: kh i hình ngối tượng ười chơi, mỗi khối hình được tạo bởi 4 i ch i đang đi u khi n và ơi Tetris với các yêu cầu: ềm trò chơi Tetris với các yêu cầu: ển của người chơi, mỗi khối hình được tạo bởi 4
kh i hình ti p theoối tượng
- final int MINO_START_X, MINO_START_Y, NEXTMINO_X, NEXTMINO_Y: v ịnh, trí b t đ u c a kh i hình trong màn ch i và v trí th hi n kh i hình ti p theoắn ần mềm trò chơi Tetris với các yêu cầu: ủa người chơi, mỗi khối hình được tạo bởi 4 ối tượng ơi Tetris với các yêu cầu: ịnh, ển của người chơi, mỗi khối hình được tạo bởi 4 ện trên màn hình và tự động rơi xuống đáy màn ối tượng
- public static ArrayList<Block> staticBlocks: l u tr nh ng mi ng g ch đãư ạo bởi 4
ng ng ho t đ ngừa lớp Java.awt.Rectangle ạo bởi 4 ộng rơi xuống đáy màn
- public static int dropInterval = 60: chu kì kh i hình t đ ng r i = 60 ối tượng ự động rơi xuống đáy màn ộng rơi xuống đáy màn ơi Tetris với các yêu cầu: