Advertisement
Guest User

codesz

a guest
Mar 29th, 2018
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.39 KB | None | 0 0
  1. package lib;
  2.  
  3.  
  4. import java.util.ArrayList;
  5. import java.util.Scanner;
  6.  
  7. public class Test {
  8.    
  9.     public static int lim = (int) Math.pow(2, 25);
  10.    
  11.     public static int best = 0;
  12.    
  13.     public static int c(int i) {
  14.         if(i >= 5)
  15.             return 8-i;
  16.         return i;
  17.     }
  18.     public static boolean isMine(int n, int i, int j) {
  19.         return (n >> (c(j)*5+c(i)))%2 != 0;
  20.     }
  21.     public static String getBoard(int n) {
  22.         String s = "";
  23.         for(int j = 0; j < 9; j++) {
  24.             for(int i = 0; i < 9; i++) {
  25.                 if(!isMine(n, i, j))
  26.                     s += ". ";
  27.                 else s+= "X ";
  28.             }
  29.             s += "\n";
  30.         }
  31.         return s;
  32.     }
  33.     public static int count(int n) {
  34.         int sum = 0;
  35.         for(int j = 0; j < 9; j++) {
  36.             for(int i = 0; i < 9; i++) {
  37.                 if(!isMine(n, i, j)) {
  38.                     for(int b = (j==0)?0:j-1; b < (j == 8?9:j+2); b++) {
  39.                         for(int a = (i==0)?0:i-1; a < (i == 8?9:i+2); a++) {
  40.                             if(isMine(n, a, b)) {
  41.                                 sum++;
  42.                             }
  43.                         }
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.         return sum;
  49.     }
  50.    
  51.     public static void main(String[] args) {
  52. //      int test = 0b10000000000000000000000000;
  53. //      System.out.println(count(test));
  54. //      System.out.println(getBoard(test));
  55.         for(int i = 0; i < lim; i++) {
  56. //          System.out.print(getBoard(i));
  57. //          System.out.println(Integer.toBinaryString(i));
  58. //          System.out.println();
  59.             if(count(i) > best) {
  60.                 best = count(i);
  61.                 System.out.println(getBoard(i) + count(i) + ", " + i + ", ");
  62.             }
  63.         }
  64.     }
  65.    
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement