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

Nghiên cứu xây dựng hệ thống cờ caro

18 4 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 18
Dung lượng 456,83 KB

Nội dung

Bắt sự kiện trong Java AWTCác hệ thống GUI xử lý các tương tác người dùng với sự trợ giúp của mô hình hướng sự kiệnevent-driven* Sự kiện trong Java:- Sự kiện có thể được định nghĩa như m

ĐỀ TÀI : NGHIÊN CỨU XÂY DỰNG HỆ THỐNG CỜ CARO ( Thuộc NHÓM CHỦ ĐỀ SỐ 11 ) Họ tên sinh viên : Nguyễn Thế Đức Mã sinh viên : 11160928 Lớp : Trí tuệ nhân tạo Mục lục I MỞ ĐẦU I.1 Giới thiệu chung .3 I.2 GIỚI THIỆU BÀI TOÁN I.3 Các công nghệ hướng đối tượng sử dụng ứng dụng Kế thừa Bắt kiện Java AWT Giao diện tương tác với người dùng II.THỰC THI VÀ CÀI ĐẶT 12 II.1 Sơ đồ class 12 II.2 Công nghệ áp dụng 13 III.KẾT LUẬN .18 I MỞ ĐẦU I.1 Giới thiệu chung 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 cịn 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 hồn tồ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 cịn nhắc đến Java ngôn ngữ mà nhắc đến Java công nghệ hay tảng phát triể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 ứng dụng vào trí tuệ nhân tạo , lập trình ứng dụng Java đơn giản có mục đích tính hữu dụng thực tế I.2 GIỚI THIỆU BÀI TOÁN Ứ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ịn nhăm mục đích giải trí nhẹ nhàng cho căng thẳng I.3 Các công nghệ hướng đối tượng 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ệ ISA, gọi mối quan hệ chacon 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 ISA 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 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 biế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 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 Mô tả ActionEvent Phát sinh button nhấn, item danh sách , chọn lựa nhấn đúp menu chọn TextEvent Phát sinh giá trị thành phần textfield hay textarea bị thay đổi MouseEvent Phát sinh chuột di chuyển, click, kéo hay thả KeyEvent 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à:  ActionListener  TextListener  MouseListener  MouseMotionListener  KeyListener Các giao diện định nghĩa số phương thức để xử lý kiện Những phương thức đặt nạp chồng lớp mà cài giao diện 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++ u cầu người lập trình phải viết tồn mã để xây dựng GUI Một phần tử 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 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 gái 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); *)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 b.Gói Java Swing 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ẽ Lay out xác định cho chiều cách độc lập lập Khi tập chung vào chiều, bạn giải vấn đề nửa lúc Điều dễ dàng so với việc xử lý hai chiều lúc Điều có nghĩa , tất nhiên , thành phần cần phải định nghĩa hai lần layout , bạn quên làm điều , 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"); II.THỰC THI VÀ CÀI ĐẶT II.1 Sơ đồ class Gồm lớp: - 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 tốn sử lí - Lớp end: chứa giao diện kết thúc,kết trò chơi a) Lớp main: gọi đến hàm khởi tạo start b) 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 c) Lớp play : - 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 d) Lớp end: in kết trò chơi, yêu cầu người dùng II.2 Công nghệ áp dụng a) Kế thừa: 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: 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, 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 q 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!

Ngày đăng: 29/12/2023, 16:06

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

TÀI LIỆU LIÊN QUAN

w