1. Arbejde med cellerne på banen

Det er dejligt, at vi kan opdele spillefeltet i celler. Men hvad kan vi gøre med selve cellerne?

For hver celle på spillefeltet kan vi indstille:

  • cellefarve (cellens baggrundsfarve);
  • tekst (dette kan være tekst eller et tal);
  • tekst farve;
  • tekststørrelse som en procentdel af cellestørrelsen.

Lad os overveje metoder til at arbejde med cellerne på spillefeltet:

void setCellColor(int x, int y, Color color)indstiller farven på cellen med koordinater (x, y)lig med color.

Eksempler:

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

Color getCellColor(int x, int y)returnerer farven på cellen med koordinater (x, y).

Eksempel:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)tildeler teksten String valuetil cellen med koordinater (x, y).

Eksempler:

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

String getCellValue(int x, int y)returnerer teksten i cellen med koordinater (x, y).

Eksempler:

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

void setCellTextSize(int x, int y, int size)indstiller størrelsen på teksten i cellen med koordinater (x, y), hvor sizeer teksthøjden som en procentdel af cellehøjden.

Eksempel:

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

int getCellTextSize(int x, int y)returnerer størrelsen af ​​indholdet i cellen med koordinater (x, y).

Eksempel:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)tildeler nummeret int valuetil cellen med koordinater (x, y).

Eksempler:

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

int getCellNumber(int x, int y)returnerer tallet indeholdt i cellen med koordinater (x, y). Hvis cellen ikke indeholder et tal, returnerer den 0.

Eksempler:

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

void setCellTextColor(int x, int y, Color color)indstiller farven på cellens indhold (tekst) med koordinater (x, y).

Eksempler:

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

Color getCellTextColor(int x, int y)returnerer farven på cellens indhold (tekst) med koordinater (x, y).

Eksempel:

Color textColor = getCellTextColor(1, 3);

For nemheds skyld er der flere setCellValueEx()metoder med forskellige sæt parametre:

void setCellValueEx(int x, int y, Color cellColor, String value)indstiller cellens baggrundsfarve og tekst med koordinater (x, y)lig med henholdsvis cellColorog value.

Eksempel:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)indstiller cellens baggrundsfarve, tekst og tekstfarve med koordinater (x, y)lig med henholdsvis cellColor, value, og .textColor

Eksempel:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);indstiller cellens baggrundsfarve, tekst, tekstfarve og tekststørrelse med koordinater (x, y)lig med henholdsvis cellColor, value, textColor, og textSize.

Eksempel:

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


2. Arbejde med farve

CodeGym-spilmotoren har en speciel Colortype, der indeholder unikke værdier for 148 farver. Det har også en særlig NONEværdi, der repræsenterer fraværet af farve.

Eksempler på arbejde med farver

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.

Du kan farve en celle rød ved at bruge kommandoen:

setCellColor(0, 2, Color.RED);

Du kan kontrollere, om en celle har en bestemt farve med en kommando som:

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

Nogle gange skal du muligvis få en række af alle mulige farver. For at gøre dette skal du bruge values()metoden.

Eksempel:

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

At få en farves indeks i farvepaletten er meget let at gøre - bare brug ordinal()metoden:

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

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

Du kan også nemt få en farve ved dens indeks:

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


3. Dialogbokse

I slutningen af ​​spillet skal vi fortælle spilleren, om han eller hun har vundet eller tabt. Til denne og andre lejligheder har CodeGym-spilmotoren den specielle void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)metode, som viser en dialogboks med messagebeskeden.
Parametrene for denne metode er:

  • cellColorer dialogboksens baggrundsfarve
  • messageer teksten i beskeden
  • textColorer farven på teksten i beskeden
  • textSizeer størrelsen på teksten i beskeden

Dialogboksen lukker sig selv, hvis brugeren trykker på mellemrumstasten eller klikker på dialogboksen med musen.

Eksempel på at kalde denne metode:

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


4. Nyttemetoder

Når du skriver spil, bruger du ofte tilfældige tal. For at gøre det nemmere at få tilfældige tal, kan du bruge spilmotorens hjælpemetoder:

int getRandomNumber(int max)returnerer et tilfældigt tal fra 0til (max–1)inklusive.

int getRandomNumber(int min, int max)returnerer et tilfældigt tal fra mintil (max–1)inklusive.


5. JDK 11+

Når du kører dit program fra IntelliJ IDEA, kan en klasse, der arver Game-klassen, generere følgende fejl:

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

I dette tilfælde skal du for hver sådan klasse udføre disse trin én gang:
  1. Åbn KørRediger konfiguration
  2. For værdien af ​​VM-indstillinger skal du indtaste følgende:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    OPMÆRKSOMHED:

    I nyere versioner af IntelliJ IDEA er feltet "VM-indstillinger" ikke vist som standard. Tryk på ALT+V for at vise den

  3. Tryk på: AnvendOK
  4. Kør spillet.