Ir ao conteúdo
  • Cadastre-se

_rsd_17

Membro Pleno
  • Posts

    45
  • Cadastrado em

  • Última visita

Tudo que _rsd_17 postou

  1. Ola, estou a tentar apresentar uma imagem ao utilizador atraves do controller: public IActionResult Login(string user, string password, string? ReturnUrl) { SHA512 sha512 = SHA512Managed.Create(); byte[] bytes = sha512.ComputeHash(Encoding.UTF8.GetBytes(password), 0, Encoding.UTF8.GetByteCount(password)); string passHash = Convert.ToBase64String(bytes); Socios socio = _context.Socios.Include(s => s.Gerir).Include(s => s.Mensagem).Include(s => s.Participa).Include(s => s.PersonalTrainer).Include(s => s.Peso).Include(s => s.PlanosExercicios).FirstOrDefault(s => s.NomeUtilizador == user && s.Password == password); if (socio != null) { HttpContext.Session.SetString("Nome", socio.NomeUtilizador); HttpContext.Session.SetInt32("UserId", socio.Idsocio); HttpContext.Session.SetString("Perfil", "Socio"); } Professores prof = _context.Professores.Include(p => p.MapaAulasGrupo).Include(p => p.Mensagem).Include(p => p.Peso).Include(s => s.PersonalTrainer).Include(p => p.PlanosExercicios).FirstOrDefault(p => p.Nome == user && p.Password == password); if (prof != null) { HttpContext.Session.SetString("Nome", prof.Nome); HttpContext.Session.SetInt32("UserId", prof.Idprofessor); HttpContext.Session.SetString("Perfil", "Professor"); } Administrador admin = _context.Administrador.Include(a => a.Gerir).SingleOrDefault(a => a.Nome == user && a.Password == password); if (admin != null) { HttpContext.Session.SetString("Nome", admin.Nome); HttpContext.Session.SetInt32("UserId", admin.Idadministrador); HttpContext.Session.SetString("Perfil", "Administrador"); } if (String.IsNullOrEmpty(ReturnUrl)) { //ModelState.AddModelError("","Utilizador inexistente na base de dados!"); TempData["mensagemErro"] = "Utilizador inexistente na base de dados!"; return LocalRedirect("/"); } else { return LocalRedirect(ReturnUrl); } } E na view com o formulario de login tenho: <table border="0" style="height: 315px; width: 100%; border-collapse: collapse; border-style: hidden; text-align:center" height="76"> <tr> <td> <div class="container"> <div class="row"> <div class="col-md-3"> <form asp-action="Login" asp-controller="Home" method="post" style="display: inline-block"> <div class="form-group"> <label style="color:white">Nome utilizador</label> <input type="text" class="form-control" id="user" name="user" placeholder="Utilizador" required> </div> <div class="form-group"> <label><p style="color:white">Password</p></label> <input type="password" class="form-control" name="password" id="password" placeholder="Password" required> <input type="button" id="showPassword" value="Mostrar" class="button" style="text-align:left" /> </div> <div class="form-check"> <button type="submit" value="create " class="btn btn-default" style=" color:white; background-color:blue" href="~/Home/Index">Entrar </button> </div> </form> <br /> <br /> <small style="color:white; text-align:left; font-family: Georgia, 'Times New Roman', Times, serif"> Ainda não tem conta? <br /> <b> <a href="~/Home/Registo"> Registe-se aqui < </a> </b> </small> </div> </div> </div> </td> @if (TempData["mensagemErro"] != null) { <div class="field-error"> @TempData["mensagemErro"] </div> } </tr> </table> Mas ao correr ele nao apresenta a mensagem no ecran, ja usei um break point para verificar e quando o utilizador insere mal os dados ele entra no if mas nao apresenta a mensagem... retorna me o index. Alguem sabe como posso resolver isso ?
  2. Ola, estou a ter um problema no codigo ele nao apresenta erros mas quando preencho o formulario de login mal ele devia apresentar-me uma mensagem a dizer Utilizador inexistente na base de dados! mas nao acontece ele simplesmente elimina esta linha de codigo e corre normalmente. ModelState.AddModelError("", "Utilizador inexistente na base de dados!"); Ele nao entra porque o utilizador nao se encontra na base de dados, ele retorna me a view index. Tenho o codigo do formulario de login assim: public IActionResult Login(string user, string password, string? ReturnUrl) { SHA512 sha512 = SHA512Managed.Create(); byte[] bytes = sha512.ComputeHash(Encoding.UTF8.GetBytes(password), 0, Encoding.UTF8.GetByteCount(password)); string passHash = Convert.ToBase64String(bytes); Socios socio = _context.Socios.Include(s => s.Gerir).Include(s => s.Mensagem).Include(s => s.Participa).Include(s => s.PersonalTrainer).Include(s => s.Peso).Include(s => s.PlanosExercicios).FirstOrDefault(s => s.NomeUtilizador == user && s.Password == password); if (socio != null) { HttpContext.Session.SetString("Nome", socio.NomeUtilizador); HttpContext.Session.SetInt32("UserId", socio.Idsocio); HttpContext.Session.SetString("Perfil", "Socio"); } Professores prof = _context.Professores.Include(p => p.MapaAulasGrupo).Include(p => p.Mensagem).Include(p => p.Peso).Include(s => s.PersonalTrainer).Include(p => p.PlanosExercicios).FirstOrDefault(p => p.Nome == user && p.Password == password); if (prof != null) { HttpContext.Session.SetString("Nome", prof.Nome); HttpContext.Session.SetInt32("UserId", prof.Idprofessor); HttpContext.Session.SetString("Perfil", "Professor"); } Administrador admin = _context.Administrador.Include(a => a.Gerir).SingleOrDefault(a => a.Nome == user && a.Password == password); if (admin != null) { HttpContext.Session.SetString("Nome", admin.Nome); HttpContext.Session.SetInt32("UserId", admin.Idadministrador); HttpContext.Session.SetString("Perfil", "Administrador"); } if (String.IsNullOrEmpty(ReturnUrl)) { ModelState.AddModelError("", "Utilizador inexistente na base de dados!"); return LocalRedirect("/"); } else { return LocalRedirect(ReturnUrl); } } Alguem me pode ajudar a resolver isso ?
  3. Ola, Estou a tentar fazer login atraves de um formulario usando esta funçao do controller : public IActionResult Login(string ReturnUrl) { return View(); } [HttpPost] public IActionResult Login(string Username, string Password, string? ReturnUrl) { SHA512 sha512 = SHA512Managed.Create(); byte[] bytes = sha512.ComputeHash(Encoding.UTF8.GetBytes(Password), 0, Encoding.UTF8.GetByteCount(Password)); string passHash = Convert.ToBase64String(bytes); Socios s = _context.Socios.Include(s => s.Gerir).Include(s => s.Mensagem).Include(s => s.Participa).Include(s => s.PersonalTrainer).Include(s => s.Peso).Include(s => s.PlanosExercicios).SingleOrDefault(s => s.NomeUtilizador == Username && s.Password == passHash); if (s != null) { HttpContext.Session.SetString("Nome", s.NomeUtilizador); HttpContext.Session.SetInt32("UserId", s.Idsocio); HttpContext.Session.SetString("Perfil", "Socio"); } Professores p = _context.Professores.Include(p => p.MapaAulasGrupo).Include(p => p.Mensagem).Include(p => p.Peso).Include(s => s.PersonalTrainer).Include(p => p.PlanosExercicios).SingleOrDefault(p => p.Nome == Username && p.Password == passHash); if (p != null) { HttpContext.Session.SetString("Nome", p.Nome); HttpContext.Session.SetInt32("UserId", p.Idprofessor); HttpContext.Session.SetString("Perfil", "Professor"); } Administrador a = _context.Administrador.Include(a => a.Gerir).SingleOrDefault(a => a.Nome == Username && a.Password == passHash); if (a != null) { HttpContext.Session.SetString("Nome", a.Nome); HttpContext.Session.SetInt32("UserId", a.Idadministrador); HttpContext.Session.SetString("Perfil", "Administrador"); } if (String.IsNullOrEmpty(ReturnUrl)) return LocalRedirect("/"); else return LocalRedirect(ReturnUrl); } Mas ele nao verifica se existe na base de dados ou nao, simplesmente quando carrego no botao ele abre o index do controller. Ja tentei com dados que estão na base de dados e sem estarem e usando um break point verifiquei q o valor chega sempre null a cada um dos ifs Alguem me pode ajudar a resolver isso ?
  4. Ola, estou a tentar que o preenchimento de uma View seja guardado na base de dados, tenho varias classe entre elas tenho a classe socio, atraves dessa classe criei um controller e fiz um add-migration para criar a base de dados. Atraves desse controller criei um metodo RegistarSocio e criei uma view do tipo create chamada RegistarSocio. Mas ao preencher o formulario na web e clicar em create nao faz nada e pelo codigo que tenho no controller se estiver tudo certo regressa a view Login do controller Home.Nao estou a perceber o que esta a acontecer.... Alguem tem alguma ideia de como resolver isso ? Tenho isto no Controller public class SociosController : Controller { private readonly GinasioContext _context; public SociosController(GinasioContext context) { _context = context; } // GET: Socios public async Task<IActionResult> Index() { return View(await _context.Socios.ToListAsync()); } // GET: Socios/Details/5 public async Task<IActionResult> Details(int? id) { if (id == null) { return NotFound(); } var socios = await _context.Socios .FirstOrDefaultAsync(m => m.Idsocio == id); if (socios == null) { return NotFound(); } return View(socios); } public IActionResult Perfil() { return View(); } public IActionResult RegistarSocio() { return View(); } // POST: Socios/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> RegistarSocio([Bind("Idsocio,Email,Telefone,Fotografia,Sexo,Altura,NomeUtilizador,PesoInicial,Password,Estado")] Socios socios) { if (ModelState.IsValid) { _context.Add(socios); await _context.SaveChangesAsync(); return RedirectToAction("Login", "Home"); } return View(socios); } // GET: Socios/Edit/5 public async Task<IActionResult> Edit(int? id) { if (id == null) { return NotFound(); } var socios = await _context.Socios.FindAsync(id); if (socios == null) { return NotFound(); } return View(socios); } // POST: Socios/Edit/5 // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> Edit(int id, [Bind("Idsocio,Email,Telefone,Fotografia,Sexo,Altura,NomeUtilizador,PesoInicial,Password,Estado")] Socios socios) { if (id != socios.Idsocio) { return NotFound(); } if (ModelState.IsValid) { try { _context.Update(socios); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SociosExists(socios.Idsocio)) { return NotFound(); } else { throw; } } return RedirectToAction(nameof(Index)); } return View(socios); } // GET: Socios/Delete/5 public async Task<IActionResult> Delete(int? id) { if (id == null) { return NotFound(); } var socios = await _context.Socios .FirstOrDefaultAsync(m => m.Idsocio == id); if (socios == null) { return NotFound(); } return View(socios); } // POST: Socios/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public async Task<IActionResult> DeleteConfirmed(int id) { var socios = await _context.Socios.FindAsync(id); _context.Socios.Remove(socios); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } private bool SociosExists(int id) { return _context.Socios.Any(e => e.Idsocio == id); } } Na classe tenho isto : public partial class Socios { public Socios() { Gerir = new HashSet<Gerir>(); Mensagem = new HashSet<Mensagem>(); Participa = new HashSet<Participa>(); PersonalTrainer = new HashSet<PersonalTrainer>(); Peso = new HashSet<Peso>(); PlanosExercicios = new HashSet<PlanosExercicios>(); } [Key] [Column("IDSocio")] public int Idsocio { get; set; } [Required] [Column("email")] [StringLength(100)] public string Email { get; set; } [Required] [Column("telefone")] [StringLength(20)] public string Telefone { get; set; } [Required] [Column("fotografia")] [StringLength(40)] public string Fotografia { get; set; } [Column("sexo")] public bool Sexo { get; set; } [Column("altura")] public double Altura { get; set; } [Required] [Column("nome_utilizador")] [StringLength(50)] public string NomeUtilizador { get; set; } [Column("peso_inicial")] public double PesoInicial { get; set; } [Required] [Column("_password")] [StringLength(20)] public string Password { get; set; } [Column("estado")] public int Estado { get; set; } // 1 ativo [InverseProperty("IdsocioNavigation")] public virtual ICollection<Gerir> Gerir { get; set; } [InverseProperty("IdsocioNavigation")] public virtual ICollection<Mensagem> Mensagem { get; set; } [InverseProperty("IdsocioNavigation")] public virtual ICollection<Participa> Participa { get; set; } [InverseProperty("IdsocioNavigation")] public virtual ICollection<PersonalTrainer> PersonalTrainer { get; set; } [InverseProperty("IdsocioNavigation")] public virtual ICollection<Peso> Peso { get; set; } [InverseProperty("IdsocioNavigation")] public virtual ICollection<PlanosExercicios> PlanosExercicios { get; set; } } E na view em que tenho o formulario para registar na base de dados tenho : @model WebApplication1.Models.Socios @{ ViewData["Title"] = "RegistarSocio"; } <p style="background-color:black"> </p> @*Apos pedir registo e ser aceito pode se inscrever atraves desta view se for um socio *@ <p style="color:dodgerblue"> Registar-se como socio : </p> <hr /> <div class="row"> <div class="col-md-4"> <form asp-action="RegistarSocio" style=" color:white"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="NomeUtilizador" class="control-label"></label> <input asp-for="NomeUtilizador" class="form-control" /> <span asp-validation-for="NomeUtilizador" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Email" class="control-label"></label> <input asp-for="Email" class="form-control" /> <span asp-validation-for="Email" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Password" class="control-label"></label> <input type="password" asp-for="Password" class="form-control" /> <span asp-validation-for="Password" class="text-danger"></span> </div> <div class="form-group form-check"> @*<label class="form-check-label"> <input class="form-check-input" asp-for="Sexo" /> @Html.DisplayNameFor(model => model.Sexo) </label>*@ <label asp-for="Sexo" class="control-label"></label> <select asp-for="Sexo" class="form-control"> <option value="true">Feminino</option> <option value="false">Masculino</option> </select> </div> <br /> <div class="form-group"> <input type="submit" value="Criar" class="btn btn-primary" style="color:black; background-color:blue" /> </div> <br /> <br /> </form> </div> </div> <div> <a asp-action="Index"> < Voltar </a> </div> <br /> <br /> <br /> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} }
  5. Ola bom dia, cria colocar uma condição no controller para me redirecionar para views diferentes como por exemplo, tenho uma view que permite ao utilizador escolher o utilizador que deseja e tenho um link que dependendo de qual escolhe redireciona uma view diferente. <style> body { background-color: black } img { width: 50%; } </style> <table> <tr> <td > <a href="~/professor/registarProfessor"><img src="~/Imagens/istockphoto-675179390-612x612.jpg" class="imagem3" /> <br/> Registar como professor </a> </td> <td> <a href="~/socios/registarSocio"><img src="~/Imagens/alongamento-anterior-coxa.jpg" class="imagem4" /> <br /> Registar como socio </a> </td> </tr> </table> Como posso colocar um foreach no controller de modo a redirecionar para as views diferentes consoante o link que escolhe ?
  6. Ola, Estou a tentar guardar os dados de uma View, que foi criada vazia, na base de dados. Alguem tem alguma ideia de como posso fazer isso ? Estou a usar o controller HOME e tenho uma base de dados criada ja com classes e quero que os dados colocados na view sejam colocados nos campos das tabelas da base de dados. Nao posso fazer com uma view create usando a classe porque tenho que fazer isto para duas classes diferentes mas que tem os mesmos dados, entao uso o Home Controller e quero guardar assim os dados na base de dados, ele ao se registar antes de confirmar email ja escolhe que tipo de utilizador é entao so preciso guardar os dados desta view na base de dados. @{ ViewData["Title"] = "RegistarUtilizador"; } @*Apos pedir registo e ser aceito pode se inscrever atraves desta view*@ <p style="color:white"> Preencha os campos por favor : </p> <form method="POST" style="color:white"> <label>Nome : </label> <input type="text" name="Nome" required /> <br /> <label>Email : </label> <input type="text" name="Email" required /> <br /> <label>Password : </label> <input type="text" name="Password" required /> <br /> <select class="form-control"> Sexo <option value="0">Feminino</option> <option value="1">Masculino</option> </select> <br /> <br /> <input type="submit" name="submit-btn" value="Register" /> </form>
  7. Ola poderiam me ajudar a colocar os icons em frente ao texto tipo : ( icon mensagem) email Eu tenho este codigo mas nao fica da maneira que eu queria, podem me dizer o que esta errado @{ ViewData["Title"] = "Contactos"; } <h1>@ViewData["Title"]</h1> <address> Encontra-nos !<br /> rua exemplo de tal, 1234-123 xxx xxx <br /> <abbr title="Phone"> </abbr> <i class="faz fa-phone-alt"></i> xxx xxx xxx </address> <p> Horário De Funcionamento <br /> 8:30 h ás 13:30h <br /> 15:00h ás 22:00h <br /> Segunda a Sexta </p> <address> <img width:1px; margin-right:1px; src="https://image.flaticon.com/icons/svg/59/59965.svg"> <strong>Email:</strong> <a href="[email protected]">[email protected]</a><br /> </address> Outra coisa eu queria que me aparece-se uma imagem de fundo, mas ela nao aparece eu ja tenho guardada no visual studio em wwwroot>Imagens mas ela nao me aparece. Tenho este codigo: <style> body { padding-top: 0px; background-color: black; background-image: url('Images/shutterstock_571976104.jpg'); @*Nao esta a aparecer a imagem de fundo*@ background-repeat: no-repeat; } .navbar { display: none; } </style> Alguem me pode dar uma ajuda? Obrigada
  8. Ola, gostaria que me ajudassem a adicionar a base de dados ao projeto do visual studio de 2019. Criei uma base de dados no Microsoft SQL Server Management studio 2017 mas preciso de usa-la no visual studio . Ja tentei criar uma no visual studio atraves de view>server explorer e copiei a base de dados do SQL server e executei e nao deu nenhum erro com se ve pela imagem mas nao me aparecem as tabelas. Sera que tenho de cria-la de outra forma? Como pelo Tools>Nuget package manager > package manager console ??? Tudo que fizer neste projeto tenho que enviar para o GitLab. Alguem me pode ajudar a colocar a base de dados??
  9. Ola boa tarde , alguem me pode esclarecer por favor ? Assumindo que um navegador recebe uma mensagem com um conteudo HTML mas que , ao invés de aparecer renderizado, é mostrado o seu texto fonte. Qual poderá ser a razao disso acontecer ?
  10. Com base em apenas um clique numa hiperligação de um conteúdo de um navegador, é possível que seja gerado mais que um pedido ao servidor?
  11. Ola a todos, estou a tentar fazer um exercicio que pede "A aplicação deve logo de início ler a informação do ficheiro, mostrando-as ao utilizador no formato representado na figura seguinte: " e tem 3 textobox para colocar a informaçao respetiva ao numero de aluno,nome e curso . Eu queria saber como coloco o texto do ficheiro diretamente nas textbox ao correr a aplicaçao . public partial class ViewTexto : Form { //criar evento public event Metodos_Com_Uma_string PedidoLeituraFicheiroTXT; public ViewTexto() { InitializeComponent(); Program.M_Texto.RespostaLeituraFicheiro += M_Texto_RespostaLeituraFicheiro; } private void M_Texto_RespostaLeituraFicheiro() { //abrir ficheiro de texto - ler ficheiro de texto OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Ficheiros de texto | *.txt"; if (dlg.ShowDialog() == DialogResult.OK) { //lançar evento if (PedidoLeituraFicheiroTXT != null) { PedidoLeituraFicheiroTXT(dlg.FileName); } } } private void Form1_Load(object sender, EventArgs e) { //para desabilitar as textBox textBoxNumero.Enabled = false; textBoxCurso.Enabled = false; textBoxNome.Enabled = false; } } Este é o codigo que tenho na minha View, mas ela abre me a pasta para escolher o ficheiro com aquele openFileDialog e eu qero abrir o seu conteudo diretamente na View , como faço isso?
  12. 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?
  13. 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; }
  14. @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
  15. 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?
  16. @Flávio Pedroza Ja funciona muito obrigada!! Boa pascoa ja agora
  17. @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 :
  18. @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?
  19. @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 ?
  20. @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?
  21. 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?
  22. _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
  23. _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?
  24. _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?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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...