Beispiel #1
0
        public void Flota_DodajBrodaTriRazličitaBrodaSlažeFlotuOdTriBroda()
        {
            Flota f  = new Flota();
            Brod  b1 = new Brod(SložiPolja(Smjer.Horizontalno, new Polje(0, 0), 5));

            f.DodajBrod(b1);
            Brod b2 = new Brod(SložiPolja(Smjer.Vertikalno, new Polje(1, 3), 4));

            f.DodajBrod(b2);
            Brod b3 = new Brod(SložiPolja(Smjer.Horizontalno, new Polje(4, 5), 3));

            f.DodajBrod(b3);

            Assert.AreEqual(3, f.Brodovi.Count());
            Assert.IsTrue(f.Brodovi.Contains(b1));
            Assert.IsTrue(f.Brodovi.Contains(b2));
            Assert.IsTrue(f.Brodovi.Contains(b3));
        }
Beispiel #2
0
        public void Flota_GađajVraćaPromašajZaPoljeKojeNijeUNitiJednomBrodu()
        {
            Mreža m = new Mreža(10, 10);
            Flota f = new Flota();

            var  p1 = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(0, 0), 5);
            Brod b1 = new Brod(p1);

            f.DodajBrod(b1);

            var  p2 = m.DajPoljaZaBrod(Orijentacija.Vertikalno, new Polje(1, 3), 4);
            Brod b2 = new Brod(p2);

            f.DodajBrod(b2);



            Assert.AreEqual(RezultatGađanja.Promašaj, f.Gađaj(new Polje(9, 9)));
        }
        public ActionResult EditarFlota(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Find(id);

            if (flota == null)
            {
                return(HttpNotFound());
            }

            CreacionFlota modeloFlota = new CreacionFlota()
            {
                Id             = flota.Id,
                Nombre         = flota.Nombre,
                AdminNombre    = "",
                AdminId        = 0,
                PackServicioId = 0
            };

            if (flota.UsuarioFlotaId != null)
            {
                modeloFlota.AdminNombre = flota.UsuarioFlota.Usuario.Nombre;
                modeloFlota.AdminId     = flota.UsuarioFlota.Usuario.Id;
            }

            if (flota.PackId != null)
            {
                modeloFlota.PackServicioId = flota.PackServicio.Id;
            }

            RellenarAdminsSinFlota(modeloFlota.AdminId);
            SelectList selectAdmins = new SelectList(adminFlotas, "Id", "Nombre", modeloFlota.AdminId);
            SelectList packs        = new SelectList(db.PackServicios.ToList(), "Id", "Nombre", modeloFlota.PackServicioId);

            ViewBag.AdminId        = selectAdmins;
            ViewBag.PackServicioId = packs;

            return(View(modeloFlota));
        }
        public ActionResult OperadoresFlota(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == id).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }

            List <Operador> miembros = flota.Operadores.ToList();

            ViewBag.NombreFlota = flota.Nombre;
            ViewBag.FlotaId     = flota.Id;
            return(View(miembros));
        }
Beispiel #5
0
        public void Flota_GađajVraćaPotonućeZaZadnjePogođenoPoljePrvogBroda()
        {
            Mreža m = new Mreža(10, 10);
            Flota f = new Flota();

            var  p1 = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(0, 0), 3);
            Brod b1 = new Brod(p1);

            f.DodajBrod(b1);

            var  p2 = m.DajPoljaZaBrod(Orijentacija.Vertikalno, new Polje(1, 3), 4);
            Brod b2 = new Brod(p2);

            f.DodajBrod(b2);

            Assert.AreEqual(RezultatGađanja.Pogodak, f.Gađaj(new Polje(0, 1)));
            Assert.AreEqual(RezultatGađanja.Pogodak, f.Gađaj(new Polje(0, 2)));
            Assert.AreEqual(RezultatGađanja.Promašaj, f.Gađaj(new Polje(0, 3)));
            Assert.AreEqual(RezultatGađanja.Potonuće, f.Gađaj(new Polje(0, 0)));
        }
Beispiel #6
0
        public void Flota_GađajVraćaPogodakZaPoljaKojaSuUBrodu()
        {
            Mreža m = new Mreža(10, 10);
            Flota f = new Flota();

            var  p1 = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(0, 0), 5);
            Brod b1 = new Brod(p1);

            f.DodajBrod(b1);

            var  p2 = m.DajPoljaZaBrod(Orijentacija.Vertikalno, new Polje(1, 3), 4);
            Brod b2 = new Brod(p2);

            f.DodajBrod(b2);



            Assert.AreEqual(RezultatGađanja.Pogodak, f.Gađaj(new Polje(0, 1)));
            Assert.AreEqual(RezultatGađanja.Pogodak, f.Gađaj(new Polje(1, 3)));
        }
        public void Flota_ObradiPogodakIspravnoJavljaPotapanje()
        {
            List <Polje> polja = new List <Polje> {
                new Polje(0, 1), new Polje(0, 2)
            };
            Brod  b = new Brod(polja);
            Flota f = new Flota();

            f.DodajBrod(b);
            List <Polje> polja2 = new List <Polje> {
                new Polje(2, 1), new Polje(2, 2)
            };
            Brod b2 = new Brod(polja2);

            f.DodajBrod(b2);
            rezultatGadjanja rez = f.ObradiPogodak(0, 2);

            rez = f.ObradiPogodak(0, 1);
            Assert.AreEqual(rezultatGadjanja.potopljen, rez);
            Assert.IsFalse(f.Brodovi.Contains(b));
        }
        private void btnFight_Click(object sender, EventArgs e)
        {
            // na pocetku ukloni stare flote ako postoje
            if (mojaFlotaGUI != null)
            {
                this.Controls.Remove(mojaFlotaGUI);
            }
            if (protivnikFlotaGUI != null)
            {
                this.Controls.Remove(protivnikFlotaGUI);
            }

            BrodograditeljTemplate brodograditelj = BrodograditeljFactory.DajBrodograditelja();

            int[] duljine = SastaviListuBrodova();
            int   redaka  = (int)numRedaka.Value;
            int   stupaca = (int)numStupaca.Value;

            flota                 = brodograditelj.SloziFlotu(redaka, stupaca, duljine);
            mojaFlotaGUI          = new FlotaGUI(redaka, stupaca);
            mojaFlotaGUI.sirina   = 250;
            mojaFlotaGUI.Location = new Point(20, 170);
            mojaFlotaGUI.ZadajFlotu(flota);
            this.Controls.Add(mojaFlotaGUI);

            protivnikFlotaGUI          = new FlotaNeprijatelj(redaka, stupaca);
            protivnikFlotaGUI.sirina   = 250;
            protivnikFlotaGUI.Location = new Point(370, 170);
            this.Controls.Add(protivnikFlotaGUI);
            ai = AIFactory.DajAI();
            ai.Initialize(redaka, stupaca, duljine);

            // iniciraj protivnika
            protivnik = new OOMPotapanje.Protivnik(redaka, stupaca, duljine);

            // zapocni igru
            ProgressChangedEventArgs x;

            bgWorker.RunWorkerAsync();
        }
Beispiel #9
0
        public static List <HistorialWeb> ObtenerHistorialesFlota(ProyectoAutoContext _db, DateTime _fecha, int _idFlota)
        {
            Flota flota = _db.Flotas.Where(f => f.Id == _idFlota).FirstOrDefault();

            List <HistorialWeb> historialesFlota = new List <HistorialWeb>();

            //List<HistorialVelocidad> histVel;
            //List<HistorialEnergia> histEner;
            //List<HistorialPosicion> histPos;

            //foreach(Auto a in flota.Autos)
            //{
            //    histVel = a.HistorialVelocidad.Where(h => h.FechaHora.Year == _fecha.Year
            //                && h.FechaHora.Month == _fecha.Month
            //                && h.FechaHora.Day == _fecha.Day).OrderBy(h => h.FechaHora).ToList();

            //    histEner = a.HistorialesEnergia.Where(h => h.FechaHora.Year == _fecha.Year
            //                && h.FechaHora.Month == _fecha.Month
            //                && h.FechaHora.Day == _fecha.Day).OrderBy(h => h.FechaHora).ToList();

            //    histPos = a.HistorialesPosicion.Where(h => h.FechaHora.Year == _fecha.Year
            //                && h.FechaHora.Month == _fecha.Month
            //                && h.FechaHora.Day == _fecha.Day).OrderBy(h => h.FechaHora).ToList();

            //    HistorialWeb hw = new HistorialWeb();
            //    hw.PatenteAuto = a.Patente;
            //    hw.FechaMostrar = _fecha;

            //    hw.historialesVelocidad = histVel;
            //    hw.historialesEnergia = histEner;
            //    hw.historialesPosicion = histPos;

            //    historialesFlota.Add(hw);
            //}


            return(historialesFlota);
        }
        public ActionResult CrearAutoEnFlota(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == id).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }

            //List<Operador> operadoresSinAuto = flota.Operadores.Where(o => o.Auto == null).ToList();
            List <Operador> operadoresSinAuto = flota.Operadores.Where(o => o.Autos.Count == 0).ToList();

            operadoresSinAuto.Add(new Operador()
            {
                Id = 0, Nombre = "No asignar"
            });
            operadoresSinAuto.Reverse();

            List <TipoVehiculo> tipoVehiculos = flota.TiposVehiculo.ToList();

            tipoVehiculos.Add(new TipoVehiculo()
            {
                Id = 0, Tipo = "No asignar"
            });
            tipoVehiculos.Reverse();

            ViewBag.OperadorId     = new SelectList(operadoresSinAuto, "Id", "Nombre");
            ViewBag.TipoVehiculoId = new SelectList(tipoVehiculos, "Id", "Tipo");

            ViewBag.FlotaId = flota.Id;
            return(View());
        }
        public ActionResult CrearOperadorEnFlota(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == id).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }

            List <Auto> autosCandidatos = flota.Autos.Where(a => a.OperadorId == null).ToList();

            autosCandidatos.Add(new Auto()
            {
                Id = 0, NombreVehiculo = "No asignar"
            });
            autosCandidatos.Reverse();

            List <Usuario> usuariosCandidatos = db.Usuarios.Where(u => u.OperadorId == null && u.Rol == Usuario.RolUsuario.Normal).ToList();

            usuariosCandidatos.Add(new Usuario()
            {
                Id = 0, Email = "No asignar"
            });
            usuariosCandidatos.Reverse();

            ViewBag.UsuarioId = new SelectList(usuariosCandidatos, "Id", "Email");
            ViewBag.AutoId    = new SelectList(autosCandidatos, "Id", "NombreVehiculo");

            ViewBag.FlotaId = flota.Id;

            return(View());
        }
        public ActionResult EliminarOperadorDeFlota(int?id, int?idFlota)
        {
            if (id == null || idFlota == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == idFlota).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }
            Operador operador = flota.Operadores.Where(o => o.Id == id).FirstOrDefault();

            if (operador == null)
            {
                return(HttpNotFound());
            }

            Operador.EliminarOperador(db, operador.Id);

            return(RedirectToAction("OperadoresFlota", new { id = idFlota }));
        }
Beispiel #13
0
        // PUT: odata/Flotas(5)
        public IHttpActionResult Put([FromODataUri] int key, Delta <Flota> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Flota flota = db.Flotas.Find(key);

            if (flota == null)
            {
                return(NotFound());
            }

            patch.Put(flota);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FlotaExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(flota));
        }
        public ActionResult EliminarAutoDeFlota(int?id, int?idFlota)
        {
            if (id == null || idFlota == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == idFlota).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }
            Auto auto = flota.Autos.Where(a => a.Id == id).FirstOrDefault();

            if (auto == null)
            {
                return(HttpNotFound());
            }

            Auto.ElimiarAuto(db, auto.Id);

            return(RedirectToAction("AutosFlota", new { id = flota.Id }));
        }
        public ActionResult CrearFlota([Bind(Include = "Id,Nombre,AdminNombre,AdminId")] CreacionFlota model)
        {
            if (ModelState.IsValid == false)
            {
                RellenarTodosAdminFlotas();
                ViewBag.AdminId = new SelectList(adminFlotas, "Id", "Nombre");
                return(View("CrearFlota", model));
            }

            Flota nombreRepetido = db.Flotas.Where(f => f.Nombre == model.Nombre).FirstOrDefault();

            if (nombreRepetido != null)
            {
                ModelState.AddModelError("Nombre", "Ese nombre ya existe.");
                RellenarTodosAdminFlotas();
                ViewBag.AdminId = new SelectList(adminFlotas, "Id", "Nombre");
                return(View("CrearFlota", model));
            }


            Flota.CrearFlota(db, model.Nombre, model.AdminId);

            return(RedirectToAction("AdminFlotas"));
        }
        public ActionResult EditarOperadorDeFlota(int?id, int?idFlota)
        {
            if (id == null || idFlota == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == idFlota).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }
            Operador operador = flota.Operadores.Where(o => o.Id == id).FirstOrDefault();

            if (operador == null)
            {
                return(HttpNotFound());
            }

            CreacionOperador modeloOperador = new CreacionOperador()
            {
                Id        = operador.Id,
                Nombre    = operador.Nombre,
                FlotaId   = flota.Id,
                UsuarioId = 0,
                AutoId    = 0
            };

            List <Usuario> usuariosCandidatos = db.Usuarios.Where(u => u.OperadorId == null && u.Rol == Usuario.RolUsuario.Normal).ToList();
            List <Auto>    autosCandidatos    = flota.Autos.Where(a => a.OperadorId == null).ToList();

            if (operador.Usuario != null)
            {
                modeloOperador.UsuarioId = operador.Usuario.Id;
                Usuario userActual = db.Usuarios.Where(u => u.Id == operador.Usuario.Id).FirstOrDefault();
                usuariosCandidatos.Add(userActual);
            }
            usuariosCandidatos.Add(new Usuario()
            {
                Id = 0, Email = "No asignar"
            });
            usuariosCandidatos.Reverse();

            //if (operador.Auto != null)
            //{
            //    modeloOperador.AutoId = operador.Auto.Id;
            //    Auto autoActual = flota.Autos.Where(a => a.Id == operador.Auto.Id).FirstOrDefault();
            //    autosCandidatos.Add(autoActual);
            //}
            if (operador.Autos.Count > 0)
            {
                modeloOperador.AutoId = operador.Autos.First().Id;
                Auto autoActual = flota.Autos.Where(a => a.Id == modeloOperador.AutoId).FirstOrDefault();
                autosCandidatos.Add(autoActual);
            }
            autosCandidatos.Add(new Auto()
            {
                Id = 0, NombreVehiculo = "No asignar"
            });
            autosCandidatos.Reverse();

            ViewBag.UsuarioId = new SelectList(usuariosCandidatos, "Id", "Email", modeloOperador.UsuarioId);
            ViewBag.AutoId    = new SelectList(autosCandidatos, "Id", "NombreVehiculo", modeloOperador.AutoId);

            ViewBag.FlotaId = flota.Id;
            return(View(modeloOperador));
        }
Beispiel #17
0
        /// <summary>
        /// Datos recibidos del jugador que juega el turno actual
        /// </summary>
        void ComandoJugadorActualRecibidos(ushort comando, string[] subCadenas, string cadena, ClienteTCP cliente)
        {
            switch (comando)
            {
            case 53:     //Inicio de ronda recibido correctamente
                if (timer != null)
                {
                    timer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
                }
                break;

            case 203:     //Fin de turno
                EnviarComando(1, "OK", cliente);
                EsperandoFinTurno.Set();
                break;

            case 205:     //Envio de ataque (naves,origen,destino)
                Flota flota = new Flota();
                flota.Origen            = Mapa.ObtenerPlaneta(subCadenas[1]);
                flota.Destino           = Mapa.ObtenerPlaneta(subCadenas[2]);
                flota.TecnologiaMilitar = flota.Origen.TecnologiaMilitar;
                flota.Naves             = int.Parse(subCadenas[0]);
                if (flota.Naves > flota.Origen.Naves)
                {
                    flota.Naves = flota.Origen.Naves;
                }
                flota.Origen.Naves -= flota.Naves;

                flota.Distancia    = Cliente.CalcularDistancia(flota.Origen, flota.Destino);
                flota.RondaSalida  = ronda;
                flota.RondaLlegada = (ronda + (int)Math.Round(flota.Distancia));
                Clientes[cliente].Flotas.Add(flota);

                EnviarComando(1, "OK", cliente);
                break;

            case 210:     //Cargar partida
                if (Clientes[cliente].AdministradorServidor)
                {
                    ronda = int.Parse(subCadenas[2]);
                    DifundirMensaje(comando,
                                    string.Format("Cargar mapa de semilla '{0}' y '{1}' neutrales", subCadenas[0], subCadenas[1]));
                    Mapa.Inicializar(int.Parse(subCadenas[0]), Mapa.Jugadores, int.Parse(subCadenas[1]));
                    Mapa.RondaActual = ronda;

                    System.Windows.Forms.Application.DoEvents();
                    System.Threading.Thread.Sleep(100);
                    System.Windows.Forms.Application.DoEvents();

                    string datos = subCadenas[3].Replace("&apos;", "'");
                    DifundirMensaje(206, datos);
                    Mapa.CargarDatos(ClienteTCP.ObtenerSubCadenas(datos));

                    System.Windows.Forms.Application.DoEvents();
                    System.Threading.Thread.Sleep(100);
                    System.Windows.Forms.Application.DoEvents();

                    iniciarRonda = true;
                    EsperandoFinTurno.Set();
                }
                break;
            }
        }
        public ActionResult EditarAutoDeFlota(int?id, int?idFlota)
        {
            if (id == null || idFlota == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == idFlota).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }

            Auto auto = flota.Autos.Where(o => o.Id == id).FirstOrDefault();

            if (auto == null)
            {
                return(HttpNotFound());
            }

            CreacionAuto modeloAuto = new CreacionAuto()
            {
                Id                = auto.Id,
                NombreVehiculo    = auto.NombreVehiculo,
                Patente           = auto.Patente,
                Marca             = auto.Marca,
                Modelo            = auto.Modelo,
                Year              = auto.Year,
                KilometrajeActual = auto.KilometrajeActual,
                FlotaId           = flota.Id,
                OperadorId        = 0,
                TipoVehiculoId    = 0
            };

            List <Operador> operadoresSinAuto = flota.Operadores.Where(o => o.Autos.Count == 0).ToList();

            //List<Operador> operadoresSinAuto = flota.Operadores.Where(o => o.Auto == null).ToList();
            if (auto.OperadorId != null)
            {
                modeloAuto.OperadorId = auto.Operador.Id;
                Operador operadorActual = flota.Operadores.Where(o => o.Id == auto.Operador.Id).FirstOrDefault();
                operadoresSinAuto.Add(operadorActual);
            }
            operadoresSinAuto.Add(new Operador()
            {
                Id = 0, Nombre = "No asignar"
            });
            operadoresSinAuto.Reverse();

            List <TipoVehiculo> tipoVehiculos = flota.TiposVehiculo.ToList();

            if (auto.TipoVehiculo != null)
            {
                modeloAuto.TipoVehiculoId = auto.TipoVehiculo.Id;
            }
            tipoVehiculos.Add(new TipoVehiculo()
            {
                Id = 0, Tipo = "No asignar"
            });
            tipoVehiculos.Reverse();

            ViewBag.OperadorId     = new SelectList(operadoresSinAuto, "Id", "Nombre", modeloAuto.OperadorId);
            ViewBag.TipoVehiculoId = new SelectList(tipoVehiculos, "Id", "Tipo", modeloAuto.TipoVehiculoId);

            ViewBag.FlotaId = flota.Id;
            return(View(modeloAuto));
        }
Beispiel #19
0
 public void ZadajFlotu(Flota flota)
 {
     this.flota = flota;
     Invalidate();
 }
Beispiel #20
0
        public ActionResult Authenticate(String emailID, string passID)
        {
            int superAdmins = db.Usuarios.Where(u => u.Rol == Usuario.RolUsuario.SuperAdmin).ToList().Count;

            if (superAdmins == 0)
            {
                Session["Nombre"] = "first";
                return(RedirectToAction("PrimerUsuario"));
            }


            bool    validado       = false;
            Usuario userEncontrado = db.Usuarios.Where(u => u.Email == emailID).FirstOrDefault();

            if (userEncontrado != null)
            {
                //validado = true;
                validado = PasswordHash.ValidatePassword(passID, userEncontrado.Password);
            }


            if (validado)
            {
                Session["Nombre"] = userEncontrado.Nombre;
                Session["Email"]  = userEncontrado.Email;
                Session["Rol"]    = userEncontrado.Rol;

                if (userEncontrado.Rol == Usuario.RolUsuario.Bloqueado)
                {
                    TempData["msg"] = "Cuenta con acceso bloqueado.";
                    return(RedirectToAction("Index"));
                }
                else if (userEncontrado.Rol == Usuario.RolUsuario.SuperAdmin)
                {
                    return(RedirectToAction("Index", "SuperAdmin"));
                }
                else if (userEncontrado.Rol == Usuario.RolUsuario.AdminDeFlota)
                {
                    if (userEncontrado.UsuarioFlotaId == null)
                    {
                        Flota f = Flota.CrearFlota(db, userEncontrado.Nombre + "Flota" + userEncontrado.Id, userEncontrado.Id, "Default");

                        Session["Flota"] = f.Id;
                    }
                    else if (userEncontrado.UsuarioFlotaId != null)
                    {
                        Session["Flota"] = userEncontrado.UsuarioFlota.Flota.Id;
                    }

                    return(RedirectToAction("Index", "AdminFlota2"));
                }
                else
                {
                    //user normal
                    TempData["msg"] = "Este acceso es exclusivo de administradores.";
                    return(RedirectToAction("Index"));
                    //return RedirectToAction("Index", "UserNormal");
                }
            }
            else
            {
                TempData["msg"] = "Usuario/Contraseña no existentes.";
                return(RedirectToAction("Index"));
            }
        }