Greenfoot – Công cụ học lập trình hướng đối tượng cho beginner

Xây dựng trên nền tảng Java, Greenfoot được tạo ra nhằm giúp những người mới tiếp cận kĩ thuật lập trình hướng đối tượng một môi trường thân thiện và dễ hiểu. Có thể coi Greenfoot là một thế giới thu nhỏ với các đối tượng đều được mô phỏng trực quan như trong thế giới thực. Qua đó, người học không chỉ tiếp thu hiệu quả mà còn cảm thấy thích thú khi có thể tự mình tạo ra một “thế giới” hoặc trò chơi dễ dàng.

Trang chủ: http://www.greenfoot.org/

Tại đây bạn có thể đi đến các liên kết tải Image Collection,  các scenario mẫu, tài liệu hướng dẫn sử dụng và hướng dẫn tạo scenario cho lập trình viên.

Cài đặt

Bạn cần phiên bản JDK 1.5 (http://java.sun.com/j2se/) trở lên trước khi cài đặt Greenfoot. Sau đó download phiên bản tùy theo hệ điều hành bạn sử dụng và tiến hành cài đặt tại địa chỉ sau: http://www.greenfoot.org/download/

Hướng dẫn cơ bản

Các dự án được tạo bằng Greenfoot được gọi là scenario. Khi mở Greenfoot lần đầu tiên, scenario Wombats sẽ tự động được mở. Bạn có thể mở một scenario khác bằng menu Scenario > Open…

Cửa sổ chương trình bao gồm phần bên phải là các lớp World và Actor. Và phần lưới lớn nằm giữa được gọi là “sân khấu” (the world) nơi tạo thể hiện và trình diễn những gì mà bạn tạo ra.

–       Hai nút ActRun bên dưới dùng để điều khiển world của bạn hoạt động và ngừng. Điểm khác biệt nhỏ là Act sẽ thực hiện từng bước thay vì chạy một mạch như nút Run.

–       Để tạo thêm đối tượng (tạo instance của lớp) bạn hãy nhấn phải vào Actor tương ứng rồi chọn lệnh đầu tiên trong menu ngữ cảnh (new ABC()) và nhấn chuột vào một vị trí cần đặt. Có một cách thuận tiện hơn là bạn giữ phím Shift, khi đó bạn có thể đặt Actor đang được chọn bất kì đâu trên lưới bằng chuột mỗi lần click.

–       Khi nhấn phải vào background  hoặc một Actor trên world, một menu ngữ cảnh sẽ hiện ra bao gồm các phương thức của lớp đó, bạn có thể gọi trực tiếp một phương thức và truyền các tham số cho phương thức đó thông qua một cửa sổ được tạo ra.

Soạn thảo mã nguồn

Greenfoot tích hợp một trình soạn thảo mã nguồn đơn giản nhưng tương đối đầy đủ chức năng. Các phần mã được hiển thị màu nền khác nhau

–       Để sửa đổi bất kì lớp nào, bạn nhấn phải chuột vào lớp đó và chọn Open editor (hoặc double-click), sau khi sửa đổi mã nguồn, bạn nhấn Compile trong cửa sổ soạn thảo để chương trình kiểm tra lỗi cú pháp.

–       Bạn có thể sử dụng phím Ctrl+Spacebar để sử dụng chức năng gợi ý (Intellisense) trong cửa sổ soạn thảo.

–       Một điểm hay của trình soạn thảo này là tự động tạo ra tài liệu mô tả (Documentation) cho lớp. Bạn nhấn phím tắt Ctrl+J hoặc chọn trong combobox góc trên bên phải để chuyển qua lại giữa hai kiểu hiển thị Source Code và Document.

–       Bạn có thể sử dụng tính năng Debug trong Greenfoot bằng cách đặt breakpoint (nhấn chuột vào lề trái hoặc Ctrl+B) và chạy. Khi đến breakpoint thì cửa sổ Debugger sẽ hiển thị thứ tự các phương thức đang thực thi kèm theo chi tiết các biến và hằng được định nghĩa.

Chỉnh sửa dự án Wombat

Bây giờ ta thử thêm vào scenario một Actor với tên là Rock. Nhiệm vụ của Rock là cản đường không cho Wombat đi qua. Bạn hãy làm theo các bước sau để thực hiện điều này:

–       Nhấn phải vào lớp Actor chọn New subclass… Trong bảng New class hiện ra bạn hãy đặt tên class là Rock và chọn image phù hợp (như hình dưới), cuối cùng nhấn OK.

Bạn không cần chỉnh sửa code của lớp Rock vì đối tượng này không thực hiện công việc gì cả, bạn chỉ cần thay đổi hành vi cho Wombat.

–       Mở mã nguồn của lớp Wombat, tìm đến phương thức canMove() và sửa thành như sau:

public boolean canMove()
{
	World myWorld = getWorld();
	int x = getX();
	int y = getY();
	switch(direction) {
		case SOUTH :
		y++;
		break;
		case EAST :
		x++;
		break;
		case NORTH :
		y--;
		break;
		case WEST :
		x--;
		break;
	}
	// test for outside border
	if (x >= myWorld.getWidth() || y >= myWorld.getHeight()) {
		return false;
	}
	else if (x < 0 || y < 0) {
		return false;
	}else if(!myWorld.getObjectsAt(x, y, Rock.class).isEmpty())
		return false;

	return true;
}

myWorld chính là một thể hiện của lớp WombatWorld chứa wombat và leaf, ta dùng phương thức getObjectsAt(x, y, Rock.class) (thừa kế từ lớp World) để lấy về danh sách các đối tượng kiểu Rock nằm tại vị trí x, y. Nếu danh sách khác rỗng, ta sẽ return false để báo rằng wombat không thể di chuyển theo hướng này.

Chi tiết phương thức getObjectsAt() bạn có thể coi trong Greenfoot API bằng cách double-click vào lớp World.

Bây giờ bạn có thể biên dịch lại và tạo thêm vài đối tượng Rock đặt lên world để xem chúng có hoạt động như mong muốn không.

Xuất bản dự án

Greenfoot cung cấp ba cách để xuất dự án của bạn (menu Scenario > Export (Ctrl+E)):

–       Pushlish: Xuất bản dự án lên trang http://greenfootgallery.org/. Đây là trang tập hợp nhiều scenario mà người dùng tạo ra. Bạn cần có tài khoản của trang này nếu muốn chia sẻ dự án của mình lên đây.

–       Webpage: Xuất bản dưới dạng applet để hiển thị trên trình duyệt

–       Application: Xuất thành tập tin .jar để thực thi trực tiếp thông qua JVM (Java Virtual Machine).

https://yinyangit.wordpress.com

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s