1. Làm việc với các ô của sân chơi
Thật tuyệt khi chúng ta có thể chia sân chơi thành các ô. Nhưng chúng ta có thể làm gì với chính các tế bào?
Đối với mỗi ô của sân chơi, chúng ta có thể đặt:
- màu ô (màu nền của ô);
- văn bản (có thể là văn bản hoặc số);
- văn bản màu;
- kích thước văn bản dưới dạng phần trăm kích thước ô.
Hãy xem xét các phương pháp làm việc với các ô của sân chơi:
void setCellColor(int x, int y, Color color)
đặt màu của ô có tọa độ (x, y)
bằng color
.
Ví dụ:
setCellColor(0, 0, Color.RED);
setCellColor(3, 6, Color.BLACK);
setCellColor(6, 8, Color.NONE);
Color getCellColor(int x, int y)
trả về màu của ô có tọa độ (x, y)
.
Ví dụ:
Color myColor = getCellColor(2, 0);
void setCellValue(int x, int y, String value)
gán văn bản vào String value
ô có tọa độ (x, y)
.
Ví dụ:
setCellValue(3, 3, "text");
setCellValue(0, 8, "W");
setCellValue(4, 1, "2222");
setCellValue(6, 6, "");
String getCellValue(int x, int y)
trả về văn bản chứa trong ô có tọa độ (x, y)
.
Ví dụ:
String s = getCellValue(3, 3);
System.out.println(getCellValue(4, 1));
void setCellTextSize(int x, int y, int size)
đặt kích thước của văn bản trong ô có tọa độ (x, y)
, trong đó size
chiều cao của văn bản dưới dạng phần trăm chiều cao của ô.
Ví dụ:
setCellTextSize(2, 0, 70); // 70% of the cell height
int getCellTextSize(int x, int y)
trả về kích thước của nội dung trong ô có tọa độ (x, y)
.
Ví dụ:
int size = getCellTextSize(2 , 0);
void setCellNumber(int x, int y, int value)
gán số int value
cho ô có tọa độ (x, y)
.
Ví dụ:
setCellNumber(3, 3, 40);
setCellNumber(0, 8, -8);
setCellNumber(4, 1, 2222);
setCellNumber(6, 6, 0);
int getCellNumber(int x, int y)
trả về số chứa trong ô có tọa độ (x, y)
. Nếu ô không chứa số, nó sẽ trả về 0.
Ví dụ:
int i = getCellNumber(3, 3);
System.out.println(getCellNumber(4, 1));
void setCellTextColor(int x, int y, Color color)
đặt màu cho nội dung (văn bản) của ô có tọa độ (x, y)
.
Ví dụ:
setCellTextColor(2, 1, Color.GREEN);
setCellTextColor(0, 1, Color.NONE);
Color getCellTextColor(int x, int y)
trả về màu của nội dung (văn bản) của ô có tọa độ (x, y)
.
Ví dụ:
Color textColor = getCellTextColor(1, 3);
Để thuận tiện cho bạn, có nhiều setCellValueEx()
phương thức với các bộ tham số khác nhau:
void setCellValueEx(int x, int y, Color cellColor, String value)
đặt màu nền và văn bản của ô có tọa độ lần lượt (x, y)
bằng cellColor
và value
.
Ví dụ:
setCellValueEx(0, 2, Color.BLUE, "56");
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)
đặt màu nền, văn bản và màu văn bản của ô có tọa độ (x, y)
lần lượt bằng cellColor
, value
, và textColor
.
Ví dụ:
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);
đặt màu nền, văn bản, màu văn bản và kích thước văn bản của ô có tọa độ lần (x, y)
lượt bằng cellColor
, value
, textColor
và textSize
.
Ví dụ:
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);
2. Làm việc với màu sắc
Công cụ trò chơi CodeGym có một Color
loại đặc biệt chứa các giá trị duy nhất cho 148 màu. Nó cũng có một NONE
giá trị đặc biệt đại diện cho sự vắng mặt của màu sắc.
Ví dụ về làm việc với màu sắc
Color myColor = Color.WHITE; // The color white is assigned to the myColor variable.
Color redColor = Color.RED; // The color red is assigned to the redColor variable.
Color blueColor = Color.BLUE; // The color blue is assigned to the blueColor variable.
Bạn có thể tô màu đỏ cho một ô bằng lệnh:
setCellColor(0, 2, Color.RED);
Bạn có thể kiểm tra xem một ô có phải là một màu nhất định hay không bằng một lệnh như:
if (getCellColor(0,2) == Color.GREEN)
{
}
Đôi khi bạn có thể cần lấy một mảng có mọi màu có thể. Để làm điều này, sử dụng values()
phương pháp.
Ví dụ:
// An array containing every available color is assigned to the colors variable.
Color[] colors = Color.values();
Lấy chỉ mục của màu trong bảng màu rất dễ thực hiện — chỉ cần sử dụng ordinal()
phương pháp:
Color color = Color.RED;
int redIndex = color.ordinal(); // Index of the color red
int blueIndex = Color.BLUE.ordinal(); // Index of the color blue
Bạn cũng có thể dễ dàng lấy màu theo chỉ mục của nó:
// The color whose index is 10 in the Color enum is assigned to the color variable.
Color color = Color.values()[10];
3. Hộp thoại
Khi kết thúc trò chơi, chúng ta cần cho người chơi biết mình thắng hay thua. Đối với trường hợp này và các trường hợp khác, công cụ trò chơi CodeGym có void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)
phương thức đặc biệt, hiển thị hộp thoại có message
thông báo.
Các thông số của phương pháp này là:
cellColor
là màu nền của hộp thoạimessage
là nội dung của tin nhắntextColor
là màu của văn bản của tin nhắntextSize
là kích thước của văn bản của tin nhắn
Hộp thoại tự đóng nếu người dùng nhấn phím cách hoặc nhấp chuột vào hộp thoại.
Ví dụ gọi phương thức này:
// Display a dialog box with a message
showMessageDialog(Color.BLACK, "EPIC FAIL", Color.RED, 80);
4. Phương thức tiện ích
Khi viết trò chơi, bạn sẽ thường xuyên sử dụng các số ngẫu nhiên. Để lấy số ngẫu nhiên dễ dàng hơn, bạn có thể sử dụng các phương thức tiện ích của công cụ trò chơi:
int getRandomNumber(int max)
trả về một số ngẫu nhiên từ 0
đến (max–1)
bao gồm.
int getRandomNumber(int min, int max)
trả về một số ngẫu nhiên từ min
đến (max–1)
bao gồm.
5. JDK 11+
Khi chạy chương trình của bạn từ IntelliJ IDEA, một lớp kế thừa lớp Trò chơi có thể tạo ra lỗi sau:
Error: JavaFX runtime components are missing, and are required to run this application
Trong trường hợp này, đối với mỗi lớp như vậy, bạn cần thực hiện các bước sau một lần:
- Mở Chạy → Chỉnh sửa Cấu hình
- Đối với giá trị của VM options , hãy nhập như sau:
--module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
CHÚ Ý:
Trong các phiên bản gần đây của IntelliJ IDEA, trường "Tùy chọn máy ảo" không được hiển thị theo mặc định. Để hiển thị nó, nhấn ALT+V
- Nhấn: Áp dụng → OK
- Chạy trò chơi.
GO TO FULL VERSION