1
0
Fork 0

A* framework, not implemented yet

This commit is contained in:
BOTLester 2020-05-03 13:05:05 +02:00
parent a41c675c08
commit 8bf82380ab
87 changed files with 1076 additions and 223187 deletions

View File

@ -44,6 +44,18 @@
/processorParam:TextureFormat=Color
/build:house.png
#begin Mountain.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Mountain.png
#begin Plantable.png
/importer:TextureImporter
/processor:TextureProcessor

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
Game1/Content/Mountain.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 776 B

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 828 B

After

Width:  |  Height:  |  Size: 828 B

View File

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 573 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -13,7 +13,7 @@ namespace Game1
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont Bold;
private Texture2D[] tile = new Texture2D[4];
private Texture2D[] tile = new Texture2D[5];
private Texture2D tractor;
private Texture2D house;
private Tractor tractorUnit = new Tractor();
@ -34,13 +34,11 @@ namespace Game1
//Generates the map with some random values
input.init(graphics, new Vector2(8,8), 56, 1); //Generates the starting size
houseUnit.init(input.getTileSize(), input.getSpacing()); //Generates the house position
tractorUnit.init(houseUnit.GetRectangle());
tractorUnit.updateSizing(input, 0, houseUnit.getVector());
tractorUnit.setPos(houseUnit.getVector());
input.init(graphics, new Vector2(16,16), 56, 1); //Generates the starting size
houseUnit.init(input.getTileSize(), input.getSpacing()); //Generates the house position
tractorUnit.init(houseUnit.GetRectangle(), input); //Generates the Tractor
tractorUnit.updateSizing(input, 0, houseUnit.getVector()); //Updates the first Size of the Tractor
tractorUnit.setPos(houseUnit.getVector()); //Changes the position of the tractor to the houses position at the start
@ -57,10 +55,11 @@ namespace Game1
//Loads the PNG content and Fonts
tile[0] = Content.Load<Texture2D>("tileunplantable");
tile[1] = Content.Load<Texture2D>("Plantable");
tile[2] = Content.Load<Texture2D>("Planted");
tile[3] = Content.Load<Texture2D>("Crop");
tile[0] = Content.Load<Texture2D>("Mountain");
tile[1] = Content.Load<Texture2D>("tileunplantable");
tile[2] = Content.Load<Texture2D>("Plantable");
tile[3] = Content.Load<Texture2D>("Planted");
tile[4] = Content.Load<Texture2D>("Crop");
tractor = Content.Load<Texture2D>("Tractor");
Bold = Content.Load<SpriteFont>("Font");
house = Content.Load<Texture2D>("house");
@ -79,9 +78,10 @@ namespace Game1
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
Exit();
tractorUnit.updateSizing(input, 0, houseUnit.getVector()); //Updates the size
tractorUnit.setSpeed(input.changeSpeed(tractorUnit.getSpeed())); //Updates the speed of the tractor
tractorUnit.setSpeed(input.changeSpeed(tractorUnit.getSpeed())); //Updates the Simulation Speed
tractorUnit.setTractorSpeed(input.changeTractorSpeed(tractorUnit.getTractorSpeed(), tractorUnit.getPos())); //Updates the Tractor Speed
input.controlWindowSize(); //Controls the size of the screen depending on the number of tiles
houseUnit.updateRectangle(input.getSize(), input.getTileSize());
houseUnit.updateRectangle(input.getSize(), input.getTileSize(), input.getSpacing()); //Updates the position of the house if the house appears out of bound
base.Update(gameTime);
}
@ -97,18 +97,24 @@ namespace Game1
{
for (int j = 0; j < input.getSize().Y; j++)
{
spriteBatch.Draw(tile[tractorUnit.getFarm().getCrop(i, j).Status], new Rectangle(i * (input.getTileSize() + input.getSpacing()), j * (input.getTileSize() + input.getSpacing()), input.getTileSize(), input.getTileSize()), Color.White);
spriteBatch.Draw(tile[tractorUnit.getFarm().getCrop(i, j).Status], new Rectangle(i * (input.getSpacingTile()), j * (input.getSpacingTile()), input.getTileSize(), input.getTileSize()), Color.White);
}
}
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getTargetPosition().X / input.getSpacingTile() * (input.getTileSize() + input.getSpacing()) + input.getTileSize() / 4, (int)tractorUnit.getTargetPosition().Y / input.getSpacingTile() * (input.getTileSize() + input.getSpacing()) + input.getTileSize() / 4, input.getTileSize()/2, input.getTileSize()/2), Color.Green);
for (int i = 0; i < tractorUnit.getPath().getCount() + 1; i++)
{
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPath().getByIndex(i).getVector().X * (input.getSpacingTile()) + input.getTileSize() / 4, (int)tractorUnit.getPath().getByIndex(i).getVector().Y * (input.getSpacingTile()) + input.getTileSize() / 4, input.getTileSize()/2, input.getTileSize()/2), Color.Green);
}
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getTargetPosition().X, (int)tractorUnit.getTargetPosition().Y, input.getTileSize(), input.getTileSize()) , Color.Red); //Draws the current target of the tractor
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPath().getFinalDest().getVector().X * (input.getSpacingTile()) + Convert.ToInt32(input.getTileSize() / 6), (int)tractorUnit.getPath().getFinalDest().getVector().Y * (input.getSpacingTile()) + Convert.ToInt32(input.getTileSize() / 6), Convert.ToInt32(input.getTileSize()/1.5), Convert.ToInt32(input.getTileSize()/1.5)) , Color.Red); //Draws the current target of the tractor
spriteBatch.Draw(tractor, new Rectangle((int)tractorUnit.getPos().X, (int)tractorUnit.getPos().Y, input.getTileSize(), input.getTileSize()), Color.White);
spriteBatch.Draw(house, houseUnit.GetRectangle(), Color.White);
spriteBatch.DrawString(Bold, "Speed:" + tractorUnit.getSpeed().ToString(), new Vector2(10, input.getSize().Y * input.getTileSize() + 20) , Color.White); //Draws the speed value
spriteBatch.DrawString(Bold, "Tile Size:" + input.getTileSize().ToString() + "pix", new Vector2(10, input.getSize().Y * input.getTileSize() + 40), Color.White); //Draws the tile size
spriteBatch.DrawString(Bold, "Matrix Size: " + input.getSize().X.ToString() + " X " + input.getSize().Y.ToString(), new Vector2(10, input.getSize().Y * input.getTileSize() + 60), Color.White);
spriteBatch.DrawString(Bold, tractorUnit.getCurrentTask(), new Vector2(10, input.getSize().Y * input.getTileSize() + 80), Color.White); //Draws the tile size
spriteBatch.DrawString(Bold, tractorUnit.getScore().ToString(), new Vector2(10, input.getSize().Y * input.getTileSize() + 100), Color.White);
spriteBatch.DrawString(Bold, "Speed:" + tractorUnit.getSpeed().ToString(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20) , Color.White); //Draws the speed value
spriteBatch.DrawString(Bold, "Tractor Speed:" + tractorUnit.getTractorSpeed().ToString(), new Vector2(100, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20), Color.White);
spriteBatch.DrawString(Bold, "Tile Size:" + input.getTileSize().ToString() + "pix", new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 40), Color.White); //Draws the tile size
spriteBatch.DrawString(Bold, "Matrix Size: " + input.getSize().X.ToString() + " X " + input.getSize().Y.ToString(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 60), Color.White);
spriteBatch.DrawString(Bold, tractorUnit.getCurrentTask(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 80), Color.White); //Draws the tile size
spriteBatch.DrawString(Bold, tractorUnit.getScore().ToString(), new Vector2(10, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 100), Color.White);
spriteBatch.End();
base.Draw(gameTime);

View File

@ -44,14 +44,19 @@
<Compile Include="Game1.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Sources\House.cs" />
<Compile Include="Sources\Crops.cs" />
<Compile Include="Sources\Farm.cs" />
<Compile Include="Sources\Input.cs" />
<Compile Include="Sources\Queue.cs" />
<Compile Include="Sources\SmartTractor.cs" />
<Compile Include="Sources\Task.cs" />
<Compile Include="Sources\Tractor.cs" />
<Compile Include="Sources\Objects\House.cs" />
<Compile Include="Sources\Crops\Crops.cs" />
<Compile Include="Sources\Crops\Farm.cs" />
<Compile Include="Sources\Controlls\Input.cs" />
<Compile Include="Sources\Objects\tractorPositionCorrector.cs" />
<Compile Include="Sources\Pathing\A-Star\Astar.cs" />
<Compile Include="Sources\Pathing\A-Star\PathSaver\Nodes.cs" />
<Compile Include="Sources\Pathing\A-Star\PathSaver\Path.cs" />
<Compile Include="Sources\Pathing\A-Star\PathSaver\PriorityQueue.cs" />
<Compile Include="Sources\Controlls\Controller.cs" />
<Compile Include="Sources\Smart\ScoreSystem.cs" />
<Compile Include="Sources\Smart\SmartTractor.cs" />
<Compile Include="Sources\Objects\Tractor.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="MonoGame.Framework">
@ -63,7 +68,7 @@
<ItemGroup>
<Content Include="Content\Crop.png" />
<Content Include="Content\house.png" />
<Content Include="Content\Plantable.png" />
<Content Include="Content\Mountain.png" />
<Content Include="Content\Planted.png" />
<Content Include="Content\Tile.png" />
<Content Include="Content\tileunplantable.png" />

View File

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -0,0 +1,100 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
using System;
class Controller
{
private KeyboardState state = Keyboard.GetState();
private GraphicsDeviceManager graphics;
private bool heldUp = false;
public void init(GraphicsDeviceManager Graphics)
{
graphics = Graphics;
}
public Vector2 updateWindow(int tileSize, int Spacing, Vector2 Size)
{
KeyboardState state = Keyboard.GetState();
if (state.IsKeyDown(Keys.D) && Size.X < 100)
{
Size.X++;
graphics.PreferredBackBufferWidth = (tileSize + Spacing) * (int)Size.X - Spacing;
}
if (state.IsKeyDown(Keys.A) && Size.X > 2)
{
Size.X--;
graphics.PreferredBackBufferWidth = (tileSize + Spacing) * (int)Size.X - Spacing;
}
if (state.IsKeyDown(Keys.W) && Size.Y < 20)
{
Size.Y++;
graphics.PreferredBackBufferHeight = (tileSize + Spacing) * (int)Size.Y - Spacing + 100;
}
if (state.IsKeyDown(Keys.S) && Size.Y > 2)
{
Size.Y--;
graphics.PreferredBackBufferHeight = (tileSize + Spacing) * (int)Size.Y - Spacing + 100;
}
return Size;
}
public int controllTileSize(Vector2 Size, int tileSize)
{
if (Size.X * tileSize + 5 > GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width)
{
tileSize--;
}
if (Size.X * tileSize - 5 < GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width && tileSize < 56)
{
tileSize++;
}
return tileSize;
}
public int controllSpeed(int Speed)
{
KeyboardState state = Keyboard.GetState();
if (state.IsKeyDown(Keys.Right))
{
Speed++;
}
if (state.IsKeyDown(Keys.Left) && Speed > 0)
{
Speed--;
}
return Speed;
}
public tractorPositionCorrector controllTractorSpeed(float tractorSpeed, Vector2 Position)
{
KeyboardState state = Keyboard.GetState();
tractorPositionCorrector Corrector = new tractorPositionCorrector(Position, tractorSpeed);
if (!heldUp)
{
if (state.IsKeyDown(Keys.Up) && tractorSpeed < 1)
{
Corrector.setTractorSpeed(tractorSpeed * 2);
heldUp = true;
}
else if (state.IsKeyDown(Keys.Down) && tractorSpeed > 0.0009765625)
{
Corrector.setTractorSpeed(tractorSpeed / 2);
heldUp = true;
}
}
else if (heldUp && !(state.IsKeyDown(Keys.Down) || state.IsKeyDown(Keys.Up)))
{
heldUp = false;
Corrector.setPosition((float)Math.Ceiling(Position.X), (float)Math.Ceiling(Position.Y));
}
return Corrector;
}
}

View File

@ -0,0 +1,72 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
class Input
{
private KeyboardState state = Keyboard.GetState();
private GraphicsDeviceManager graphics;
private Vector2 Size;
private int tileSize;
private int Spacing;
private Controller controller = new Controller();
public void init(GraphicsDeviceManager Graphics, Vector2 size, int TileSize, int SPacing)
{
graphics = Graphics;
tileSize = TileSize;
Spacing = SPacing;
Size = size;
controller.init(Graphics);
}
public int changeSpeed(int Speed)
{
return controller.controllSpeed(Speed);
}
public tractorPositionCorrector changeTractorSpeed(float tractorSpeed, Vector2 Position)
{
return controller.controllTractorSpeed(tractorSpeed, Position);
}
private void changeSize()
{
Size = controller.updateWindow(tileSize, Spacing, Size);
}
public void controlWindowSize()
{
tileSize = controller.controllTileSize(Size, tileSize);
changeSize();
graphics.ApplyChanges();
}
public int getTileSize()
{
return tileSize;
}
public int getSpacing()
{
return Spacing;
}
public Vector2 getSize()
{
return Size;
}
public int getSpacingTile()
{
return Spacing + tileSize;
}
public void setTileSize(int newTileSize)
{
tileSize = newTileSize;
}
}

View File

@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
class Crops
{
public int x;
public int y;
public int Status;
private int cropType;
private int Timer;
private Random r;
public void updateCrop()
{
if (Status != 0)
{
Timer--;
}
}
public int getCropTimer()
{
return Timer;
}
public int getCostOnMovement()
{
if (Status == 1)
{
return 1;
}
else if (Status == 2)
{
return 2;
}
else if (Status == 3)
{
return 3;
}
else
{
return 4;
}
}
public void setPosition(int newx, int newy)
{
x = newx;
y = newy;
}
public void setCropType(int Type)
{
}
}

View File

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
class Farm
{
private Crops[,] crops;
private Random r;
//initializes the crops
public void init(Vector2 Size)
{
r = new Random();
crops = new Crops[100, 100];
for (int i = 0; i < Size.X; i++)
{
for (int j = 0; j < Size.Y; j++)
{
int x = r.Next(0, 3);
if (x == 0)
{
x = r.Next(0, 2);
}
crops[i, j] = new Crops();
crops[i, j].Status = x;
}
}
}
public void updateFarm(Vector2 Size)
{
for (int i = 0; i > Size.X; i++)
{
for (int j = 0; j > Size.Y; j++)
{
crops[i, j].updateCrop();
}
}
}
//Changes the properties of the tile when the tractor reaches this tile.
public void setCropStatus(float xfloat, float yfloat, int Spacing)
{
int x = (int)xfloat / Spacing;
int y = (int)yfloat / Spacing;
if (crops[x, y].Status == 4)
{
crops[x, y].Status = 2;
}
else if(crops[x, y].Status == 0)
{
//do nothing
}
else if (crops[x, y].Status == 2)
{
crops[x, y].Status = 3;
}
else if (crops[x, y].Status == 3)
{
crops[x, y].Status = 4;
}
}
public Crops getCrop(int x, int y)
{
return crops[x,y];
}
public Crops[,] getCrops()
{
return crops;
}
public void updateSize(Vector2 Size, int tileSize, int Spacing)
{
for (int i = 0; i < (int)Size.X; i++)
{
for (int j = 0; j < (int)Size.Y; j++)
{
crops[i, j].x = (tileSize + Spacing) * i;
crops[i, j].y = (tileSize + Spacing) * j;
}
}
}
}

View File

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
class House
{
private Rectangle housePos;
private Vector2 pos;
private Random r = new Random();
//initializes the house
public void init(int tileSize, int Spacing)
{
int x = r.Next(0, 8);
int y = r.Next(0, 8);
pos = new Vector2(x, y);
housePos = new Rectangle((x * tileSize + Spacing), y * (tileSize + Spacing), tileSize, tileSize);
}
//Moves the house if it is currently out of matrix.
public void updateRectangle(Vector2 Size, int tileSize, int Spacing)
{
if (pos.X + 1 > Size.X)
{
pos = new Vector2(pos.X - 1, pos.Y);
}
if (pos.Y + 1 > Size.Y)
{
pos = new Vector2(pos.X, pos.Y - 1);
}
housePos = new Rectangle((int)pos.X * (tileSize + Spacing), (int)pos.Y * (tileSize + Spacing), tileSize, tileSize);
}
public Rectangle GetRectangle()
{
return housePos;
}
public Vector2 getVector()
{
return new Vector2(housePos.X, housePos.Y);
}
}

View File

@ -0,0 +1,195 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using System;
class Tractor
{
private int Spacing, sizeTile, Speed = 1;
private float tractorSpeed = 1;
private String currentTask;
private Vector2 Position, TargetPosition, Direction, Size, housePos;
private Path path = new Path();
private Random r = new Random();
private Farm farm = new Farm();
private SmartTractor smartTractor = new SmartTractor();
private ScoreSystem scoreSystem = new ScoreSystem();
public void updateSizing(Input input, int Status, Vector2 newHousePos)
{
Spacing = input.getSpacing();
sizeTile = input.getTileSize();
Size = input.getSize();
updatePosition(input.getSize(), Status);
housePos = newHousePos;
}
public void init(Rectangle house, Input input)
{
sizeTile = input.getTileSize();
Spacing = input.getSpacing();
farm.init(new Vector2(100, (GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height / sizeTile) - 125 / sizeTile));
Position = housePos;
TargetPosition = new Vector2(house.X, house.Y);
}
// Runs when the tractor reaches a tile
private void updateDirection(Vector2 Size, Vector2 newPosition)
{
Vector2 DeltaPosition = TargetPosition - Position;
if (DeltaPosition.X == 0)
{
if (DeltaPosition.Y == 0)
{
calculateNewPath(newPosition);
}
else if (DeltaPosition.Y > 0)
{
Direction = new Vector2(0, 1) * tractorSpeed;
}
else if (DeltaPosition.Y < 0)
{
Direction = new Vector2(0, -1) * tractorSpeed;
}
}
else if (DeltaPosition.X > 0)
{
Direction = new Vector2(1, 0) * tractorSpeed;
}
else if (DeltaPosition.X < 0)
{
Direction = new Vector2(-1, 0) * tractorSpeed;
}
}
//Moves the tractor
public void updatePosition(Vector2 Size, int Status) /// updates the position
{
farm.updateSize(Size, sizeTile, Spacing);
for (int i = 0; i < Speed; i++) //Where all the choices the tractor does comes from
{
smartTractor.updateMap(Position, housePos, farm.getCrops(), Size, sizeTile, Spacing, scoreSystem.getScore());
Position = Position + Direction;
updateDirection(Size, Position);
}
}
public void calculateNewPath(Vector2 newPosition)
{
if (path.getCount() == 0)
{
if (housePos != Position)
{
//Returns to the farm
int x = (int)Position.X / (sizeTile + Spacing);
int y = (int)Position.Y / (sizeTile + Spacing);
currentTask = scoreSystem.MessageAndScore(farm.getCrop(x, y).Status, 0);
farm.setCropStatus(x, y, Spacing);
path = smartTractor.returnChoice(0);
}
else
{
//Sets a random Target
path = smartTractor.returnChoice(1);
int xTarget = (int)TargetPosition.X / (sizeTile + Spacing);
int yTarget = (int)TargetPosition.Y / (sizeTile + Spacing);
currentTask = scoreSystem.MessageAndScore(farm.getCrop(xTarget, yTarget).Status, 1);
}
TargetPosition = path.Reduce().getVector() * (sizeTile + Spacing);
updateDirection(Size, newPosition);
}
else
{
TargetPosition = path.Reduce().getVector() * (sizeTile + Spacing);
updateDirection(Size, newPosition);
}
}
public Vector2 getPos()
{
return Position;
}
public void increaseSpeed()
{
Speed++;
}
public void decreaseSpeed()
{
if (Speed > 0)
{
Speed--;
}
}
public void setSpeed(int newSpeed)
{
Speed = newSpeed;
}
public void setTractorSpeed(tractorPositionCorrector corrector)
{
tractorSpeed = corrector.getTractorSpeed();
Position = corrector.getPosition();
}
public int getSpeed()
{
return Speed;
}
public float getTractorSpeed()
{
return tractorSpeed;
}
public void setPos(Vector2 newPos)
{
Position = newPos;
}
public Farm getFarm()
{
return farm;
}
public Vector2 getTargetPosition()
{
return TargetPosition;
}
public String getCurrentTask()
{
return currentTask;
}
public int getScore()
{
return scoreSystem.getScore();
}
public Path getPath()
{
return path;
}
}

View File

@ -0,0 +1,36 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
class tractorPositionCorrector
{
Vector2 mPosition;
float mTractorSpeed;
public tractorPositionCorrector(Vector2 position, float TractorSpeed)
{
mPosition = position;
mTractorSpeed = TractorSpeed;
}
public Vector2 getPosition()
{
return mPosition;
}
public float getTractorSpeed()
{
return mTractorSpeed;
}
public void setPosition(float x, float y)
{
mPosition = new Vector2(x,y);
}
public void setTractorSpeed(float newSpeed)
{
mTractorSpeed = newSpeed;
}
}

View File

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
class Astar
{
private Vector2 tractorPos;
private Vector2 housePos;
private Crops[,] crops;
private Vector2 Size;
private PriorityQueue allPaths;
public void update(Crops[,] newCrops, Vector2 newSize, Vector2 newTractorPos, Vector2 newHousePos)
{
tractorPos = new Vector2((int)newTractorPos.X, (int)newTractorPos.Y);
housePos = new Vector2((int)newHousePos.X, (int)newHousePos.Y);
crops = newCrops;
Size = newSize;
}
public void findPath()
{
int i = 1;
}
public Path getOptimalPath()
{
return allPaths.Peek();
}
}

View File

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
class Nodes
{
private int Cost;
private Vector2 Node;
public Nodes(int cost, Vector2 node)
{
Cost = cost;
Node = node;
}
public Vector2 getVector()
{
return Node;
}
public int getCost()
{
return Cost;
}
}

View File

@ -0,0 +1,86 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
class Path
{
private Nodes[] nodes = new Nodes[512];
private int Count = 0;
private int Cost = 0;
private int Efficency;
public Nodes getNode(int i)
{
return nodes[i];
}
public void setNode(Vector2 newNode)
{
nodes[Count] = new Nodes(10, newNode);
Count++;
}
public Nodes Reduce()
{
Count--;
Nodes temp = nodes[0];
for (int i = 0; i < Count; i++)
{
nodes[i] = nodes[i + 1];
}
return temp;
}
public Nodes getFinalDest()
{
return nodes[Count];
}
public int getCount()
{
return Count;
}
public Nodes getFirst()
{
return nodes[0];
}
public Nodes getByIndex(int i)
{
return nodes[i];
}
public int getEfficency()
{
return Efficency;
}
private void calculateEfficency()
{
for (int i = 0; i < Count; i++)
{
Efficency = Efficency + nodes[i].getCost();
}
}
public int getCost()
{
return Cost;
}
public void setCost(Crops Crop)
{
}
}

View File

@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
class PriorityQueue
{
public List<Path> list;
public int Count { get { return list.Count; } }
public PriorityQueue()
{
list = new List<Path>();
}
public PriorityQueue(int count)
{
list = new List<Path>(count);
}
public void Enqueue(Path x)
{
list.Add(x);
int i = Count - 1;
while (i > 0)
{
int p = (i - 1) / 2;
if (list[p].getEfficency() <= x.getEfficency()) break;
list[i] = list[p];
i = p;
}
if (Count > 0) list[i] = x;
}
public void Dequeue()
{
Path min = Peek();
Path root = list[Count - 1];
list.RemoveAt(Count - 1);
int i = 0;
while (i * 2 + 1 < Count)
{
int a = i * 2 + 1;
int b = i * 2 + 2;
int c = b < Count && list[b].getEfficency() < list[a].getEfficency() ? b : a;
if (list[c].getEfficency() >= root.getEfficency()) break;
list[i] = list[c];
i = c;
}
if (Count > 0) list[i] = root;
}
public Path Peek()
{
if (Count == 0) throw new InvalidOperationException("Queue is empty.");
return list[0];
}
public void Clear()
{
list.Clear();
}
}

View File

@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class ScoreSystem
{
private int Score = 0;
private int previousTask;
//Message which is displaying what the tractor is currently doing.
public String MessageAndScore(int Status, int Stage)
{
previousTask = Status;
if (previousTask == 3 && Stage != 1)
{
Score++;
}
//When the Tractor is going back to the farm.
if (Stage == 0)
{
if (Status == 1)
{
return "Returning with nothing after going out for a stroll";
}
else if (Status == 2)
{
return "Returning with nothing after planting seeds";
}
else if (Status == 3)
{
return "Returning with nothing after adding fertilizer";
}
else if (Status == 4)
{
return "Returning with Crops";
}
else
{
return "Error";
}
}
//When the Tractor is going back to work.
else
{
if (Status == 1)
{
return "Going for a stroll";
}
else if (Status == 2)
{
return "Planting seeds";
}
else if (Status == 3)
{
return "Adding fertilizer";
}
else if (Status == 4)
{
return "Going for Crops";
}
else
{
return "Error";
}
}
}
public int getScore()
{
return Score;
}
}

View File

@ -0,0 +1,118 @@
using System;
using Microsoft.Xna.Framework;
using System;
class SmartTractor
{
private Crops[,] crops;
private Vector2 housePos;
private Vector2 tractorPos;
private Vector2 Size;
private Vector2 Target;
private Path path;
private int tileSize;
private int Score;
private int Spacing;
private Random r = new Random();
private Astar astar = new Astar();
//What to do next
public Path returnChoice(int task)
{
astar.update(crops, Size, tractorPos / (tileSize + Spacing), housePos / (tileSize + Spacing));
if (task == 0)
{
//To the house
getTargetPosition((int)housePos.X / (tileSize + Spacing), (int)housePos.Y / (tileSize + Spacing));
}
else
{
//To the fields
getTargetPosition(r.Next(0, (int)Size.X), r.Next(0, (int)Size.Y));
}
astar.findPath();
createPath();
return path;
}
//Updates the variables every frame
public void updateMap(Vector2 newTractorPos, Vector2 newHousePos, Crops[,] newCropsStatus, Vector2 newSize, int newTileSize, int newSpacing, int newScore)
{
crops = newCropsStatus;
housePos = newHousePos;
tractorPos = newTractorPos;
Size = newSize;
tileSize = newTileSize;
Spacing = newSpacing;
Score = newScore;
}
private void getTargetPosition(int x, int y)
{
Target = new Vector2(x, y) * (tileSize + Spacing);
}
//Only for testing without obstacles
private void createPath()
{
path = new Path();
Vector2 targetPos = Target / (tileSize + Spacing);
Vector2 currentPath = tractorPos / tileSize;
currentPath.X = (float)Math.Round(currentPath.X);
currentPath.Y = (float)Math.Round(currentPath.Y);
do
{
if (currentPath.X == targetPos.X)
{
//found X pos
if (currentPath.Y == targetPos.Y)
{
//found y pos
}
else if (currentPath.Y < targetPos.Y)
{
currentPath = new Vector2(currentPath.X, currentPath.Y + 1);
path.setNode(currentPath);
}
else if (currentPath.Y > targetPos.Y)
{
currentPath = new Vector2(currentPath.X, currentPath.Y - 1);
path.setNode(currentPath);
}
}
else if (currentPath.X < targetPos.X)
{
currentPath = new Vector2(currentPath.X + 1, currentPath.Y);
path.setNode(currentPath);
}
else if (currentPath.X > targetPos.X)
{
currentPath = new Vector2(currentPath.X - 1, currentPath.Y);
path.setNode(currentPath);
}
} while (currentPath != targetPos);
}
}

View File

@ -1,63 +0,0 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

261
Tractor_VS/.gitignore vendored
View File

@ -1,261 +0,0 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
project.fragment.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
#*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

Binary file not shown.

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<SourceFileCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Profile>Reach</Profile>
<Platform>Windows</Platform>
<Config />
<SourceFiles>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Crop.png</File>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Font.spritefont</File>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/house.png</File>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Plantable.png</File>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Planted.png</File>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Tile.png</File>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/tileunplantable.png</File>
<File>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Tractor.png</File>
</SourceFiles>
<DestFiles>
<File xsi:nil="true" />
<File xsi:nil="true" />
<File xsi:nil="true" />
<File xsi:nil="true" />
<File xsi:nil="true" />
<File xsi:nil="true" />
<File xsi:nil="true" />
<File xsi:nil="true" />
</DestFiles>
</SourceFileCollection>

View File

@ -1,9 +0,0 @@
Source File,Dest File,Processor Type,Content Type,Source File Size,Dest File Size,Build Seconds
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Crop.png","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Crop.xnb","TextureProcessor","Texture2DContent",3681,262229,0.2164986
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Font.spritefont","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Font.xnb","FontDescriptionProcessor","SpriteFontContent",2008,21524,0.1952166
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/house.png","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/house.xnb","TextureProcessor","Texture2DContent",1226,40085,0.003001
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Plantable.png","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Plantable.xnb","TextureProcessor","Texture2DContent",776,262229,0.0060014
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Planted.png","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Planted.xnb","TextureProcessor","Texture2DContent",3958,262229,0.0060017
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Tile.png","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Tile.xnb","TextureProcessor","Texture2DContent",828,262229,0.008001
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/tileunplantable.png","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/tileunplantable.xnb","TextureProcessor","Texture2DContent",1823,1000085,0.0220053
"C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Tractor.png","C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Tractor.xnb","TextureProcessor","Texture2DContent",573,12853,0.0020008

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PipelineBuildEvent xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SourceFile>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Font.spritefont</SourceFile>
<SourceTime>2018-12-08T17:35:46+01:00</SourceTime>
<DestFile>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Font.xnb</DestFile>
<DestTime>2020-04-08T20:07:48.1912196+02:00</DestTime>
<Importer>FontDescriptionImporter</Importer>
<ImporterTime>2020-02-26T06:46:56+01:00</ImporterTime>
<Processor>FontDescriptionProcessor</Processor>
<ProcessorTime>2020-02-26T06:46:56+01:00</ProcessorTime>
<Parameters>
<Key>PremultiplyAlpha</Key>
<Value>True</Value>
</Parameters>
<Parameters>
<Key>TextureFormat</Key>
<Value>Compressed</Value>
</Parameters>
<Dependencies />
<BuildAsset />
<BuildOutput />
</PipelineBuildEvent>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PipelineBuildEvent xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SourceFile>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Tile.png</SourceFile>
<SourceTime>2020-04-08T20:07:05.8428994+02:00</SourceTime>
<DestFile>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Tile.xnb</DestFile>
<DestTime>2020-04-08T20:07:48.2152249+02:00</DestTime>
<Importer>TextureImporter</Importer>
<ImporterTime>2020-02-26T06:46:56+01:00</ImporterTime>
<Processor>TextureProcessor</Processor>
<ProcessorTime>2020-02-26T06:46:56+01:00</ProcessorTime>
<Parameters>
<Key>ColorKeyColor</Key>
<Value>255,0,255,255</Value>
</Parameters>
<Parameters>
<Key>ColorKeyEnabled</Key>
<Value>True</Value>
</Parameters>
<Parameters>
<Key>GenerateMipmaps</Key>
<Value>False</Value>
</Parameters>
<Parameters>
<Key>PremultiplyAlpha</Key>
<Value>True</Value>
</Parameters>
<Parameters>
<Key>ResizeToPowerOfTwo</Key>
<Value>False</Value>
</Parameters>
<Parameters>
<Key>MakeSquare</Key>
<Value>False</Value>
</Parameters>
<Parameters>
<Key>TextureFormat</Key>
<Value>Color</Value>
</Parameters>
<Dependencies />
<BuildAsset />
<BuildOutput />
</PipelineBuildEvent>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PipelineBuildEvent xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SourceFile>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/Tractor.png</SourceFile>
<SourceTime>2020-04-06T14:11:32.7941423+02:00</SourceTime>
<DestFile>C:/Users/Oskar/Source/Repos/s425077/PotatoPlan/Tractor_VS/Game1/Content/bin/Windows/Content/Tractor.xnb</DestFile>
<DestTime>2020-04-08T20:07:48.2392297+02:00</DestTime>
<Importer>TextureImporter</Importer>
<ImporterTime>2020-02-26T06:46:56+01:00</ImporterTime>
<Processor>TextureProcessor</Processor>
<ProcessorTime>2020-02-26T06:46:56+01:00</ProcessorTime>
<Parameters>
<Key>ColorKeyColor</Key>
<Value>255,0,255,255</Value>
</Parameters>
<Parameters>
<Key>ColorKeyEnabled</Key>
<Value>True</Value>
</Parameters>
<Parameters>
<Key>GenerateMipmaps</Key>
<Value>False</Value>
</Parameters>
<Parameters>
<Key>PremultiplyAlpha</Key>
<Value>True</Value>
</Parameters>
<Parameters>
<Key>ResizeToPowerOfTwo</Key>
<Value>False</Value>
</Parameters>
<Parameters>
<Key>MakeSquare</Key>
<Value>False</Value>
</Parameters>
<Parameters>
<Key>TextureFormat</Key>
<Value>Color</Value>
</Parameters>
<Dependencies />
<BuildAsset />
<BuildOutput />
</PipelineBuildEvent>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
cf25c9cac4cef71798408758988dea8332b39a3d

View File

@ -1,118 +0,0 @@
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\Game1.exe
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\Game1.pdb
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\MonoGame.Framework.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.Direct2D1.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.XInput.dll
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\MonoGame.Framework.xml
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.xml
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.xml
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.xml
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.xml
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.xml
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.Direct2D1.xml
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\SharpDX.XInput.xml
c:\users\joel\source\repos\Game1\Game1\obj\x86\Debug\Game1.csprojAssemblyReference.cache
c:\users\joel\source\repos\Game1\Game1\obj\x86\Debug\Game1.csproj.CoreCompileInputs.cache
c:\users\joel\source\repos\Game1\Game1\obj\x86\Debug\Game1.csproj.CopyComplete
c:\users\joel\source\repos\Game1\Game1\obj\x86\Debug\Game1.exe
c:\users\joel\source\repos\Game1\Game1\obj\x86\Debug\Game1.pdb
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\Content\Tile.xnb
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\Content\Tractor.xnb
c:\users\joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\Content\Font.xnb
C:\Users\Joel\source\repos\Game1\Game1\bin\Windows\x86\Debug\Content\house.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Font.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\house.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Tile.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\tileunplantable.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Tractor.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Game1.exe
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Game1.pdb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\MonoGame.Framework.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct2D1.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XInput.dll
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\MonoGame.Framework.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct2D1.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XInput.xml
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csprojAssemblyReference.cache
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csproj.CoreCompileInputs.cache
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csproj.CopyComplete
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.exe
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.pdb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Plantable.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Planted.xnb
C:\Users\Joel\source\repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Crop.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Crop.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Font.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\house.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Plantable.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Planted.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Tile.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\tileunplantable.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Tractor.xnb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Game1.exe
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Game1.pdb
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\MonoGame.Framework.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct2D1.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XInput.dll
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\MonoGame.Framework.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct2D1.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XInput.xml
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csprojAssemblyReference.cache
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csproj.CoreCompileInputs.cache
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csproj.CopyComplete
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.exe
D:\Ny mapp (2)\Ny mapp (2)\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.pdb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Crop.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Font.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\house.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Plantable.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Planted.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Tile.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\tileunplantable.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Content\Tractor.xnb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Game1.exe
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\Game1.pdb
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\MonoGame.Framework.dll
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.dll
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.dll
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.dll
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.dll
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.dll
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XInput.dll
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\MonoGame.Framework.xml
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.DXGI.xml
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.xml
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.Direct3D11.xml
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.MediaFoundation.xml
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XAudio2.xml
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\bin\Windows\x86\Debug\SharpDX.XInput.xml
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csprojAssemblyReference.cache
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csproj.CoreCompileInputs.cache
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.csproj.CopyComplete
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.exe
C:\Users\Oskar\Source\Repos\s425077\PotatoPlan\Tractor_VS\Game1\obj\x86\Debug\Game1.pdb