90 Глава 4 • Введение в 2D-графику
Sudokuv2/src/org/example/sudoku/Keypad.java
private void returnResult(int tile) {
puzzleView.setSelectedTile(tile);
dismiss();
}
Мы вызывае� �етод
PuzzleView .setSelectedTile()
�чтобы из�енит� теку�ий тайл
�оловоло�ки� Метод
dismiss
вызывает закрытие диало�ово�о окна
Keypad
� Сейча��
ко�да у на� е�т� диало�овое окно
Keypad
� вызове� кла��
Game
и извлече� резул�тат�
Sudokuv2/src/org/example/sudoku/Game.java
protected void showKeypadOrError(int x, int y) {
int tiles[] = getUsedTiles(x, y);
if (tiles.length == 9) {
Toast toast = Toast.makeText(this,
R.string.no_moves_label, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
} else {
Log.d(TAG, "showKeypad: used=" + toPuzzleString(tiles));
Dialog v = new Keypad(this, tiles, puzzleView);
v.show();
}
}
Для то�о чтобы решит�� какие �ифры �ожно выбират�� �ы передае� кон�трук�
тору кла��а
Keypad
�а��ив� �одержа�ий в�е �ифры� которые уже были и�пол�зо�
ваны�
Создание игровой логики
О�тавшая�я ча�т� кода в
Game .java
отвечает за и�рову� ло�ику� в ча�тно�ти за
определение верных и неверных ходов в �оответ�твии � правила�и и�ры� Метод
setTileIfValid
() — ее кл�чевая ча�т�� По заданны� координата�
x и
y и ново�у значе�
ни� для тайла он из�еняет тайл лиш� в то� �лучае� е�ли пред�тавленное значение
допу�ти�о�
Достарыңызбен бөлісу: