You are going to write a simulation for a mini survival game. In this game, one fly
and three frogs are placed randomly on a board with the size 7x7.In each iteration, they move randomly
within the board, and the simulation stops when one of the frogs eats the fly.
Fly and frogs are essentially creatures that can move, make noise, and eat. Frogs can move up to 2
squares in any direction and flies can move up to 1. Frogs make the "Croak! Croak!" sound, and flies
make "ZzzZZz!". Since frogs should not eat their kind, a function of "isEatable" should also be
implemented in decision making. A variable or function to check if the fly is alive is also required as a
terminate condition for simulation.
In each iteration, an 'f' character represents frogs' position on board, and an '*' character is used to
represent the position of fly. Use the topics (Abstract classes, Interface, etc.) to implement
the simulation.
(in java) An example output is given below.
Extracted text: [f][ ][ ][ ][ ][ ][ ] [ ][][*][f][ ][ ] [ ][ ][ ][ ][][ I ] [ ][ ][ ][ ][][ I ] [ ][ ][ ][ ][][I] [ ][ ][ ][ ][ ][f][ ] ][ ][ ][ ][ ][ ][ ] Iteration : 2 ][f][ ][*][ ] U ][ ][ ]I]I ][ ][ ] ][ ][ ][UI ][[ ] [ ][ ][ ][f][][I] [ ][ ][ ][f] [ ][ ][ ] [ ][ ][ ][ ][ ][I ] [ ][ ][ ][ ][][I] Iteration : 3 Frog ate the Fly Croak! Croak! [][ ][ ][ ][UUU [ ][ ][f][ ][ ][ ][ ] [ ][ ][ ][ ][ ][ ][ ] [ ][ ][ ][f][ ] [f][ ] ][ ][ ][ ][ ][ ][ ] [][ ] ][ ][ ][ ][ ] ][ ][ ][ ][ ][ ][ ] [Fly : {1,2}, Frog : {3,5}, Frog : {3,3}, Frog : {1,2}]
Extracted text: [Fly : {0,2}, Frog : {1,3}, Frog : {2,5}, Frog : {3,4}] [ ][ ] [ *] [ ][ ][ ][ ] ][ ][f][ ][ ][ ] ][ ][ ]I ]I ][f][ ] ][ ][ ][ ] [f][ ][ ] ][ ][ ][ ] [ ][ ][ ] ][ ][ ][ ][ ][ ][ ] ][ ][ ][ ][ ][ ][ ] Iteration : 0 [ ][ ][ ][ ][ ][f][ ] [ ][ ][ *][ ][][ ]I ] ][ ] [f][ ][ ][ ][ ] ][ ][ ][ ]I ][ ] ][ ][ ] [f] [ ][ ] ][ ][ ][ ][ ][ ][ ] ][ ][ ]I ]I ] Iteration : 1