Jump to content

mandar o array para o ecrã duvida


Puky
 Share

Recommended Posts

Boas

É o meu primeiro tópico pessoal.

E era o seguinte eu e um amigo meu estamos a trabalhar num projecto para a escola que é criar o jogo do 15 com o C# mas eu e ele ainda só conseguimos abrir e colocar a imagem numa picture box, também já conseguimos preencher um array e ver bocados de imagens mas ainda falta recortar a imagem em 15 bocados sendo o bocado 15 branco...

E era para ver se voçes poderiam-nos ajudar.

Obrigado desde de já

Cump

OBS: Falta somente gravar o jogo e fazer um ciclo para que começe a mandar para o ecrã porque para o array já esta

Link to comment
Share on other sites

Pessoal o código que fizemos é isto

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.Drawing.Imaging;


namespace WindowsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //Bitmap imagem1;
        //Bitmap imagem2;
        
        Bitmap imagem;
        int larg;
        int alt;
        Bitmap[] imagens = new Bitmap[16];
        int [,] Quadro = {  { 0, 1, 2, 3 },
                        { 4, 5, 6, 7 },
                        { 8, 9, 10, 11 },
                        { 12, 13, 14, 15 } };

        int lc = 3;
        int cc = 3;

        
        private void Form1_Load(object sender, EventArgs e)
        {
            this.Focus();
        }

        private void btncarregar_Click(object sender, EventArgs e)
        {
            DialogResult dc = ofdAbrir.ShowDialog();

            imagem = new Bitmap(ofdAbrir.FileName);



            Bitmap imagem2 = new Bitmap(imagem, new Size((ptb1.Width / 4) * 4, (ptb1.Height / 4) * 4));


            int alt = imagem2.Height / 4;
            int larg = imagem2.Width / 4;

            int i = 0;


            for (int a = 0; a < 4; a++)
                for (int l = 0; l < 4; l++)
                {
                    imagens[i] = imagem2.Clone(new Rectangle(larg * l, alt * a, larg, alt), PixelFormat.Format24bppRgb);
                    i++;
                }
            //imagem[15] = Bitmap solido;
            ptb1.Image = imagem2;
            ptb2.Image = imagens[5];


            //    Bitmap imagemPictureBox;

            //     ActualizaPictureBox();
            //    {
            //        for (int x = 0; x < 4; x++)
            //            for (int y = 0; y < 4; y++)
            //                imagemPictureBox = imagem2.Clone(new Rectangle(larg * x, alt * y, larg, alt), PixelFormat.Format24bppRgb);
            //    }


            //}
        }

        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 'C')
                MessageBox.Show("Carregou no C");
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {   if (lc>=1)
            if (e.KeyCode == Keys.Up)
            {
                Quadro[lc, cc] = Quadro[lc-1, cc];
                lc--;
                Quadro[lc, cc] = 15;
            }
        if (lc >= 1)
            if (e.KeyCode == Keys.Down)
            {
                Quadro[lc, cc] = Quadro[lc - 1, cc];
                lc--;
                Quadro[lc, cc] = 15;
            }
        if (cc >= 1)
            if (e.KeyCode == Keys.Left)
            {
                Quadro[cc, lc] = Quadro[cc - 1, lc];
                cc--;
                Quadro[cc, lc] = 15;
            }
        if (cc >= 1)
            if (e.KeyCode == Keys.Right)
            {
                Quadro[cc, lc] = Quadro[cc - 1, lc];
                cc--;
                Quadro[cc, lc] = 15;
            }

            
            //for (int a = 0; a < 4; a++)
              //  for (int l = 0; l < 4; l++)
                //{
                  //  imagens[i] = imagem2.Clone(new Rectangle(larg * l, alt * a, larg, alt), PixelFormat.Format24bppRgb);
                 //   i++;
                //}
        }

        private void Form1_Leave(object sender, EventArgs e)
        {
        }

        private void btncarregar_Enter(object sender, EventArgs e)
        {
        }
    }
}
// Array Quadro e coordenadas do cursor xc, yc
//  [ 00 01 02 03 ]
//  [ 04 05 06  07].
//  [ 08 09 10 11 ]
//  [ 12 13 14 15 ]

// cx e cy q são as coordenadas de 0 a 3 do cursor (valor 15)w

//  [ 12 03 05 14 ]
//  [ 07 02 11 10 ]
//  [ 01 04 06 08 ]
//  [ 13 09 00 15 ]

o que nos falta é mandar o que está no array preenchido para o ecrã sei que é com um for e depois fazer o save do jogo.

o jogo do 15 é este neste site http://www.testonline.com.br/quinze.htm

agora agradeçia que me poedessem ajudar se conseguirem.

Estamos a usar 2 pictures box e um botão.

Link to comment
Share on other sites

Puky... Estás à espera de quê? que te façam o trabalho?

Expõem dúvidas concretas sff. Um bom programador tenta resolver os seus problemas sozinho... Pode pedir ajuda mas entretanto vai tentando fazer por ele.

É como te disse se expores dúvidas concretas vais ser ajudado, senão ninguém vai estar a fazer o trabalho dos outros....

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

for (int a = 0; a < 4; a++)
    for (int l = 0; l < 4; l++)                
    {                   
        imagens[i] = imagem.Clone(new Rectangle(larg * l, alt * a, larg, alt), PixelFormat.Format24bppRgb);                   
        i++;

creio que é mais ou menos assim mas falta alguma coisa mas acho que é no nome e não tou a cosneguir resolver

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.