Grazie mille dell'accoglienza MdE2005!!

Tornando al programma purtroppo si è così lungo questo maledetto ritardo

poso qui il codice così puoi dare un occhiata

P.S. ho usato il previewKeyDown qui solo per una prova per vedere se cambiava qualcosa ma niente

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()
        {

            this.Focus();
            tmrSpostamento.Enabled=true;

        }


        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.Height = 10;
                    tx.Width = 10;
                    tx.Location = new Point(x, y);
                    matrtx[i,k] = tx;
                    Controls.Add(tx);
                    y += 10;
                }
                x += 10;

            }
            this.Refresh();
            Gioca();
        }

        private void tmrSpostamento_Tick(object sender, EventArgs e)
        {
            tmrSpostamento.Stop();
            matrtx[posX1, posY1].BackColor = Color.RosyBrown;
            matrtx[posX1, posY1].Refresh();
            matrtx[posX2, posY2].BackColor = Color.Black;
            matrtx[posX2, posY2].Refresh();
            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;
            }


            if (vittoria != true)
            {
                tmrSpostamento.Start();
            }
            else
                MessageBox.Show("il player ha vinto la partita!!");
        }

        private void frmGioco_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            tmrSpostamento.Stop();
            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;
            }
            tmrSpostamento.Start();
        }
    }
}