Мое участие в сообществе
- Группа: Пользователь
- Сообщений: 68
- Просмотров: 3 312
- Возраст: Возраст неизвестен
- День рождения: Не указано
-
Откуда
Nar/Tln
-
Пол
Мужской
-
Статус
Занят
Мои сообщения
В теме:Утеряно/найдено в ТТУ
07 ноября 2012 - 00:43
3 общага, вход в С корпус, найдена флешка с бодрым содержимым. Принимаю приметы в ЛС.
В теме:Võrgurakendused I / Programmeerimise põhikursus
18 ноября 2011 - 18:48
Жэнщины и дэти, тысяча извинений Ж))
Много кода, написанного на коленке, аттачед.
Много кода, написанного на коленке, аттачед.
В теме:Võrgurakendused I / Programmeerimise põhikursus
19 октября 2011 - 21:17
сейчас выложу
В теме:Võrgurakendused I / Programmeerimise põhikursus
14 сентября 2011 - 18:43
Ахтунг! Диверсия)
Файл Main.java
Файл Board.java
Файл Main.java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; public class Main { private static final int[] BEST_MOVES = {5, 1, 3, 7, 9}; private static final String[] WIN_OR_PREVENT_PATTERNS = {"-1.-1|.-1-1|-1-1.", "1.1|.11|11."}; private static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); private static PrintWriter writer = new PrintWriter(System.out, true); private static Board board = new Board(); public static void main(String[] args) { try { while (!board.isGameFinished()) { writer.println("please make your turn!(Number from 1-9)"); int input = readMove(reader.readLine()); if (input < 1 || input > 9 || !board.makeTurn(1, input)) { continue; } while (!board.isGameFinished() && !board.makeTurn(-1, calculateComputerMove())) ; writer.println(board); } if (board.hasWinner()) { writer.println("Congratulations to player " + board.getWinner()); } else { writer.println("Draw game!"); } } catch (IOException e) { writer.println("unable to read input"); } finally { try { writer.close(); reader.close(); } catch (IOException ignore) { } } } private static int calculateComputerMove() { int move = winOrPreventPlayerWin(); if (move != 0) { return move; } for (int bestMove : BEST_MOVES) { int token = board.getToken(bestMove); if (token == 0) return bestMove; } int result = (int) (Math.random() * 10); return result > 0 ? result : 1; } private static int winOrPreventPlayerWin() { for (int[] row : board.winningRows) { String situation = board.getSituation(row); for (String pattern : WIN_OR_PREVENT_PATTERNS) { if (situation.matches(pattern)) { for (int index : row) { if (board.getToken(index) == 0) { return index; } } } } } return 0; } private static int readMove(String userInput) { try { return Integer.parseInt(userInput); } catch (NumberFormatException e) { return 0; } } }
Файл Board.java
import java.util.HashMap; import java.util.Map; public class Board { public static final String WINNER_X = "111"; public static final String WINNER_O = "-1-1-1"; public static final Map<Integer, String> PLAYER_TOKEN = new HashMap<Integer, String>() { { put(1, "X"); put(-1, "O"); put(0, " "); } }; public int[][] winningRows = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {1, 4, 7}, {2, 5, 8}, {3, 6, 9}, {1, 5, 9}, {3, 5, 7}}; private final int[] board = new int[9]; public boolean makeTurn(int player, int cell) { int s = getToken(cell); if (s != 0) { return false; } board[--cell] = player; return true; } public int getToken(int cell) { return board[--cell]; } public boolean isGameFinished() { return hasWinner() || isNoMoreSpace(); } public String getWinner() { for (int[] winningRow : winningRows) { String combination = getSituation(winningRow); if (WINNER_O.equals(combination)) { return "O"; } if (WINNER_X.equals(combination)) { return "X"; } } return ""; } public String getSituation(int[] winningRow) { String situation = ""; for (int i : winningRow) { situation += getToken(i); } return situation; } public boolean hasWinner() { return !getWinner().isEmpty(); } private boolean isNoMoreSpace() { boolean result = true; for (int s : board) { result = result && s != 0; } return result; } @Override public String toString() { String result = "|"; for (int i = 1; i <= board.length; i++) { int token = getToken(i); result += PLAYER_TOKEN.get(token) + "|"; if (i % 3 == 0) { result += "\n" + (i != 9 ? "|" : ""); } } return result; } }
В теме:Võrgurakendused I / Programmeerimise põhikursus
26 ноября 2010 - 18:45
Aljushka,
увеличиваешь размер окна - увеличиваются компоненты. Ну и в методе paint(Graphics g) или paintComponent(Graphics g) должна быть вся логика каляки-маляки, ну и repaint() можно иногда вызывать)
JakeTheFIsh,
FiveLogic , оппонент же вроде класс файлом дан)) если что можно декомпильнуть и посмотреть как его обыграть
увеличиваешь размер окна - увеличиваются компоненты. Ну и в методе paint(Graphics g) или paintComponent(Graphics g) должна быть вся логика каляки-маляки, ну и repaint() можно иногда вызывать)
JakeTheFIsh,
FiveLogic , оппонент же вроде класс файлом дан)) если что можно декомпильнуть и посмотреть как его обыграть
- FORUM.EE
- → Просмотр профиля: Сообщения: GGr