Grazie mille della risposta ma purtroppo non funziona ancora... Se ho inteso bene mi hai detto di fare così no??? (ci sono pure i controlli per la vittoria ora
)
codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class frmGioco : Form
{
public frmGioco()
{
InitializeComponent();
}
public Label[,] matrtx = new Label[60, 60];
public int posX1 = 0;
public int posY1 = 30;
public int posX2 = 59;
public int posY2 = 30;
//0=giu 1=sx 5=su 3=dx
public int prec1 = 3;
public int prec2 = 1;
public bool vittoria = false;
private void frmGioco_Load(object sender, EventArgs e)
{
}
private void Gioca()//(Label [,]campo)
{
this.Focus();
MessageBox.Show("ok 1 ");
tmrSpostamento.Start();
}
private void btnStart_Click(object sender, EventArgs e)
{
btnStart.Visible = false;
label1.Visible = false;
int x = 0;
int y = 0;
for (int i = 0; i < 60; i++)
{
y = 0;
for (int k = 0; k < 60; k++)
{
Label tx = new Label();
tx.BorderStyle = BorderStyle.FixedSingle;
tx.BackColor = Color.White;
tx.Height = 10;
tx.Width = 10;
tx.Location = new Point(x, y);
matrtx[i,k] = tx;
Controls.Add(tx);
y += 10;
}
x += 10;
}
this.Refresh();
MessageBox.Show("ok ");
Gioca();
}
private void tmrSpostamento_Tick(object sender, EventArgs e)
{
tmrSpostamento.Stop();
if (posX1 >= 0 && posX1 <= 59 && posY1 >= 0 && posY1 <= 59 && matrtx[posX1, posY1].BackColor == Color.White )
{
matrtx[posX1, posY1].BackColor = Color.RosyBrown;
matrtx[posX1, posY1].Refresh();
}
else
{
MessageBox.Show("Il giocatore due ha vinto la partita");
vittoria = true;
SpegniTimer();
}
if (posX2 >= 0 && posX2 <= 59 && posY2 >= 0 && posY2 <= 59 && matrtx[posX2, posY2].BackColor == Color.White)
{
matrtx[posX2, posY2].BackColor = Color.Black;
matrtx[posX2, posY2].Refresh();
}
else
{
MessageBox.Show("Il giocatore uno ha vinto la partita");
vittoria = true;
SpegniTimer();
}
if (vittoria != true)
{
switch (prec1)
{
case 1: posX1--; break;
case 0: posY1++; break;
case 3: posX1++; break;
case 5: posY1--; break;
}
switch (prec2)
{
case 1: posX2--; break;
case 0: posY2++; break;
case 3: posX2++; break;
case 5: posY2--; break;
}
tmrSpostamento.Start();
}
else
{
MessageBox.Show("Un player ha vinto la partita!!");
SpegniTimer();
}
}
private void frmGioco_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyValue)
{
case 87: if (prec2 != 5 && prec2 != 0) prec2 = 5; break;
case 65: if (prec2 != 1 && prec2 != 3) prec2 = 1; break;
case 83: if (prec2 != 5 && prec2 != 0) prec2 = 0; break;
case 68: if (prec2 != 1 && prec2 != 3) prec2 = 3; break;
case 38: if (prec1 != 5 && prec1 != 0) prec1 = 5; break;
case 40: if (prec1 != 5 && prec1 != 0) prec1 = 0; break;
case 39: if (prec1 != 1 && prec1 != 3) prec1 = 3; break;
case 37: if (prec1 != 1 && prec1 != 3) prec1 = 1; break;
}
}
private void SpegniTimer()
{
tmrSpostamento.Enabled = false;
tmrSpostamento.Stop();
}
}
}