Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.googlecode.lanterna.SGR;
- import com.googlecode.lanterna.TerminalPosition;
- import com.googlecode.lanterna.TextColor;
- import com.googlecode.lanterna.graphics.TextGraphics;
- import com.googlecode.lanterna.input.KeyStroke;
- import com.googlecode.lanterna.screen.Screen;
- import com.googlecode.lanterna.screen.TerminalScreen;
- import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
- import com.googlecode.lanterna.terminal.Terminal;
- import java.awt.*;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Scanner;
- import static com.googlecode.lanterna.input.KeyType.ArrowDown;
- import static com.googlecode.lanterna.input.KeyType.ArrowUp;
- public class Main {
- private static Board board;
- private static Board Sboard;
- private static int indexcap=0;
- private static int limit=999;
- public static void main(String[] args) throws IOException {
- Terminal terminal = new DefaultTerminalFactory().createTerminal();
- Screen screen = new TerminalScreen(terminal);
- TextGraphics tG = screen.newTextGraphics();
- screen.startScreen();
- int dimX = 0;
- int dimY= 0;
- Scanner file = new Scanner(new File("Napis.txt"));
- //Scoreboard scoreboard = new Scoreboard();
- int col = 0;
- while (file.hasNext()) {
- tG.putString(0, col, file.nextLine());
- col++;
- }
- file.close();
- int index = 0, i;
- int x = 1, y = 1;
- ArrayList<String> xd = new ArrayList<String>();
- xd.add("Start");
- xd.add("Opcje");
- xd.add("Wyjście");
- tG.putString(10, 10, xd.get(0), SGR.BOLD);
- tG.putString(10, 11, xd.get(1));
- tG.putString(10, 12, xd.get(2));
- terminal.setCursorVisible(false);
- screen.refresh();
- boolean keepRunning = true;
- while (keepRunning) {
- KeyStroke keyPresed = terminal.pollInput();
- if (keyPresed != null) {
- System.out.println(keyPresed);
- switch (keyPresed.getKeyType()) {
- case ArrowDown:
- if (index == xd.size() - 1)
- break;
- tG.putString(10, 10 + index, xd.get(index));
- screen.refresh();
- index++;
- tG.putString(10, 10 + index, xd.get(index), SGR.BOLD);
- screen.refresh();
- break;
- case ArrowUp:
- if (index == indexcap)
- break;
- {
- }
- tG.putString(10, 10 + index, xd.get(index));
- screen.refresh();
- index--;
- tG.putString(10, 10 + index, xd.get(index), SGR.BOLD);
- screen.refresh();
- break;
- case Escape:
- index=0;
- indexcap=0;
- xd.remove(5);
- xd.remove(4);
- xd.remove(3);
- screen.clear();
- tG.putString(10, 10, xd.get(0), SGR.BOLD);
- tG.putString(10, 11, xd.get(1));
- tG.putString(10, 12, xd.get(2));
- screen.refresh();
- break;
- default:
- System.out.println(keyPresed);
- case Enter:
- if (index == 0) { //exit
- screen.clear();
- {
- System.out.println(dimX+ " "+dimY);
- Board board = new Board(dimX, dimY);
- Board sboard = new Board(dimX, dimY);
- Game Game = new Game(board, sboard);
- Board.PrintTable(board, tG);
- Game.SetShipsOnBoard();
- screen.refresh();
- }
- keepRunning = false;
- }
- if (index == 2) {
- screen.clear();
- i = 0;
- Scanner cya = new Scanner(new File("cya.txt"));
- while (cya.hasNext()) {
- tG.putString(0, i, cya.nextLine());
- i++;
- }
- screen.refresh();
- keepRunning = false;
- cya.close();
- }
- if (index == 1) //options
- {
- indexcap = 3;
- screen.clear();
- screen.refresh();
- xd.add("Łatwy(5 statków, tablica 10x10, nieograniczone ruchy)");
- xd.add("Średni(5 statków, tablica 12x12, maksymalnie 50 ruchów)");
- xd.add("Trudny(5 statków, tablica 12x12, maksymalnie 35 ruchów)");
- index = index + 2;
- screen.clear();
- screen.refresh();
- if (index == 3) {
- dimX = 10;
- dimY = 10;
- limit = 999;
- }
- if (index == 4) {
- dimX = 12;
- dimY = 12;
- limit = 50;
- }
- if (index == 5) {
- dimX = 12;
- dimY = 12;
- limit = 50;
- }
- break;
- }
- }
- }
- }
- boolean gra = true;
- while(gra)
- {
- KeyStroke keyPresed = terminal.pollInput();
- screen.setCursorPosition(new TerminalPosition(x, y));
- screen.refresh();
- if (keyPresed != null) {
- switch (keyPresed.getKeyType()) {
- case ArrowRight:
- if (x == dimX)
- break;
- x++;
- screen.setCursorPosition(new TerminalPosition(x, y));
- System.out.println(keyPresed);
- screen.refresh();
- break;
- case ArrowLeft:
- if (x == 1)
- break;
- x--;
- screen.setCursorPosition(new TerminalPosition(x, y));
- System.out.println(keyPresed);
- screen.refresh();
- break;
- case ArrowDown:
- if (y == dimY)
- break;
- y++;
- screen.setCursorPosition(new TerminalPosition(x, y));
- System.out.println(keyPresed);
- screen.refresh();
- break;
- case ArrowUp:
- if (y == 1)
- break;
- y--;
- screen.setCursorPosition(new TerminalPosition(x, y));
- System.out.println(keyPresed);
- screen.refresh();
- break;
- case Enter:
- Game.ShootField(x - 1, y - 1);
- screen.refresh();
- Board.PrintTable(Sboard, tG);
- break;
- default:
- }
- }
- }
- screen.refresh();
- screen.readInput(); // readInput is blocking
- screen.stopScreen();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement