当前位置: 动力学知识库 > 问答 > 编程问答 >

java - I can't seem to get a working main method for my project

问题描述:

I am programming a minesweeper game, and having a problem making the main method. I cant seem to get the text based game to output to the screen, allowing the user to interact with it. I have tried several ways, but none have worked.

public class Game {

private Board board;

boolean finish = false;

boolean win = false;

int turn = 0;

public void Jogo() {

board = new Board();

Play(board);

}

public void Play(Board board) {

do {

turn++;

System.out.println("Turn " + turn);

board.show();

finish = board.setPosition();

if (!finish) {

board.openNeighbors();

finish = board.win();

}

} while (!finish);

if (board.win()) {

System.out.println("Congratulations, you let the 10 fields with the mines in " + turn

+ " turns");

board.showMines();

} else {

System.out.println("Mine! You lost!");

board.showMines();

}

}

}

import java.util.Random;

import java.util.Scanner;

public class Board extends Game {

private int[][] mines;

private char[][] boardgame;

private int Line, Column;

Random random = new Random();

Scanner input = new Scanner(System.in);

public void Jogo() {

mines = new int[10][10];

boardgame = new char[10][10];

startMines();

randomMines();

fillTips();

startBoard();

}

public boolean win() {

int count = 0;

for (int line = 1; line < 9; line++)

for (int column = 1; column < 9; column++)

if (boardgame[line][column] == '_')

count++;

if (count == 10)

return true;

else

return false;

}

public void openNeighbors() {

for (int i = -1; i < 2; i++)

for (int j = -1; j < 2; j++)

if ((mines[Line + i][Column + j] != -1)

&& (Line != 0 && Line != 9 && Column != 0 && Column != 9))

boardgame[Line + i][Column + j] =

Character.forDigit(mines[Line + i][Column + j], 10);

}

public int getPosition(int Line, int Column) {

return mines[Line][Column];

}

public boolean setPosition() {

do {

System.out.print("\nLine: ");

Line = input.nextInt();

System.out.print("Column: ");

Column = input.nextInt();

if ((boardgame[Line][Column] != '_')

&& ((Line < 9 && Line > 0) && (Column < 9 && Column > 0)))

System.out.println("Field already shown");

if (Line < 1 || Line > 8 || Column < 1 || Column > 8)

System.out.println("Choose a number between 1 and 8");

} while ((Line < 1 || Line > 8 || Column < 1 || Column > 8)

|| (boardgame[Line][Column] != '_'));

if (getPosition(Line, Column) == -1)

return true;

else

return false;

}

public void show() {

System.out.println("\n Lines");

for (int Line = 8; Line > 0; Line--) {

System.out.print(" " + Line + " ");

for (int Column = 1; Column < 9; Column++) {

System.out.print(" " + boardgame[Line][Column]);

}

System.out.println();

}

System.out.println("\n 1 2 3 4 5 6 7 8");

System.out.println(" Columns");

}

public void fillTips() {

for (int line = 1; line < 9; line++)

for (int column = 1; column < 9; column++) {

for (int i = -1; i <= 1; i++)

for (int j = -1; j <= 1; j++)

if (mines[line][column] != -1)

if (mines[line + i][column + j] == -1)

mines[line][column]++;

}

}

public void showMines() {

for (int i = 1; i < 9; i++)

for (int j = 1; j < 9; j++)

if (mines[i][j] == -1)

boardgame[i][j] = '*';

show();

}

public void startBoard() {

for (int i = 1; i < mines.length; i++)

for (int j = 1; j < mines.length; j++)

boardgame[i][j] = '_';

}

public void startMines() {

for (int i = 0; i < mines.length; i++)

for (int j = 0; j < mines.length; j++)

mines[i][j] = 0;

}

public void randomMines() {

boolean raffled;

int Line, Column;

for (int i = 0; i < 10; i++) {

do {

Line = random.nextInt(8) + 1;

Column = random.nextInt(8) + 1;

if (mines[Line][Column] == -1)

raffled = true;

else

raffled = false;

} while (raffled);

mines[Line][Column] = -1;

}

}

}

public class MineSweeper extends Board {

public static void main(String[] args) {

Game game = new Game();

}

}

分享给朋友:
您可能感兴趣的文章:
随机阅读: