Commit 6d06cbb5 authored by 9631408's avatar 9631408

init all

parent f971b517
import java.util.ArrayList;
import java.util.Scanner;
public class Ground {
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int column = scanner.nextInt();
private int[][] pos = new int[row][column];
private char board[][] ;
private int n, m ;
public int getRow() {
return row;
}
public int getColumn() {
return column;
public Ground (int n, int m) {
board = new char[n][m] ;
this.n = n ;
this.m = m ;
}
public void setRow(int row) {
this.row = row;
public void update(ArrayList <Police> polices, Thief thief) {
for (int i=0 ; i<n ; ++i)
for (int j=0 ; j<m ; ++j)
board[i][j] = ' ' ;
for (Police p : polices)
board[p.getRow()][p.getCol()] = 'P' ;
board[thief.getRow()][thief.getCol()] = 'D' ;
}
public void setColumn(int column) {
this.column = column;
public void printBoard() {
System.out.print(" ") ;
for (int i=1 ; i<=m ; ++i) {
if (i<10) System.out.print(" " + i) ;
else System.out.print(" " + i) ;
}
System.out.print("\n ") ;
for (int i=0 ; i<m ; ++i)
System.out.print("+---") ;
System.out.print("+\n") ;
for (int i=0 ; i<n ; ++i) {
if (i+1<10) System.out.print(" ") ;
System.out.print(i+1) ;
for (int j=0 ; j<m ; ++j) {
System.out.print("| " + board[i][j] + " ") ;
}
System.out.print("|\n ") ;
for (int i2=0 ; i2<m ; ++i2)
System.out.print("+---") ;
System.out.print("+\n") ;
}
}
public void setPos(int[][] pos) {
this.pos = pos;
}
public int print(){
for (int i=0;i<row;i++){
for (int j=0;j<column;j++){
System.out.println("-");
}
}
return pos[row][column];
}
}
\ No newline at end of file
import java.util.*;
public class Main {
public static void main(String[] args) {
new Ground();
}
public static void main(String[] args) throws Exception {
int n, m, numberOfPolice, time=0 ;
Scanner in = new Scanner (System.in) ;
Random random = new Random() ;
int dx[] = {-1,-1,-1, 0, 0,+1,+1,+1} ;
int dy[] = {-1, 0,+1,-1,+1,-1, 0,+1} ;
boolean isAware = false ;
ArrayList <Police> polices = new ArrayList<>() ;
Thief thief ;
Set <Integer> st = new HashSet<>() ;
System.out.print("Plaese enter n: ") ;
n = in.nextInt() ;
System.out.print("Plaese enter m: ") ;
m = in.nextInt() ;
System.out.print("Plaese enter number of police: ") ;
numberOfPolice = in.nextInt() ;
while (st.size() != numberOfPolice) {
int r = random.nextInt(n) ;
int c = random.nextInt(m) ;
Police p = new Police (r, c) ;
int a = st.size() ;
st.add(r*1_000_000 + c) ;
int b = st.size() ;
if (b-a==1) {
polices.add(p) ;
}
}
thief = new Thief(random.nextInt(n), random.nextInt(m)) ;
Ground g = new Ground(n, m) ;
while (true) {
//System.out.print("\f");
//Runtime.getRuntime().exec("cls") ;
//System.out.print("\033[H\033[2J");
//System.out.flush();
//Runtime.getRuntime().exec("cls");
g.update(polices, thief) ;
System.out.println("time: " + time) ;
g.printBoard() ;
time++ ;
// thief move
while (true) {
int rand = random.nextInt(8) ;
if (thief.update(dx[rand], dy[rand], n, m)) break ;
}
// check finished program
for (Police p : polices) {
if (p.getRow()==thief.getRow()
&& p.getCol()==thief.getCol()) {
System.out.print("Finished ! \n") ;
System.exit(0) ;
}
}
// check aware from thief's cell
for (Police p : polices) {
for (HashMap <Integer,Integer> c : p.vision()) {
for (Map.Entry mp : c.entrySet()) {
int row1 = (Integer) mp.getKey() ;
int col1 = (Integer) mp.getValue() ;
if (row1==thief.getRow()
&& col1==thief.getCol()) {
isAware = true ;
}
}
}
}
// move polices
if (!isAware) {
for (Police p : polices) {
while (true) {
int rand = random.nextInt(8) ;
if (p.update(dx[rand], dy[rand], n, m)) break ;
}
}
}
else {
for (Police p : polices) {
int mi = Integer.MAX_VALUE , res=0 ;
for (int i=0 ; i<8 ; ++i) {
int dis = Math.abs(thief.getRow() - (p.getRow()+dx[i]) ) ;
dis += Math.abs(thief.getCol() - (p.getCol()+dy[i]) ) ;
if (dis<mi) {
mi = dis ;
res = i ;
}
}
p.update(dx[res], dy[res], n, m) ;
}
}
// check finished program
for (Police p : polices) {
if (p.getRow()==thief.getRow()
&& p.getCol()==thief.getCol()) {
System.out.print("Finished ! \n") ;
System.exit(0) ;
}
}
Thread.sleep(2000) ;
}
}
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Police {
int x;
int y;
boolean isSeen = false;
Scanner scanner =new Scanner(System.in);
int k=scanner.nextInt();
int [] policeNumber = new int[k];
public Police(int x, int y, int isSeen) {
this.x = x;
this.y = y;
private int row, col ;
Police (int r, int c) {
this.row = r ;
this.col = c ;
}
public int getX() {
return x;
public int getRow() {
return row;
}
public void setX(int x) {
this.x = x;
public int getCol() {
return col;
}
public int getY() {
return y;
public void setRow(int row) {
this.row = row;
}
public void setY(int y) {
this.y = y;
public void setCol(int col) {
this.col = col;
}
public static void Notify(boolean isSeen) {
ArrayList <HashMap<Integer,Integer>> vision() {
ArrayList <HashMap <Integer,Integer>> res = new ArrayList <>() ;
for (int i=row-2 ; i<row+3 ; ++i) {
for (int j=col-2 ; j<col+3 ; ++j) {
HashMap <Integer,Integer> mp = new HashMap <>() ;
mp.put(i, j) ;
res.add(mp) ;
}
}
return res ;
}
public void move() {
public boolean update (int dx, int dy, int n, int m) {
if (row+dx >= 0 && row+dx < n
&& col+dy >= 0 && col+dy < m) {
this.setRow(row + dx) ;
this.setCol(col + dy) ;
return true ;
}
return false ;
}
}
}
\ No newline at end of file
/**
*this class will make
* @author kimiaDorani
* @version 1.0
*/
public class Thief {
int x;
int y;
private int row, col ;
Thief (int r, int c) {
this.row = r ;
this.col = c ;
}
public int getRow() {
return row;
}
public int getCol() {
return col;
}
public void setRow(int row) {
this.row = row;
}
public void setCol(int col) {
this.col = col;
}
public boolean update (int dx, int dy, int n, int m) {
if (row+dx >= 0 && row+dx < n
&& col+dy >= 0 && col+dy < m) {
this.setRow(row + dx) ;
this.setCol(col + dy) ;
return true ;
}
return false ;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment