有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何显示用户在板上的什么位置按下移动数独游戏?

我正在用java-Intellij制作一个数独游戏。我想向用户显示他们按下的位置,但我不知道如何操作。 如果需要将整个文件保存在github上: https://github.com/SamirSydykov03/Sudoku-Varients-for-mobile-phones

这是我的游戏。爪哇


import com.example.sudokuvarients.normalsudoku9x9.SudokuGrid.GameGrid;
public class Game {
    private static Game instance;
    private GameGrid grid = null;
    private int selectedX = -1;
    private int selectedY = -1;
    private Game(){}
    public static Game getInstance(){
        if(instance == null){
            instance = new Game();
        }
        return instance;
    }
    public void createGrid(Context context){
        int[][] Sudoku = SudokuGenerator.getInstance().generateGrid();
        Sudoku = SudokuGenerator.getInstance().removal(Sudoku);
        grid = new GameGrid(context);
        grid.setGrid(Sudoku);
    }

    public GameGrid getGrid(){
        return grid;
    }

    public void setSelectedPos(int x, int y){
        setSelectedItem();
        selectedX = x;
        selectedY = y;

    }
    public void setSelectedItem(){
        grid.getItem(-1,-1);
    }

    public void setNumber(int number){
        if(selectedY != -1 && selectedX != -1){
            grid.setItem(selectedX,selectedY,number);
        }
        grid.checkGame();
    }

这是我的BaseSudokoCell。爪哇

package com.example.sudokuvarients.normalsudoku9x9.SudokuGrid;

import 安卓.content.Context;
import 安卓.view.View;

public class BaseSudokuCell extends View {

    private boolean modify = true;
    private int value;
    private boolean selected;

    public BaseSudokuCell(Context context) {
        super(context);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, widthMeasureSpec);
    }
    public void setNotModify(){
        modify = false;
    }
    public void setInitialValue(int value){
        this.value = value;
        invalidate();
    }

    public void setValue(int value){
        if(modify){
            this.value = value;
        }
        invalidate();
    }
    public boolean getSelect(){
        return selected;
    }
    public int getValue(){
        return  value;
    }
}

这是我的SudokuCell。java-它确实绘制了一个平铺,但它并不隐藏,而是在所有单元格中绘制。单击时,它不会执行任何操作

import 安卓.content.Context;
import 安卓.graphics.Canvas;
import 安卓.graphics.Color;
import 安卓.graphics.Paint;
import 安卓.graphics.Rect;
import 安卓.view.View;

public class SudokuCell extends BaseSudokuCell{

    private Paint mPaint;


    public SudokuCell(Context context){
        super(context);
        mPaint =new Paint();

    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        drawNumber(canvas);
        drawLines(canvas);
            drawRectangle(canvas);

    }

    private void drawLines(Canvas canvas) {
        mPaint.setColor(Color.MAGENTA);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeWidth(5);
        canvas.drawRect(0,0,getWidth(), getHeight(), mPaint);
    }

    private void drawNumber(Canvas canvas) {
        mPaint.setColor(Color.CYAN);
        mPaint.setTextSize(60);
        mPaint.setStyle(Paint.Style.FILL);
        Rect bounds = new Rect();
        mPaint.getTextBounds(String.valueOf(getValue()), 0, String.valueOf(getValue()).length(), bounds);
        if (getValue() != 0) {
            canvas.drawText(String.valueOf(getValue()), (getWidth() - bounds.width()) / 2, (getHeight() + bounds.height()) / 2, mPaint);
        }

    }

    private void drawRectangle(Canvas canvas){
        Rect ourRect = new Rect();
        ourRect.set(0,0,canvas.getWidth()-5,canvas.getHeight()-5);
        Paint grey = new Paint();
        grey.setColor(Color.GRAY);
        grey.setStyle(Paint.Style.FILL);
        canvas.drawRect(ourRect,grey);

    }



}

共 (0) 个答案