Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
0,92 MB
File đính kèm
caro4.rar
(362 KB)
Nội dung
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN MÔN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ TÀI: LẬP TRÌNH GAME CỜ CARO Nhóm: 06 Năm 2015 Thành viên: Đề tài: Lập trình ứng dụng game cờ Caro (Có mã nguồn cuối) MỤC LỤC I Mở đầu: Giới thiệu mục đích Bài tập lớn Java công nghệ xây dựng ứng dụng phần mềm có vị trí lớn năm cuối kỉ 20, đầu kỉ 21 Nó coi công nghệ mang tính cách mạng khả thi việc tạo ứng dụng có khả chạy thống nhiều tảng mà cần biên dịch lần Lần xuất vào năm 1992 ngôn ngữ dùng nội tập đoàn Sun Microsystems để xây dựng ứng dụng điều khiển xử lý bên máy điện thoại cầm tay, lò vi sóng, thiết bị điện tử dân dụng khác Không ngôn ngữ, Java tảng phát triển triển khai ứng dụng máy ảo Java, thông dịch có vai trò trung tâm Sun, công ty phát minh ngôn ngữ Java, thức ban hành Java Development Kit 1.0 vào năm 1996 hoàn toàn miễn phí để nhà phát triển tải về, học Java, xây dựng ứng dụng Java triển khai chúng hệ điều hành có hỗ trợ Java Khi nhắc đến Java người ta không nhắc đến Java ngôn ngữ mà nhắc đến Java công nghệ hay tảng phát triển Cũng nhiều trường Đại học khác, Học Viện Công Nghệ Bưu Chính Viễn Thông từ lâu đưa Java vào chương trình giảng dạy cho sinh viên Bài tập lớn nhằm mục đích giúp sinh viên tìm hiểu bước đầu làm quen với lập trình Java, lập trình ứng dụng Java đơn giản có mục đích tính hữu dụng thực tế 2-Giới thiệu toán: Mục đích cụ thể ứng dụng Thông tin: Ứng dụng Game cờ Caro xây dựng nhằm mục đích làm quen với ngôn ngữ, câu lệnh số công nghệ hướng đối tượng tiên tiến Ứng dụng có mục đích nhằm giải trí nhẹ nhàng cho căng thẳng Một số hình ảnh ứng dụng 3- Các công nghệ hướng đối tượng được sử dụng ứng dụng Kế thừa Tính kế thừa Java môt kỹ thuật mà đối tượng thu tất thuộc tính hành vi đối tượng cha Ý tưởng đằng sau tính kế thừa Java bạn tạo lớp mà xây dựng dựa lớp tồn Khi bạn kế thừa từ lớp tồn tại, bạn tái sử dụng phương thức trường lớp cha, bạn bổ sung thêm phương thức trường khác Tính kế thừa biểu diễn mối quan hệ IS-A, gọi mối quan hệ cha-con Khi nói tính kế thừa, từ khóa thường xuyên sử dụng extends implements Những từ khóa định nghĩa kiểu loại IS-A loại khác Sử dụng từ khóa, tạo đối tượng sử dụng thuộc tính đối tượng khác Chúng ta sử dụng từ khóa extends lớp để kế thừa thuộc tính lớp cha trừ thuộc tính private lớp cha Cú pháp Tính kế thừa Java class ten_lop_con extends ten_lop_cha { //cac phuong thuc va cac truong } Bắt kiện Java AWT Các hệ thống GUI xử lý tương tác người dùng với trợ giúp mô hình hướng kiện (event-driven) Sự kiện Java: - Sự kiện định nghĩa kiểu tín hiệu tới chương trình thông báo việc xảy Sự kiện sinh hành động người dùng, ví dụ di chuyển, click chuột, hay nhấn phím Cây phân cấp lớp gói Event Việc xử lý kiện phụ thuộc vào ứng dụng Abstract Windowing Toolkit (AWT) xử lý vài kiện Môi trường mà ứng dụng thi hành ví dụ trình duyệt xử lý kiện khác Người lập trình cần phải xử lý kiện định cần phải viết hàm xử lý kiện Ứng dụng cần đăng ký hàm xử lý kiện với đối tượng Hàm xử lý kiện gọi kiện tương ứng phát sinh JDK1.2 làm việc theo mô hình xử lý kiện Trong quy trình này, ứng dụng cho phép bạn đăng ký phương thức (handler), hay gọi listener với đối tượng Những handler tự động gọi kiện thích hợp phát sinh Một Event Listener lắng nghe kiện mà đối tượng thiết lập Mỗi event listener cung cấp phương thức xử lý kiện Lớp thi hành listener cần phải định nghĩa phương thức Để sử dụng mô hình này, bạn làm theo bước sau: - Cài đặt giao diện listener thích hợp Cấu trúc sau: public class MyApp extends Frame implements ActionListener Xác định tất thành phần tạo kiện Các thành phần button, label, menu item, hay window Cho ví dụ, để đăng ký thành phần với listener, ta sử dụng: exitbtn.addActionListener(This); Xác định tất kiện xử lý Các kiện ‘ActionEvent’ button click hay ‘mouseEvent’ chuột kéo Thi hành phương thức listener viết hàm xử lý kiện tương ứng với phương thức - Lớp kiện ActionEvent TextEvent MouseEvent KeyEvent Mô tả Phát sinh button nhấn, item danh sách chọn lựa nhấn đúp (double-click) hay menu chọn Phát sinh giá trị thành phần textfield hay textarea bị thay đổi Phát sinh chuột di chuyển, click, kéo hay thả Phát sinh bàn phím ấn, nhả BẢNG 1: Các kiện khác sử dụng ứng dụng mô tả chúng Các giao diện cần cài đặt để xử lý số kiện là: o ActionListener TextListener o MouseListener o MouseMotionListener o KeyListener Các giao diện định nghĩa số phương thức để xử lý kiện Những phương thức nạp chồng lớp mà cài đặt giao diện o Giao diện tương tác với người dùng Các ứng dụng phần mềm thân thiện trình bày nhiều hình giao diện đồ họa đẹp mắt Các ngôn ngữ lập trình cung cấp đối tượng đồ họa, chúng điều khiển người lập trình, hay người sử dụng Một số kết quan trọng ngôn ngữ dựa Giao diện người dùng đồ họa (Graphical User Interface - GUI) GUI cung cấp chức nhập liệu theo cách thân thiện với người dùng GUI đa dạng từ ứng dụng đến ứng dụng chứa nhiều điều khiển hộp văn bản, nhãn, hộp danh sách hay điều khiển khác Các ngôn ngữ lập trình khác cung cấp nhiều cách khác để tạo GUI Các ngôn ngữ VB hay VC++ cung cấp chức kéo thả phần mềm giống C++ yêu cầu người lập trình phải viết toàn mã để xây dựng GUI Một phần tử (element) GUI thiết lập cách sử dụng thủ tục sau: - Tạo đối tượng - Xác định xuất ban đầu đối tượng - Chỉ nằm đâu - Thêm phần tử vào giao diện hình Một thành phần (component) GUI đối tượng trực quan Người dùng tương tác với đối tượng thông qua trỏ chuột hay bàn phím Các thành phần button, label v.v… nhìn thấy hình Bất kỳ chung cho tất thành phần GUI tìm thấy lớp Component Để tạo đối tượng GUI cần nhập gói java.awt gói javax.swing Giao diện tương tác với người dùng ứng dụng game cờ Caro xây dựng dựa gói java.awt javax.swing Sau lớp sử dụng ứng dụng từ gói a Gói Java AWT Lớp Color - Màu tạo từ màu: đỏ , xanh xanh da trời Mỗi màu biểu diễn giá trị kiểu byte, từ (tối nhất) đến 255 (sáng nhất) -> RGB model Color c = new Color(r, g, b); - r, g, and b tới màu đỏ, xanh cây, xanh da trời components Ví dụ: Color c = new Color(228, 100, 255); - - - 13 màu chuẩn (black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow) định nghĩa số java.awt.Color Từ JDK 1.4: BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, and YELLOW Thiết lập màu (background) (foreground) : setBackground(Color c) setForeground(Color c) Ví dụ: jbt.setBackground(Color.yellow); jbt.setForeground(Color.red); b Font: Ví dụ: batdau.setFont(new java.awt.Font("Times New Roman", 0, 24)); Lớp Graphics: Lớp trừu tượng Graphics cung cấp giao tiếp đồ hoạ độc lập với thiết bị để thị hình minh hoạ ảnh hình tảng khác Bất kể thành phần (button, label ) hiển thị, đối tượng Graphic tạo tảng gốc (native) Có thể lấy đối tượng thông qua phương thức getGraphics() Ví dụ, đề lấy graphic đối tượng nhãn jlblBanner Graphics graphics = jlblBanner.getGraphics(); Sau đó, sử dụng phương thức lớp Graphics để vẽ lên nhãn Phương thức paintComponent thuộc lớp JComponent : protected void paintComponent(Graphics g) Phương thức gọi hiển thị thị lại Gói Java Swing Dimension Classes in the java.awt package LayoutManager Font Heavyweight FontMetrics Object Color Panel Applet JApplet Window Frame JFrame Dialog JDialog Graphics Component Container * Swing Components in the javax.swing package JComponent Lightweight Cấu trúc gói Swing Frame: - cửa sổ không nằm bên cửa sổ khác; thành phần để chứa GUI khác - Lớp JFrame dùng đề tạo cửa sổ Với chương trình GUI Swing -> sử dụng JFrame -> tạo cửa sổ Cách tạo Frame: Ví dụ: import javax.swing.*; public class MyFrame { public static void main(String[] args) { JFrame frame = new JFrame("Test Frame"); frame.setSize(400, 300); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame EXIT_ON_CLOSE); } } Thêm button vào frame frame.getContentPane().add(new JButton("OK")); Layout managers - Trình quản lý layout (sự bố trí) Java cung cấp mức độ trừu tượng hoá cho phép định hình giao diện lên tất hệ thống cửa sổ - Các thành phần UI đặt containe Mỗi container có trình quản lý layout để xếp thành phần - Sử dụng phương thức setLayout(LayoutManager) container • • Grouplayout làm việc với layout theo chiều ngang chiều dọc riêng rẽ Layout xác định cho chiều cách độc lập Khi tập trung vào chiều, bạn giải nửa vấn đề lúc Điều dễ dàng so với việc xử lý hai chiều lúc Điều có nghĩa là, tất nhiên, thành phần cần phải định nghĩa hai lần layout Nếu bạn quên làm điều này, GroupLayout tạo ngoại lệ Panels: - Là Container để nhóm thành phần UI - Recomend: đặt component, panel -> panel -> frameIl - Để thêm thành phần -> JFrame: thêm vào thành nội dung JFrame Để thêm thành phần vào panel -> thêm trực tiếp vào panel phương thức add Tạo Jpanel: - Sử dụng new JPanel() : layout mặc định FlowLayout - Sử dụng new JPanel(LayoutManager) - Sử dụng phương thức add(Component) JPanel p = new JPanel(); p.add(new JButton("OK")); Image Icon - Java sử dụng lớp javax.swing.ImageIcon để biểu diễn cho biểu tượng Một biểu tượng hình ảnh kích thước cố định - Hình ảnh thường lưu tập tin hình ảnh Bạn sử dụng ImageIcon (tên tập tin) để xây dựng biểu tượng hình ảnh - Ví dụ, câu lệnh sau tạo Icon từ file ảnh us.gif thư mục hình ảnh theo đường dẫn lớp tại: Icon ImageIcon = new ImageIcon ("image / us.gif"); Thực thi cài đặt II Sơ đồ lớp Gồm lớp: a) b) c) Lớp main : để chạy chương trình Lớp start : chứa giao diện bắt đầu Lớp play : chứa giao diện trò chơi,thuật toán sử lí Lớp end: chứa giao diện kết thúc,kết trò chơi Lớp main: gọi đến hàm khởi tạo start Lớp start : yêu cầu người dùng nhập tên người chơi bắt đầu trò chơi Lớp play : Class play MouseMoved Hàm Button Kientra() paintComponent() * * * * * hàm paintComponent() :vẽ bàn cờ, quân cờ Hàm kiemtra() :kiểm tra thắng thua, có quân ko bị chặn đầu thắng Hàm boardPanelMouseMoved() : chuyển đổi kiện chuột sang điểm ,cốt,dòng cụ thể Hàm boardPanelMouseClicked() : thêm điểm vào checked ,gọi đến hàm kiemtra() , in kết Các hàm button : chuyển kiện thành lệnh tương ứng :thoát ,đi lại, chơi lại,ván ,pause Lớp end: in kết trò chơi, yêu cầu người dùng Công nghệ áp dụng a) Kế thừa: d) MouseClicked b) Giao diện tương tác với người dùng: Sử dụng gói javax.swing java.awt - Class start: - Class play: Bàn cờ vẽ gói graphics ,trong hàm paintComponent() - Class end: - Xử lí kiện: Class start: - Class play: - Class end: c) III Kết luận Hiện nay, lập trình game lĩnh vực thu hút nhiều lập trình viên Việc xây dựng ứng dụng vui chơi giải trí cần thiết cho phát triển công nghệ Trong phạm vi đề tài, chúng em trình bày phần công nghệ có liên quan đến ứng dụng lập trình giao diện người dùng với Swing AWT bắt kiện với AWT Nhìn chung game tạo đáp ứng nhu cầu giải trí người chơi Giao diện thân thiện, đơn giản, dễ sử dụng thao tác Tuy nhiên số lỗi lỗi font chữ chưa khắc phục, bàn cờ hạn chế, chưa đẹp mắt Tuy vậy, hạn chế trình độ, thời gian thiết bị nên chúng em không khỏi vướng mắc, sai sót trình tìm hiểu nghiên cứu Chúng em mong nhận đánh giá chỉnh sửa từ thầy cô hướng dẫn Chúng em xin chân thành cảm ơn! Mã nguồn dowloal: https://drive.google.com/file/d/0B72L_seYOaquQ2g0bktOdEV1S DQ/view?usp=sharing [...]... chúng ta cần nhập gói java. awt hoặc gói javax.swing Giao diện tương tác với người dùng của ứng dụng game cờ Caro được xây dựng dựa trên các gói java. awt và javax.swing Sau đây là các lớp được sử dụng trong ứng dụng từ 2 gói trên a Gói Java AWT Lớp Color - Màu được tạo từ 3 màu: đỏ , xanh lá cây hoặc xanh da trời Mỗi màu được biểu diễn bởi một giá trị kiểu byte, từ 0 (tối nhất) đến 25 5 (sáng nhất) ->... giao diện trò chơi, thuật toán sử lí Lớp end: chứa giao diện kết thúc,kết quả trò chơi Lớp main: sẽ gọi đến hàm khởi tạo của start Lớp start : sẽ yêu cầu người dùng nhập tên người chơi và bắt đầu trò chơi Lớp play : Class play MouseMoved Hàm Button Kientra() paintComponent() * * * * * hàm paintComponent() :vẽ bàn cờ, quân cờ Hàm kiemtra() :kiểm tra thắng thua, nếu có 5 quân ko bị chặn 2 đầu thì thắng... quả Các hàm button : chuyển các sự kiện thành các lệnh tương ứng :thoát ,đi lại, chơi lại,ván mới ,pause Lớp end: in ra kết quả của trò chơi, và yêu cầu người dùng Công nghệ được áp dụng a) Kế thừa: d) 2 MouseClicked b) Giao diện tương tác với người dùng: Sử dụng gói javax.swing và java. awt - Class start: - Class play: Bàn cờ được vẽ bởi gói graphics ,trong hàm paintComponent() - Class end: - Xử lí sự... g, b); - r, g, and b chỉ tới 1 màu đỏ, xanh lá cây, xanh da trời bởi các components của nó Ví dụ: Color c = new Color (22 8, 100, 25 5); - - - 13 màu chuẩn (black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow) được định nghĩa như hằng số trong java. awt.Color Từ JDK 1.4: BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, and... hút nhiều lập trình viên Việc xây dựng các ứng dụng vui chơi giải trí là rất cần thiết cho sự phát triển công nghệ Trong phạm vi đề tài, chúng em chỉ trình bày những phần công nghệ cơ bản có liên quan đến ứng dụng như lập trình giao diện người dùng với Swing và AWT và bắt sự kiện với AWT Nhìn chung game tạo ra đáp ứng nhu cầu giải trí của người chơi Giao diện thân thiện, đơn giản, dễ sử dụng và thao... nội dung của JFrame Để thêm thành phần vào panel -> thêm trực tiếp vào panel bằng phương thức add Tạo một Jpanel: - Sử dụng new JPanel() : layout mặc định là FlowLayout - Sử dụng new JPanel(LayoutManager) - Sử dụng phương thức add(Component) JPanel p = new JPanel(); p.add(new JButton("OK")); Image Icon - Java sử dụng các lớp javax.swing.ImageIcon để biểu diễn cho một biểu tượng Một biểu tượng là một... paintComponent(Graphics g) Phương thức này được gọi mỗi khi hiển thị hoặc hiện thị lại Gói Java Swing Dimension Classes in the java. awt package LayoutManager 1 Font Heavyweight FontMetrics Object Color Panel Applet JApplet Window Frame JFrame Dialog JDialog Graphics Component Container * Swing Components in the javax.swing package JComponent Lightweight Cấu trúc cây của gói Swing Frame: - cửa sổ không... được khắc phục, bàn cờ còn hạn chế, chưa đẹp mắt Tuy vậy, do những hạn chế về trình độ, thời gian cũng như thiết bị nên chúng em không khỏi những vướng mắc, sai sót trong quá trình tìm hiểu và nghiên cứu Chúng em rất mong nhận được những đánh giá và chỉnh sửa từ các thầy cô hướng dẫn Chúng em xin chân thành cảm ơn! Mã nguồn dowloal: https://drive.google.com/file/d/0B72L_seYOaquQ2g0bktOdEV1S DQ/view?usp=sharing... một Frame: Ví dụ: import javax.swing.*; public class MyFrame { public static void main(String[] args) { JFrame frame = new JFrame("Test Frame"); frame.setSize(400, 300); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame EXIT_ON_CLOSE); } } Thêm một button vào frame frame.getContentPane().add(new JButton("OK")); Layout managers - Trình quản lý layout (sự bố trí) của Java cung cấp một mức... (background) và nổi (foreground) : setBackground(Color c) setForeground(Color c) Ví dụ: jbt.setBackground(Color.yellow); jbt.setForeground(Color.red); b Font: Ví dụ: batdau.setFont(new java. awt.Font("Times New Roman", 0, 24 )); Lớp Graphics: Lớp trừu tượng Graphics cung cấp giao tiếp đồ hoạ độc lập với thiết bị để hiện thị hình minh hoạ và ảnh trên màn hình của các nền tảng khác nhau Bất kể thành phần ...Thành viên: Đề tài: Lập trình ứng dụng game cờ Caro (Có mã nguồn cuối) MỤC LỤC I Mở đầu: Giới thiệu mục đích Bài tập lớn Java công nghệ xây dựng... đích tính hữu dụng thực tế 2-Giới thiệu toán: Mục đích cụ thể ứng dụng Thông tin: Ứng dụng Game cờ Caro xây dựng nhằm mục đích làm quen với ngôn ngữ, câu lệnh số công nghệ hướng đối tượng tiên tiến... tượng GUI cần nhập gói java.awt gói javax.swing Giao diện tương tác với người dùng ứng dụng game cờ Caro xây dựng dựa gói java.awt javax.swing Sau lớp sử dụng ứng dụng từ gói a Gói Java AWT Lớp