• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Puky

mandar o array para o ecrã duvida

11 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não conheço esse jogo do 15... mas convinha especificar dúvidas concretas. Ninguém te vai ajudar se não sabe em quê. :D

Não tens código feito? Mostra aí a parte onde queres ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já formataram o codigo e desculpa não ter feito mas como sou novato aqui prontos

mas alguém da comunidade digo eu fez tal favor agora é esperar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora é esperar que algum programador ou programadores consigam-me ajudar nesta tarefa que pareçe complicada pelo menos até à data ninguem ajudou

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda estou à epera mas esto ua ver que neste forum não vou ser esclarecido infelizmente

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já meti aqui o meu problema mais espefificamente e memso assim continuo sem ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

primeiro tas a fazer o jogo em ambiente grafico suponho certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora