void game_onLevelStarted(object obj, EventArgs messageArgs) { pss.Pss.SendCommandFrame(CommandCodes.StreamingMod); lastOrder = LastOrder.StreamingMod; if (this.currentType != TypeMazeGame.Null) { this.canDoMath = true; } }
void Pss_StreamingDone(object sender, EventArgs e) { if (this.frame != null) { Application.Current.Dispatcher.Invoke(new Action(() => { pss.Pss.SendExerciceFrame(frame); lastOrder = LastOrder.Positioning; }), DispatcherPriority.Normal); } }
/// <summary> /// Updates ONE single User (PUT) /// </summary> /// <param name="userId"></param> /// <returns></returns> public void UpdateUser(int userId) { UserViewModel item; DAL objDAL = new DAL(); string querySql = $"update clients set " + $"Name = '{Username.ToString()}'," + $"Password = '******'," + $"Email = '{Email.ToString()}'," + $"CreatedAt = '{DateTime.Parse(CreatedAt.ToString()).ToString("yyyy/MM/dd")}'," + $"LastOrder = '{DateTime.Parse(LastOrder.ToString()).ToString("yyyy/MM/dd")}'," + $"UrlImg = '{UrlImg.ToString()}'," + $"Phone = '{Phone.ToString()}' " + $"where UserId = {userId.ToString()}"; objDAL.ExecutaComandoSQL(querySql); }
//public virtual OrderViewModel Order { get; set; } #endregion #region HTTP Methods (GET/POST/PUT/DELETE) /// <summary> /// Registrar um novo usuário (POST) /// </summary> public void RegisterUser() { DAL objDAL = new DAL(); //$ -> interpolação de strings string stringSql = $"insert into clients (" + $" Name," + $" Password," + $" Email," + $" CreatedAt," + $" LastOrder," + $" UrlImg," + $" Phone)" + $"values (" + $"'{Username}'," + $"'{Password}'," + $"'{Email}'," + $"'{DateTime.Parse(CreatedAt.ToString()).ToString("yyyy/MM/dd")}'," + $"'{DateTime.Parse(LastOrder.ToString()).ToString("yyyy/MM/dd")}'," + $"'{UrlImg}'," + $"'{Phone}') "; objDAL.ExecutaComandoSQL(stringSql); }
void game_onLevelStopped(object obj, EventArgs messageArgs) { this.pss.Pss.SendCommandFrame(CommandCodes.STOPnv); this.canDoMath = false; double score = 0; if (this.currentType == TypeMazeGame.Reaching) { // Sauvegarde le dernier segement du reaching avant de tout reset this.SaveSegment(0); // Score pour le Reaching qui ne se calcul pas de la meme maniere if (satMoy.Count > 0) { foreach (var sat in satMoy) { score += sat; } score /= satMoy.Count; score *= 100; } else { score = 1; } } else { if (this.ErrorMoyPlot.Count > 0) { // ErrorMoyPlot à une erreurMoy par segement et il y a 11 segments par tour double nbrTurn = Math.Floor(this.ErrorMoyPlot.Count / 11.0); for (int i = 0; i < nbrTurn; i++) { int segMin = i * 11; int segMax = segMin + 10; double errorTour = 0.0; // Calcul de l'erreur moyenne du tour i for (int j = segMin; j <= segMax; j++) { errorTour += ErrorMoyPlot[j]; } errorTour /= 11.0; score += (10 + (10 * (1 - errorTour))); } } else { score = 1; } } if (score > highScore) { highScore = score; } this.game.SetScore((int)score); this.game.SetHighScore((int)highScore); // Actualisation des Plot // En reaching on actualise a chaque segement plutot que a chaque fin de circuit if (this.currentType != TypeMazeGame.Reaching) { double axeX = 1.0; if (this.ErrorPlotPoint.Count > 0) { axeX = this.ErrorPlotPoint.Last().X + 1; } double errorMoy = 0.0; foreach (var error in this.ErrorMoyPlot) { errorMoy += error; } errorMoy /= this.ErrorMoyPlot.Count; var newError = new DataPoint(axeX, errorMoy); this.ErrorPlotPoint.Add(newError); double vitesseMoy = 0.0; foreach (var vitesse in this.VitesseMoyPlot) { vitesseMoy += vitesse; } vitesseMoy /= this.VitesseMoyPlot.Count; var newVitesse = new DataPoint(axeX, vitesseMoy); this.VitessePlotPoint.Add(newVitesse); Application.Current.Dispatcher.Invoke(new Action(() => { Messenger.Default.Send <bool>(true, "RefreshPlot"); }), DispatcherPriority.Normal); } // Reset des liste de segment listPos = new List <PositionDataModel>(); listPos2 = new List <Position2DataModel>(); listForce = new List <ForceDataModel>(); listForce2 = new List <Force2DataModel>(); listVit = new List <VitesseModel>(); listVit2 = new List <Vitesse2Model>(); listError = new List <PprDataModel>(); satMoy = new List <double>(); VitesseMoyPlot = new List <double>(); ErrorMoyPlot = new List <double>(); // Repositionnement du robot sur la ligne de départ pss.Pss.SendExerciceFrame(frame); lastOrder = LastOrder.Positioning; }