The goal for this
The ants behave according to the following model:
- Move. Every time step, randomly try to move up, down, left, or right. If the neigh boring cell in the selected direction is occupied or would move the ant off the grid, then the ant stays in the current cell.
- Breed. If an ant survives for three time steps, then at the end of the time step (that is, after moving) the ant will breed. This is simulated by creating a new ant in an adjacent (up, down, left, or right) cell that is empty. If there is no empty cell available, then no breeding occurs. Once an offspring is produced, an ant cannot produce an offspring until three more time steps have elapsed.
The doodlebugs behave according to the following model:
- Move. Every time step, if there is an adjacent ant (up, down, left, or right), then the doodlebug will move to that cell and eat the ant. Otherwise, the doodlebug moves according to the same rules as the ant. Note that a doodlebug cannot eat other doodlebugs.
- Breed. If a doodlebug survives for eight time steps, then at the end of the time step it will spawn off a new doodlebug in the same manner as the ant.
- Starve. If a doodlebug has not eaten an ant within the last three time steps, then at the end of the third time step it will starve and die. The doodlebug should then be removed from the grid of cells.
During one turn, all the doodlebugs should move before the ants do. Write a program to implement this simulation and draw the world using ASCII characters of “o“ for an ant and “X“ for a doodlebug. Create a class named Organism that encapsulates basic data common to both ants and doodlebugs. This class should have a virtual function named move that is defined in the derived classes of Ant and Doodlebug. You may need additional data structures to keep track of which critters have moved. Initialize the world with 5 doodlebugs and 100 ants. After each time step, prompt the user to press Enter to move to the next time step. You should see a cyclical pattern between the population of predators and prey, although random perturbations may lead to the elimination of one or both species.
Want to see the full answer?
Check out a sample textbook solutionChapter 15 Solutions
Problem Solving with C++ (9th Edition)
Additional Engineering Textbook Solutions
Concepts Of Programming Languages
Modern Database Management
Introduction to Programming Using Visual Basic (10th Edition)
Starting Out with Java: Early Objects (6th Edition)
Starting Out with Java: From Control Structures through Objects (6th Edition)
- In this game, one flyand three frogs are placed randomly on a board with the size 7x7.In each iteration, they move randomlywithin 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 2squares in any direction, and flies can move up to 1. Frogs make the "Croak! Croak!" sound, and fliesmake "ZzzZZz!". Since frogs should not eat their kind, a function of "isEatable" should also beimplemented in decision making. A variable or function to check if the fly is alive is also required as aterminate condition for simulation.In each iteration, an 'f' character represents frogs' position on board, and an '*' character is used torepresent the position of fly. Java Language THIS QUESTION HAS BEEN ANSWERED BUT THE ANSWERS GIVEN ARE IRRELEVANTarrow_forwardIn this game, one flyand three frogs are placed randomly on a board with the size 7x7.In each iteration, they move randomlywithin 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 2squares in any direction, and flies can move up to 1. Frogs make the "Croak! Croak!" sound, and fliesmake "ZzzZZz!". Since frogs should not eat their kind, a function of "isEatable" should also beimplemented in decision making. A variable or function to check if the fly is alive is also required as aterminate condition for simulation.In each iteration, an 'f' character represents frogs' position on board, and an '*' character is used torepresent the position of fly. Java Language I dont want the survival game that answer of my last two questions I want the above question and example output like in the photosarrow_forwardA logical step forward from interactive animated programs is games. The goal of this assignment is to program the classic computer game, Snake. The goal of Snake is to create a snake as long as possible. This is achieved by guiding the snake to an apple on the game board. The snake cannot stop moving, and dies whenever it hits something (excluding apples). Because the snake is growing longer and longer as the game progresses, it gets increasingly difficult to avoid collisions with the snake itself. The player can change the direction of the head of the snake by using the arrow keys. At step in the game, there is always an apple somewhere on the board. If the snake eats an apple, the snake becomes one cell longer. A new apple is placed on a random location, excluding all places covered by the snake. When the snake reaches a side of the game board, it re-emerges at the opposite end. It is probably easiest to understand the game by playing it yourself. You can find a lot of snake…arrow_forward
- For your first program, you are to write a simple Dodgeball simulation. In this simulation, we will have nplayers, and one ball. One player, the "thrower," will have the ball. The thrower will throw the ball at anotherplayer, the "target." The target could catch the ball, could be hit by the ball, or the ball could completely missthe target. If the target catches the ball, then the thrower is out of the game (and the target becomes the nextthrower.) If the ball hits the target, then the target is out of the game. If the ball misses the target, neitherplayer is out. In the latter two cases, any one can pick up the ball and become the next thrower. The game isover when only one player is left.In this simple version, the players (initially n players) will stand in a circle. The thrower will always countthe players to his/her right, and then throw the ball at the dth player, who becomes the target. The target willalways catch the ball, so that the thrower will be out of the game (and will…arrow_forwardYou are to write an Ant class to simulate Langton's Ant. In this simulation, a virtual "ant" moves about a two-dimensional square matrix, whose spaces can be designated white or black, according to the rules below: If the ant is on a white space, it will turn right 90 degrees relative to the directions it is facing, move forward one step, and change the space it left to black. If the ant is on a black space, it will turn left 90 degrees relative to the directions it is facing, move forward one step, and change the space it left to white. When the ant hits the edge of the board and is going to go out of the bounds, wrap the board around so the ant will appear on the other side. The matrix is initially composed of all white spaces. The user will specify the size of the square matrix. The user will also specify the number of steps that the ant will move and the starting location and direction of the ant. After the simulation, the final board with the ant position will be displayed to…arrow_forwardA Memory Matching Game in java code with a 4x4 grid of Squares that when you click on a square it shows a number. It would have to be 2 of each number 1-8 and if the two squares that are clicked match then the squares stay on the grid. If they do not match after picking 2 squares they flip back overarrow_forward
- IN JAVA please not python In this game, one flyand three frogs are placed randomly on a board with the size 7x7.In each iteration, they move randomlywithin 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 2squares in any direction, and flies can move up to 1. Frogs make the "Croak! Croak!" sound, and fliesmake "ZzzZZz!". Since frogs should not eat their kind, a function of "isEatable" should also beimplemented in decision making. A variable or function to check if the fly is alive is also required as aterminate condition for simulation.In each iteration, an 'f' character represents frogs' position on board, and an '*' character is used torepresent the position of fly. Java language pleasearrow_forwardJava program help Simulate a slot machine. The customer will add a fixed amount of money to the machine and play the slots. There should be 4 images for the game: "Apple", "Orange", "Banana", and "Cherry". If three of the images match, the customer wins $2 and is added to their balance. If all four match, the customer wins $10 and that is added to their balance. If less then four match there is no prize money, and the customer is charged $1 for the try. The customer can quit after each try, and the program will print out the customer's cash balance. Coding Details: Use an array of strings to store the 4 strings listed above. Use a do-while loop for the program. The program starts once the user enters how much money they have. The decision to stop occurs at the bottom of the loop. The do-while loop keeps going until the user quits, or there is no money left. The pseudocode for the program is shown below: Determine the fruits to display (step 3 below) and print them Determine if there…arrow_forwardYou are going to write a simulation for a mini survival game. In this game, one flyand three frogs are placed randomly on a board with the size 7x7.In each iteration, they move randomlywithin 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 2squares in any direction and flies can move up to 1. Frogs make the "Croak! Croak!" sound, and fliesmake "ZzzZZz!". Since frogs should not eat their kind, a function of "isEatable" should also beimplemented in decision making. A variable or function to check if the fly is alive is also required as aterminate condition for simulation.In each iteration, an 'f' character represents frogs' position on board, and an '*' character is used torepresent the position of fly. Use the topics (Abstract classes, Interface, etc.) to implementthe simulation. (in java) An example output is given below.arrow_forward
- A graph (also known as a network) consists of nodes and edges. Edges connect nodes. Graphs/networks have many real-life applications. One of the most common examples is a social network (e.g., Facebook), where the people are represented by nodes and friendship/connection between two people is represented by an edge. See a picture of a graph below where the nodes are colored in red, green, and blue. -A blue node An edge connecting a blue node and a green node. [Image source: https://en.wikipedia.org/wiki/Graph_coloring] A simple graph can be expressed by the following two predicates. Given the predicates below: Edge(x, y): x is connected to y Color(x, z): x has color z and the following domains: domain of x and y: {all nodes in a graph}, domain of z: {RED, GREEN, BLUE, YELLOW}, translate the following statements into English. a) Vx3y Edge(x, y) b) Vz 3x Color(x, z) c) VxVyVz (Edge(x, y) A Color(x, z) → ¬Color(y, z))arrow_forwardCreate an intelligent agent in Python that can navigate a maze to find the exit. The maze will be represented as a 2D grid of characters, where: 'X' represents a wall represents an open space 'S' represents the starting position of the agent 'E' represents the exit of the maze The agent can move in four directions: up, down, left, and right. Challenge: Implement two approaches: 1. Depth-First Search (DFS): The agent explores the maze using a depth-first search algorithm, backtracking when it reaches a dead end. The goal is to find the exit as quickly as possible. 2. Q-Learning: 。 The agent learns through trial and error, receiving rewards for getting closer to the exit and penalties for hitting walls. 。 Implement a simple Q-learning algorithm where the agent updates its Q-values based on the rewards it receives. The Q-values represent the estimated future reward for taking a particular action from a specific state.arrow_forwardSuppose you follow a certain stock in the stock exchange and record the daily values of the stock you follow for a certain period (Let's assume that the values recorded for each day represent the actual price of the stock on that day). After the period is over, you want to make a simulation using the recorded values and determine the correct buying and selling days in order to take the most profitable position for that stock during this period. Naturally, in order to take the most profitable position, the purchase and sale days of the stock should be determined in such a way that the prices at the time of sale and purchase should be at the highest value compared to other alternatives, that is, we want to maximize the price difference between the two points. As an example, suppose a 4-day series is taken and the recorded price series is as follows: Day 1: $ 9Day 2: $ 1Day 3: $ 54th day: $ 4 In this case, if the purchase day is the 2nd day and the selling day is the 3rd, this…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education