using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//GenerateButtons();
//if (!IsPostBack)
//{
// GenerateRandom();
//}
}
protected void Page_Init(object sender, EventArgs e)
{
GenerateButtons();
GenerateRandom();
}
private void GenerateButtons()
{
for (int i = 0; i < 16; i++)
{
short j = ((short)i);
j += 1;
Button b = new Button();
b.Width = 80;
b.Height = 80;
b.Text = (i + 1).ToString();
b.TabIndex = j;
b.ID = "Button" + (i + 1).ToString();
//b.OnClientClick = "Swap";
b.Click += new EventHandler(Swap);
Panel1.Controls.Add(b);
}
Button bEmpty = (Button)Panel1.FindControl("Button16");
bEmpty.Text = "";
}
protected void GenerateRandom()
{
int arr_Numbers = new int; // array to prevent duplicate numbers
Random r = new Random();
bool boolFlag = true;
int i = 0;
int randNum = 0;
String bID = null; // the button ID (etc. "Button11")
String bText = null; // the Text field on each button (etc. "11")
Button tmpButton = null; // pointer to a button
while (i <= 14)
{
while (boolFlag == true)
{
randNum = r.Next(15);
if (arr_Numbers != 1)
{
arr_Numbers = 1;
boolFlag = false;
}
}
bID = "Button" + (i + 1).ToString(); // "Button1".."Button15"
bText = (randNum + 1).ToString(); // "1".."16"
tmpButton = (Button)Panel1.FindControl(bID); //temporary pointer to the button ID
tmpButton.Text = bText; // change the text value of the button im pointing at
boolFlag = true;
i++;
}
}
protected void Swap(object sender, EventArgs e)
{
int myTabIndex = ((Button)sender).TabIndex; //between 1-16
Button current = ((Button)sender);
String left = "Button" + (myTabIndex - 1).ToString();
String right = "Button" + (myTabIndex + 1).ToString();
String up = "Button" + (myTabIndex - 4).ToString();
String down = "Button" + (myTabIndex + 4).ToString();
Button bLeft = (Button)Panel1.FindControl(left);
Button bRight = (Button)Panel1.FindControl(right);
Button bUp = (Button)Panel1.FindControl(up);
Button bDown = (Button)Panel1.FindControl(down);
if ((bLeft != null) && (bLeft.Text == "") && ((current.TabIndex % 4) != 1))
{
String swapX = current.Text;
String swapY = bLeft.Text;
current.Text = swapY;
bLeft.Text = swapX;
return;
}
if ((bRight != null) && (bRight.Text == "") && ((current.TabIndex % 4) != 0))
{
String swapX = current.Text;
String swapY = bRight.Text;
current.Text = swapY;
bRight.Text = swapX;
return;
}
if ((bUp != null) && (bUp.Text == ""))
{
String swapX = current.Text;
String swapY = bUp.Text;
current.Text = swapY;
bUp.Text = swapX;
return;
}
if ((bDown != null) && (bDown.Text == ""))
{
String swapX = current.Text;
String swapY = bDown.Text;
current.Text = swapY;
bDown.Text = swapX;
return;
}
}
}