Ir ao conteúdo
  • Cadastre-se

_rsd_17

Membros Plenos
  • Total de itens

    32
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Ola a todos, tenho um bug na view em que permito que alguem faça o registo. Apresenta me este codigo : System.IO.DirectoryNotFoundException: 'Não foi possível encontrar uma parte do caminho 'Fotos\WIN_20190125_16_11_48_Pro.jpg'.' Nesta funçao: private void Registo_RespostaRegistar(string _nome, string _email, string _pais, string _username, string _password, string _foto) { //Obtem o caminho fisico para a pasta do código da aplicação //para poder reutilizar a base de dados, caso contrário, ele está sempre a substituir var folder = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", ""); //construir a ligação ao servidor SQL Server local com o caminho do ficheiro string sqlConnection = "Server=(localdb)\\MSSQLLocalDB;AttachDbFilename=" + folder + "InfoJogadores.mdf" + ";Trusted_Connection=True;"; //inicializar a ligação ao servidor SqlConnection server = new SqlConnection(sqlConnection); //abrir a ligação server.Open(); //obter o nome do ficheiro string filename = System.IO.Path.GetFileName(_foto); //construir a string SQL de insert nas tabelas // para aplicações reais devem usar SQL parameters e não string directas string comando = String.Format("INSERT INTO InfoJogadores" + "(Nome,Email,Pais, Username, Password, Foto) values " + "( '{0}', '{1}', '{2}', '{3}','{4}', '{5}')", _nome,_email,_pais,_username,_password, filename); //construir o comando SQL com a ligação ao servidor SqlCommand command = new SqlCommand(comando, server); //executar o comando sem expectativa de receber resultados (usar para INSERTS, UPDATES, DELETE) //o metodo devolve o numero de linhas modificadas pela query enviada int resultado = command.ExecuteNonQuery(); //fechar sempre a ligação quando deixa de ser necessária server.Close(); if (resultado == 1) // se o resultado for 1, significa que adicionou correctamente o utilizador { //guardar copia do ficheiro na pasta fotos // DA ERRO AQUII System.IO.File.Copy(_foto, "Fotos\\" + filename, true); } else { // não inseriu na base de dados, não fazemos nada } } } Nao estou a conseguir resolver esse erro alguem me pode ajudar?
  2. estou a criar um metodo no jogo das Damas que perimite que as peças movam, entao numa textbos insiro a posiçao da peça que qero mover e depois guarda a na variavel aux, e o utilizador na mesma textbox (textboxposicao) insere a posicao para onde quer mover a peça Mas o metodo esta a dar me erro numa linha diz que 'A referência de objecto não foi definida como uma instância de um objecto ' Nao estou a conseguir resolver o problema alguem me pode ajudar? Este é o metodo a linha que me da erro é a assinalada private void buttonAdicionarPedra_Click(object sender, EventArgs e) { Point peça_selecionada = new Point(-1,-1);//criamos uma variavel do tipo Point para guardar a posiçao da peça que vamos mexer //inicializamos-a na posiçao (-1,-1) porque estas posiçoes nao existem no tabuleiro char[] aux; Pedras pedra_aux; if (!this.seleçao)//se a peça nao tiver sido selecionada { aux = textBoxposicao.Text.ToCharArray(); //a variavel aux é um auxiliar para converter a textbox para vetor de carateres peça_selecionada = new Point(Convert.ToInt32(aux[0]), Convert.ToInt32(aux[1])); this.seleçao = true;//a peça foi selecionada buttonAdicionarPedra.Text = "Adicionar Pedra";//o botao muda de nome para AdicionarPedra textBoxposicao.Text = "";//coloca a textbox a branco novamente label1.Text = "Escolha para onde mover a peça";//muda o texto da label por cima da textbox posicao } else {//e a pedra foi selecionada pedra_aux = play.ProcurarPedras(peça_selecionada); aux = textBoxposicao.Text.ToCharArray(); pedra_aux.inserirposicao(Convert.ToInt32(aux[0]), Convert.ToInt32(aux[1]));//---------- da erro aqui DesenhaPedras(play.Tabuleiro); buttonAdicionarPedra.Text = "Selecionar Peça"; label1.Text = "Escolha a posição da peça que quer mover"; } } Estes sao os outros metodos que uso neste metodo : public void inserirposicao(int x, int y)//metodo criado para ajudar a guardar a posicao da peça q vamos mexer { Posiçao.X = x; Posiçao.Y = y; }
  3. @Fn1X Eu so tenho este construtor, eu na textBoxPosiçao vou inserir as cordenadas que qero mover a peça tipo 11 ou 32 assim so public Pedras(bool imagem_, Point _posicao) //imagem é a imagem da peças e a posiçao é a posicao que vão ter no tabuleiro { //Point posicao = new Point(); posição tem que pertencer a classe (um campo da classe). //Todas as variaveis declaradas dentro do método são removidas da memória após o fim do mesmo. imagem = imagem_; posicao = _posicao; } Como é que eu converto a textboxposiçao em point? para por em inteiro seria algo do tipo textBoxPosicao.Toint32
  4. Ola, estou a desenvolver o jogo das damas em c# e estou a ter dificuldades em mover as peças no tabuleiro. Usei um metodo com o botao mas aparece este erro? Como resolvo?
  5. @Flávio Pedroza Ja funciona muito obrigada!! Boa pascoa ja agora
  6. @Flávio Pedroza ja exprimentei mas da erro, ele nao aceita nada eu tenho a imagem das damas na pasta do projeto Damas e tenho tambem na pasta imagens do computador. Mas nao aceita, nao sei porque. Da este erro :
  7. @Flávio Pedroza Eu ja tinha mencionado essa bibliote na classe Pedras pensei que as bibliotecas nao eram preciso mencionar sempre que usava a classe Point noutra classe, mas funcionou obrigada !! Agora tenho outro erro, eu tenho a imagem das peças a abrir diretamente da localizaçao no tabuleiro mas nao funciona Ja pus a localizaçao como o diretorio, ja coloquei so o nome da imagem mas nada funciona. Eu estou a usar essa pequena funçao de outro codigo : private void MostraPedraTabuleiro(Pedra pedra) { PictureBox pp = this.Controls.Find(pedra.Posicao, false)[0] as PictureBox; if (pedra.Branca) pp.Image = Image.FromFile("Imagens//DamaBranca.png"); else pp.Image = Image.FromFile("Imagens//DamaPreta.png"); } E funciona, mas implementando a com o meu codigo nao funciona porque?
  8. @Flávio Pedroza@Flávio Pedroza ja resolveu alguns erros mas continuo a nao conseguir colocar as peças no tabuleiro na posiçao que qero usando esses dois metodos em cima como é que indico a posiçao das peças ?
  9. @Flávio Pedroza Entao na classe Dama onde estou a implementar o 1º bloco de codigo tenho : public class Pedras { public bool comerdama{ get; set; } public bool imagem{ get; set;} //usamos point porque a classe ja esta feita vamos reutilizar codigo public Point posicao{ get; set; } public bool dama {get; set;} public Casas ponto { get; set; } public Pedras(bool imagem_, Point _posicao) //imagem é a imagem da peças e a posiçao é a posicao que vão ter no tabuleiro { //Point posicao = new Point(); imagem = imagem_; posicao.X = _posicao.X; posicao.Y = _posicao.Y; } } E o segundo bloco implemento na classe tabuleiro: public class Jogo { List< Pedras > tabuleiro;//usamos pedras porque vamos usar a classe Pedras de Dama public Jogador jog1 { get; set; } public Utilizador jog2 { get; set; } public int numderrotas_jog1{ get; set; } public int numderrotas_jog2 { get; set;} public int numempates{ get; set; } public int numvitorias_jog1 {get; set; } public int numvitorias_jog2 {get; set; } public int pontuacao{ get; set;} public float tempo { get; set; } public Tabuleiro Tab { get; set; } public Utilizador user { get; set; } public Jogo() //vamos inicializar as peças no tabuleiro { tabuleiro = new List<Pedras>(); //é adicionada a imagem das peças nestas posiçoes quando o tabuleiro é inicializado tabuleiro.Add(new Pedras(true,new Point(8,2))); //peças brancas tabuleiro.Add(new Pedras(false, new Point(8,4))); //peças pretas } internal List<Pedras> Tabuleiro { get => tabuleiro; set => tabuleiro = value; } //internal é como os membros public mas é apenas visivel dentro do modulo corrente } } Mas nao funciona, porque? o que tenho errado?
  10. Estou a criar o jogo das damas em c# e estou a ter dificuldades a inicializar as imagens nas coordenadas que desejo. Tenho uma funçao na classe Pedras onde criei um point para guardar o x e o y que vão ser inseridos para mover as peças. public Pedras(bool imagem_, Point _posicao) //imagem é a imagem da peças e a posiçao é a posicao que vão ter no tabuleiro { Point posicao = new Point(); imagem = imagem_; posicao.X = _posicao.X; posicao.Y = _posicao.Y; } Agora quero inicializar as imagens das peças no tabuleiro quando ele abre, entao coloquei no construtor do tabuleiro a inicializaçao: public Jogo() //vamos inicializar as peças no tabuleiro { tabuleiro = new List<Pedras>(); //é adicionada a imagem das peças nestas posiçoes quando o tabuleiro é inicializado tabuleiro.Add(new Pedras(true,(8,2))); //peças brancas tabuleiro.Add(new Pedras(false, (8,4))); //peças pretas } o meu tabuleiro tem os números de 12345678 no topo e de lado tem de 1 a 8 de cima para baixo. Mas nao funciona, alguem me pode ajudar a corrigir o problema?
  11. _rsd_17

    C# jogo das damas c#

    @Gabferreira Ao usar o click para mover todas as peças tenho que fazer para todas elas esta função? private void destinoPeca_PictureBox_Click(object sender, EventArgs e){} o que é a peca_PictureBox.Location ? Como é que eu sei para onde as mover? o utilizador vai jogar com o rato mas tenho que restringuir para onde as pode mover, ou seja tenho que indicar no codigo as unicas posiçoes para onde pode mover
  12. _rsd_17

    C# jogo das damas c#

    @Gabferreira ola obrigada, então eu ja criei o tabuleiro usei varias pictureBox como o exemplo que o meu professor deu, então ele usa uma string posição para mover as peças que busca diretamente a localizaçao onde estão guardadas no pc quando abre o tabuleiro. Ou seja sao pictureBox tambem. Entao eu estou a pensar fazer da mesma forma usar pictureBox com as peças mas que aparecam so quando o tabuleiro é aberto, e não na view. agora a minha duvida é, eu quero usar a classe Point para poder mexer com as peças, como é que faço isso? o meu tabuleiro esta assim: o utilizador na posicaçao que é uma textbox vai inserir a posicao em q quer jogar a peça mas como é q eu faço isso no codigo usando a classe point?
  13. _rsd_17

    C# jogo das damas c#

    Ola pessoal, estou a desenvolver o jogo das damas em c# usando o visual studio 2017 e programando usando o MVC. Eu ja fiz 4 views uma para ser a principal em que o jogador escolhe jogar ou registar, outra para o registo, para efectuar o login e uma para o tabuleiro. na view do tabuleiro eu vou colocar uma pictureBox para aparecer o tabuleiro e queria colocar as peças sobre ele e po-las a mexer. As peças pensei em usar pictureBox tambem, mas nao sei se posso mover pictureBoxs nem sei bem como fazer isso alguem me pode ajudar?
  14. Ola, estou a resolver um exercicio usando o MVC que pela ViewPrincipal o utilizador insere uma cor e depois pode guarda la num ficheiro a sua escolha. Ate ai tudo bem, mas depois pede para que a cor que foi guardada em ficheiro apenas seja guardada uma vez e caso a cor ja tenho sido guardada anteriormente pela aplicação não deve permitir que ela seja guardada novamente apresentando uma mensagem ao utilizador a dizer : "A cor verde ja foi guardada! " Nao sei muito bem como resolver esta parte da tarefa, se alguem me pudesse ajudar agradecia. Eu penso que na view tenha que criar um if e por la a condição q se a cor ja foi guardada apareça a mensagem de erro. Aguardo ajuda, Obrigada
  15. ola no jogo do galo tenho uma funçao SelectionSort na classe jogador para ordenar os jogadores pela experiencia, e tenho uma funçao de troca para ajudar: void jogador::SelectionSort(jogador * Jog, int size)//ordenar jogadores pela experiencia { int i, j, aux; for (i = 0; i < size - 1; i++) { aux = i; for (j = i + 1; j < size; j++) { if ((Jog + j)->GetExperiencia() < (Jog + j)->GetExperiencia()) { aux = j; } } troca(Jog + aux, Jog + i); } } void jogador::troca(jogador * x, jogador * y) { jogador aux; aux = *x; *x = *y; *y = aux; } ate ai tudo bem, mas quando tenho implementar no main nao funciona!! Help ? //apresentar no ecran os dados dos jogadores ordenados pela experiencia jogador vetor[10]; jogador.SelectionSort(vetor,10); for (int i = 0; i < 10; i++) { cout << vetor[i] << "\n"; } cin.get(); adicionado 0 minutos depois o meu main completo é assim: #include "pch.h" #include <iostream> #include "Menu.h" #include "Jogo.h" #include "Campeonato.h" #include "jogador.h" using namespace std; int main() { Menu menu = Menu(); Jogo game = Jogo(); Campeonato championship = Campeonato(); int option = 0; do { system("CLS"); menu.View_B_Menu();//primeiro menu menu.SetCondicao(6); switch (option = menu.SelectOption()) { case 1: //jogar o jogo menu.PlayGame(); break; case 2: //como jogar system("CLS"); menu.ViewHow2Play(); system("PAUSE"); break; case 3: // Regras system("CLS"); menu.ViewRules(); system("PAUSE"); break; case 5: // ler do ficheiro os dados de todos os jogadores para um vetor de objetos jogador vetor[10]; ifstream x; int contador; x.open("Jogadores.txt"); if (x) { for (int i = 0; i < 10; i++) { vetor[i].Read(x); } /*ou entao: contador = 0; while(x.peek()!=EOF={ vetor[contador].Read(x); contador++; }*/ x.close(); cout << "Ficheiro Jogadores.txt lido com sucesso! " << endl; } else { cout << "ERRO: nao é possivel abrir o ficheiro!!" << endl; break; } case 6: //apresentar no ecran os dados dos jogadores ordenados pela experiencia jogador vetor[10]; jogador.SelectionSort(vetor,10); for (int i = 0; i < 10; i++) { cout << vetor[i] << "\n"; } cin.get(); } } while (option != 5); //opção 4 - sai do jogo system("CLS"); cout << "Obrigado por jogarem!! :D "; Sleep(5); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!