## 1. Nggarap sel saka lapangan playing

Iku apik yen kita bisa dibagi lapangan playing menyang sel. Nanging apa sing bisa kita lakoni karo sel kasebut?

Kanggo saben sel ing lapangan dolanan, kita bisa nyetel:

• werna sel (warna latar mburi sel);
• teks (iki bisa dadi teks utawa nomer);
• werna teks;
• ukuran teks minangka persentasi saka ukuran sel.

Ayo nimbang cara kanggo nggarap sel ing lapangan dolanan:

`void setCellColor(int x, int y, Color color)`nyetel werna sel kanthi koordinat `(x, y)`sing padha karo `color`.

``````setCellColor(0, 0, Color.RED);
setCellColor(3, 6, Color.BLACK);
setCellColor(6, 8, Color.NONE);``````

`Color getCellColor(int x, int y)`ngasilake werna sel kanthi koordinat `(x, y)`.

``Color myColor = getCellColor(2, 0);``

`void setCellValue(int x, int y, String value)`menehi teks menyang `String value`sel kanthi koordinat `(x, y)`.

``````setCellValue(3, 3, "text");
setCellValue(0, 8, "W");
setCellValue(4, 1, "2222");
setCellValue(6, 6, "");``````

`String getCellValue(int x, int y)`ngasilake teks sing ana ing sel kanthi koordinat `(x, y)`.

``````String s = getCellValue(3, 3);
System.out.println(getCellValue(4, 1));``````

`void setCellTextSize(int x, int y, int size)`nyetel ukuran teks ing sel kanthi koordinat `(x, y)`, ing ngendi `size`dhuwur teks minangka persentasi saka dhuwur sel.

``setCellTextSize(2, 0, 70); // 70% of the cell height``

`int getCellTextSize(int x, int y)`ngasilake ukuran isi ing sel kanthi koordinat `(x, y)`.

``int size = getCellTextSize(2 , 0);``

`void setCellNumber(int x, int y, int value)`menehi nomer `int value`menyang sel kanthi koordinat `(x, y)`.

``````setCellNumber(3, 3, 40);
setCellNumber(0, 8, -8);
setCellNumber(4, 1, 2222);
setCellNumber(6, 6, 0);``````

`int getCellNumber(int x, int y)`ngasilake nomer sing ana ing sel kanthi koordinat `(x, y)`. Yen sel ora ngemot nomer, sel bakal ngasilake 0.

``````int i = getCellNumber(3, 3);
System.out.println(getCellNumber(4, 1));``````

`void setCellTextColor(int x, int y, Color color)`nyetel warna isi (teks) sel kanthi koordinat `(x, y)`.

``````setCellTextColor(2, 1, Color.GREEN);
setCellTextColor(0, 1, Color.NONE);``````

`Color getCellTextColor(int x, int y)`ngasilake warna isi (teks) sel kanthi koordinat `(x, y)`.

``Color textColor = getCellTextColor(1, 3);``

Kanggo penak, ana macem-macem `setCellValueEx()`cara kanthi paramèter sing beda:

`void setCellValueEx(int x, int y, Color cellColor, String value)`nyetel werna latar mburi lan teks sel kanthi koordinat `(x, y)`padha karo `cellColor`lan `value`, mungguh.

``setCellValueEx(0, 2, Color.BLUE, "56");``

`void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)`nyetel werna latar mburi, teks, lan werna teks sel kanthi koordinat `(x, y)`padha karo `cellColor`, `value`, lan `textColor`, mungguh.

``setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);``

`void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);`nyetel werna latar mburi, teks, werna teks, lan ukuran teks sel kanthi koordinat `(x, y)`padha karo `cellColor`, `value`, `textColor`, lan `textSize`, mungguh.

``setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);``

## 2. Nggarap werna

Mesin game CodeGym nduweni `Color`jinis khusus sing ngemot nilai unik kanggo 148 werna. Uga nduweni `NONE`nilai khusus sing nuduhake ora ana warna.

Conto nggarap warna

``````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.``````

Sampeyan bisa werna abang sel nggunakake printah:

``setCellColor(0, 2, Color.RED);``

Sampeyan bisa mriksa manawa sel minangka warna tartamtu kanthi prentah kaya:

``````if (getCellColor(0,2) == Color.GREEN)
{
}``````

Kadhangkala sampeyan kudu njaluk macem-macem warna sing bisa. Kanggo nindakake iki, gunakake `values()`metode kasebut.

``````// An array containing every available color is assigned to the colors variable.
Color[] colors = Color.values();``````

Entuk indeks warna ing palet warna gampang banget - mung gunakake `ordinal()`cara:

``````Color color = Color.RED;
int redIndex = color.ordinal(); // Index of the color red

int blueIndex = Color.BLUE.ordinal(); // Index of the color blue``````

Sampeyan uga bisa kanthi gampang entuk warna kanthi indeks:

`````` // The color whose index is 10 in the Color enum is assigned to the color variable.
Color color = Color.values()[10];``````

## 3. Kothak dialog

Ing pungkasan game, kita kudu menehi katrangan marang pemain yen dheweke menang utawa kalah. Kanggo iki lan kesempatan liyane, mesin game CodeGym duwe `void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)`cara khusus, sing nampilake kothak dialog kanthi `message`pesen kasebut.
Parameter metode iki yaiku:

• `cellColor`yaiku werna latar mburi kothak dialog
• `message`yaiku teks pesen
• `textColor`yaiku warna teks pesen
• `textSize`yaiku ukuran teks pesen

Kothak dialog nutup dhewe yen pangguna menet spasi utawa ngeklik kothak dialog nganggo mouse.

Conto nelpon cara iki:

``````// Display a dialog box with a message
showMessageDialog(Color.BLACK, "EPIC FAIL", Color.RED, 80);``````

## 4. Metode Utilitas

Nalika nulis game, sampeyan bakal kerep nggunakake nomer acak. Kanggo nggampangake entuk nomer acak, sampeyan bisa nggunakake cara sarana mesin game:

`int getRandomNumber(int max)`ngasilake nomer acak saka `0`kanggo `(max–1)`klebu.

`int getRandomNumber(int min, int max)`ngasilake nomer acak saka `min`kanggo `(max–1)`klebu.

## 5. JDK 11+

Nalika mbukak program saka IntelliJ IDEA, kelas sing marisi kelas Game bisa nyebabake kesalahan ing ngisor iki:

``Error: JavaFX runtime components are missing, and are required to run this application``

Ing kasus iki, kanggo saben kelas kasebut, sampeyan kudu nindakake langkah-langkah iki sapisan:
1. Bukak RunEditConfiguration
2. Kanggo nilai pilihan VM , ketik ing ngisor iki:
``--module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base``

PERHATIAN:

Ing versi anyar saka IntelliJ IDEA, kolom "pilihan VM" ora ditampilake kanthi gawan. Kanggo nampilake, penet ALT + V

3. Pencet: AplikasiOK
4. Mbukak game.