Hello, I have been trying to get this robot to work out and be able to move around. I am just so confused as to how to get my arrow to get even displayed and moved when pressed by one of the directions to go.
One area that I struggle with is the classes and event handlers as has probably been my biggest issue facing this assignment.
Anyways this is what I have so far and thanks in advance for any help.
Robot.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Threading.Tasks;
namespace Robot
{
public enum Direction {North,East,South,West }
public delegate void RangeLimitEventHandler(object source, RangeLimitArgs re);
public class RangeLimitArgs { }
public class robot
{
private int range;
public Direction orientation;
public Direction direction;
public robot()
{
location = new Point();
direction = Direction.North;
}
public Point location { get; set; }
public void Move(int unitToMove)
{
Point P = new Point();
switch (direction)
{
case Direction.North:
P.X = location.X;
P.Y = location.Y - unitToMove;
break;
case Direction.West:
P.X = location.X - unitToMove;
P.Y = location.Y;
break;
case Direction.South:
P.X = location.X;
P.Y = location.Y + unitToMove;
break;
case Direction.East:
P.X = location.X + unitToMove;
P.Y = location.Y;
break;
default:
break;
}
location = P;
}
public void Draw(Graphics G)
{
SolidBrush redBrush = new SolidBrush(Color.Red);
Size S = new Size(40, 40);
Rectangle R = new Rectangle(location, S);
G.FillEllipse(redBrush, R);
}
public override string ToString()
{
return ((char)direction).ToString();
}
}
}
form.cs
using Robot;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Robot5
{
public enum Arrow { Up = 233, Right = 232, Down =234, Left = 231}
public partial class Form1 : Form
{
private Robot robot;
private Point center;
public Form1()
{
InitializeComponent();
}
//private void DirectionButton_Click(object sender,EventArgs e)
private void HandelRangeExceeded(object sender, ArgumentOutOfRangeException re)
{
MessageBox.Show("The robot tried to move too far" + re.GetInfo()));
}
private void btnNorth_Click(object sender, EventArgs e)
{
}
private void btnEast_Click(object sender, EventArgs e)
{
}
private void btnSouth_Click(object sender, EventArgs e)
{
}
private void btnWest_Click(object sender, EventArgs e)
{
}
private void btnGo1_Click(object sender, EventArgs e)
{
}
private void btnGo10_Click(object sender, EventArgs e)
{
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
}
}