1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng trò chơi băng chuyền

21 648 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 3,71 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xây dựng trò chơi băng chuyền

Trang 1

──────── * ───────

BÀI TẬP LỚN

MÔN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Đề 01A : Xây dựng trò chơi băng chuyền

Sinh viên thực hiện : Nguyễn Trung Giang

Phan Năng Duy

Trang 2

MỤC LỤC

Mục lục 2 Mục lục ảnh 3 Lời nói đầu 4

1.1 Mô tả yêu cầu bài toán

KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN

1.2 Biểu đồ use case

1.2.1 Biểu đồ use case tổng quan

1.2.2 Biểu đồ use case phân rã mức 2

1.3 Đặc tả use case

PHÂN TÍCH THIẾT KẾ BÀI TOÁN

1.4 Biểu đồ lớp

1.5 Thiết kế chi tiết lớp

Chương 3 : CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG

XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA

1.6 Kết quả chương trình minh họa

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Trang 3

Hình 1 Biểu đồ use case tổng quan

Hình 2 Biểu đồ use case phân rã của play game

Hình 3.Biểu đồ use case phân rã của Equal

Hình 9 : Màn hình hướng dẫn sau khi ấn Help

Hình 10 : Giao diện khi chơi

Hình 11 Giao diện sau khi đổi nút ở hình 9

Hình 12 Giao diện tiếp tục

Hình 13.Khi hết giờ hiện lên giao diện Game over

Trang 4

LỜI NÓI ĐẦU

Qua mấy thập kỉ gần đây , rất nhiều các ngôn ngữ lập trình ra đời và liên tục thay thế nhau trở thành ngôn ngữ phổ biến Từ lập trình hợp ngữ Assembly đến ngôn ngữ lập trình hướng cấu trúc thủ tục ( Pascal , C, ) Nhưng những ngôn ngữ này đều có một số hạn chế nhất định Nhất là khi làm một dự án lớn thì ta không thể làm đi làm lại một việc hoặc một người không thể làm được mà phải modul hóa

nó Ngôn ngữ lập trình hướng đối tượng ( OOP ) đã ra đời và giải quyết vấn đề đó

OOP ra đời và do phát triển nhanh mạnh trong lĩnh vực lập trình Trong quá trình học tập và nghiên cứu dưới sự hướng dẫn giảng dạy của cô Trang bọn em đã có được một nền tảng tương đối để có thể phát triển các ứng dụng khá đơn giản bằng Java Game băng chuyền

là sản phẩm đầu tiên của nhóm em nên có thể vẫn còn nhiều thiếu xót Bọn em rất mong nhận được những nhận xét của cô để cho chương trình ngày càng hoàn thiện hơn

Hà Nội 4 tháng 5 năm 2010

Nhóm Sinh viên

1 Nguyễn Trung Giang

2 Phan Năng Duy

3 Đỗ Hoàng Giang 4.Vũ Quốc Hoàn

Trang 5

CHƯƠNG 2 KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN

2.1 Mô tả yêu cầu bài toán

<Mô tả bằng lời về bài toán được giao>

Trò chơi băng chuyền mô phỏng hệ thống băng chuyền sử dụng trong các nhà máy công nghiệp, sân bay, hay các công ty chuyển phát Trò chơi gồm nhiều màn, bị giới hạn về mặt thời gian Mỗi một màn là một sơ đồ băng chuyền với mức độ phức tạp tăng dần

Mỗi sơ đồ này gồm có:

- Một điểm giao hàng duy nhất (ví dụ cửa một nhà máy – hay từ một ô tô tải), hàng từ đây sẽ được băng chuyền vận chuyển tới các điểm cuối nhận hàng để từ đó được các thiết bị vận chuyển đưa đi Có nhiều điểm cuối nhận hàng tương ứng chờ sẵn tại đó là các phương tiện vận tải hàng khác nhau: máy bay, ôtô, tàu thủy

- Cứ một khoảng thời gian thì một kiện hàng được phát ra – có một màu nhất định và

nó phải được người chơi điều khiển băng chuyền để đến được đúng điểm nhận có cùngmàu Sau khi nhận xong, kiện hàng coi như mất đi trên băng chuyền và đèn hiệu màu tại các điểm nhậncó thể thay đổi để chờ các kiện hàng khác

- Băng chuyền như một đồ thị có hướng gồm có nhiều nút Tại mỗi nút người dùng cóthể bấm chuột làm thay đổi hướng di chuyển sang trái, phải, lên, xuống để chuyển hướng hàng sang dây chuyền kế tiếp Khi hàng được phát sinh ra càng nhiều thì người chơi sẽ phải phản ứng nhanh để chuyển tất cả các kiện hàng đến đúng nơi cần đến Mỗi lần hàng được chuyển đến đúng nơi nhận được một số điểm, nếu chuyển sai thì bịtrừ điểm Sau thời gian giới hạn cho mỗi màn chơi nếu hàng được chuyển hết (không còn di chuyển trên băng chuyền) thì coi như người chơi qua màn

- Người dùng có thể lựa chọn chế độ hỗ trợ, chương trình sẽ có gợi ý – hướng dẫn thao tác cần thực hiện tại các nút chuyển băng chuyền (khi có thể) để kiện hàng tới đích

- Đánh giá cao sản phẩm có giao diện sinh động bắt mắt

2.2 Biểu đồ use case

2.2.1 Biểu đồ use case tổng quan

Trang 6

Hình 1 Biểu đồ use case tổng quan

- Người dùng có thể nhấn kích hoạt các chức năng

- Random System thực hiện việc cho ra box bất kì

2.2.2 Biểu đồ use case phân rã mức 2

Biểu đồ use case cho hoạt động Play game

Trang 7

Hình 2 Biểu đồ use case phân rã của play game

- Người dùng có thể nhấn kích hoạt các chức năng

- Run ( để bắt đầu chạy chương trình )

- Stop , Continue Thread đang chạy dở

- Next Level : đến level tiếp sau khi đã qua bài

- Change speed : thay đổi tốc độ để có thể chơi dễ dàng hơn

- Change button : đổi ảnh button

- Move box : di chuyển box

- Trong khi Run ta có thể gọi đến :

- Compare System : hệ thống so sánh khi mà so sánh các thuộc tính

- Random System : hệ thống random số để ra 1 box bất kì

Biểu đồ use case cho hoạt động Equal :

Hình 3.Biểu đồ use case phân rã của Equal

- Compare System kích hoạt :

- Kết quả (qua level ) khi đã hoàn thành xong mục tiêu

Trang 9

Chương II : PHÂN TÍCH THIẾT KẾ BÀI TOÁN

2.4 Biểu đồ lớp

Hình 5.Biểu đồ lớp

Trong game chúng em sử dụng các lớp chính :

- Tram : Lớp này lưu trữ tọa độ và đường dẫn đến ảnh của các trạm dừng

- NutChuyen : Lớp này lưu trữ tọa độ các nút trong bàn chơi

- Box : Lớp này sử dụng để điều khiển box Nó được kế thừa từ lớp Thread

và có chức năng

+ Box là gồm các chức năng : Chuyển động theo băng chuyền

Tạo box mới khi box đã đến trạm

- Dachser : Lớp này được kế thừa Applet và làm các công việc chính như điều khiển thời gian , vẽ ảnh , …

+ Các lớp Tram, NutChuyen và Box , Button đều có quan hệ Composition với lớp này

+ Kế thừa giao diện Action Listener , Runable và Mouse Listerner

2.5 Thiết kế chi tiết lớp

<Mô tả chi tiết về 2-4 lớp quan trọng>

Trang 10

Hình 6.Class Box

Box là gồm các chức năng : Chuyển động theo băng chuyền

Tạo box mới khi box đã đến trạm

+ Các thuộc tính : dem1,dem2,dem3 dùng để đếm số box về đúng trạm

s1[] lưu đường dẫn cho ảnh box

count ( = 1,2,3,4 ) : dùng để định hướng đường đi cho box

< khi count = - 1 thì box đứng yên >

currState : lưu lại trạng thái của của count khi ta stop Thread

Dachser : sử dụng để kiểm tra các sự kiện

+ Các phương thức :

a/ checkTD() : int

if ( Tọa độ Box == Tọa độ Trạm ) {

if ( đường dẫn ảnh Box == đường dẫn ảnh trạm){

Cho ra số 1,2,3 tương ứng với 3 loại hộp

c/ reset() : Được gọi khi box về trạm

if (dem1=0&dem2=0&dem3=0) {

numberOfThreadOff++

Thread.stop();

}

Trang 11

d/run()

+ Tại những điểm ngoặt thì :

if (tọa độ box == tọa độ ngoặt ) {

biến count thay đổi

}

+ Tại nút chuyển thì

if (tọa độ box == tọa độ nút chuyển ) {

biến count đổi theo image của nút chuyển

+ Các thuộc tính : speed : lưu trữ tốc độ chuyển động của box

numberWindow : dùng để lưu trữ số thứ tự background

numberOfThreadOff : dùng để lưu trữ số tiến trình đã kết thúc threadState : lưu trữ trạng thái Thread

Trang 13

Chương 3 : CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG

Game nhóm em làm được sử dụng những thuật toán dưới đây :

- Làm cho hình không bị giật

Ban đầu nhóm gặp phải trường hợp khi chạy Applet thì chương trình bị giật Nhưng sau đó nhóm đã tìm được ra cách để giải quyết vấn đề đó Đó là khởi tạo một đối tượng Graphics và vẽ tất cả lên nó Sau đó mới cho Graphics đó lên Applet

- Sử dụng kĩ thuật đa luồng :

Nhóm đã tạo được 3 luồng cùng lúc bằng cách sử dụng 3 Thread chạy cùng

- Thuật toán random :

Cho ra 1 box bất kì từ điểm xuất

Trang 14

XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA

2.6 Kết quả chương trình minh họa

Đây là giao diện cơ bản mà bọn em đã thực hiện : Khi khởi động applet thì ta có màn hình Start và

Hình 8 Màn hình khởi động

Trang 15

Hình 9 : Màn hình hướng dẫn sau khi ấn Help

Hình 10 : Giao diện khi chơi

Trang 16

Hình 11 Giao diện sau khi đổi nút ở hình 10

Hình 12 Giao diện tiếp tục

Trang 17

Hình 13.Khi hết giờ hiện lên giao diện Game over

Trang 18

Hình 14 Giao diện khi chiến thắng

Trang 19

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

<Phần này nêu kết luận đã làm được gì trong lần quá trình thực hiện bài tập lớn

Ưu, nhược điểm Sau đó đưa ra hướng phát triển cho đề tài, chủ yếu để khắc phục cácnhược điểm đã nêu>

- Game mà nhóm em làm theo em là đã tương đối hoàn thiện và thực hiện được 1

số chức năng chính với yêu cầu Tuy nhiên vì quỹ thời gian hạn chế và ngônngữ Java và UML cũng mới được học từ đầu kì nên bọn em vẫn chưa thể hoànthành hết theo ý muốn của mình Game còn 1 số hạn chế :

- Applet vẫn nặng và sẽ chạy chậm trên 1 số máy có cấu hình thấp

- Phần Highscore và Save game bọn em vẫn chưa làm được nhưng sẽ tiếp tụcphát triển sau

 Hướng phát triển : Lưu highscore trong 1 file txt

Game save cũng vậy trong đó lưu giá trị các biến tronggame

- Lớp Box chúng em mới tạo được 3 box chuyển động cùng 1 lúc chứ chưa làmđược theo yêu cầu là sau 1 khoảng thời gian nhất định

- Việc đổi màu trạm cũng chưa làm

- Chương trình gợi ý

Trang 20

TÀI LIỆU THAM KHẢO

[1] Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba - 2003

[2] Slide của cô Trang

[3] Lập trình hướng đối tượng với Java - Đoàn Văn Ban

[4] Java - Tập 1 – Phương Lan ( Nhà xuất bản lao động xã hội )

[5] Java Design Objects , UML,and Process - Kick KnoernSchild

[6] Object_Oriented_Design_in_Java - Stephen Gilbert and Bill McCarty

[7] Teach Yourself Java 2 In 21 Days - Sams Publishing

[8] http://www.javaworld.com/

[9] http://www.vn4000.com/content/category/5/16/32/

Ngày đăng: 18/11/2015, 16:17

HÌNH ẢNH LIÊN QUAN

Hình 14. Giao diện khi chiến thắng - Xây dựng trò chơi băng chuyền
Hình 14. Giao diện khi chiến thắng (Trang 18)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w