private bool[] What_should_I_doJ() { #region input order /* 1. speed * 2.distance * 3.width * 4.can jump */ #endregion inputs[0] = Tools.pm.getEngine(this.ID).velocity.X; List <float> ins = GetAsentialData.findDif(this, Global.bg.obstacleList); if (ins.Count != 0) { inputs[1] = ins[0] / 10; //distamce between obstacle and jump inputs[2] = ins[1] / 10; //obstacle width } else { bool[] answers1 = new bool[outputNum]; answers1[0] = false;; return(answers1); } if (GetAsentialData.CanJump(this)) { inputs[3] = 1; } else { inputs[3] = -1; } //activating neuralNet float[] output = nn.calculate(inputs); //maping the outputs bool[] answers = new bool[outputNum]; for (int i = 0; i < answers.Length; i++) { if (output[i] > 0) { answers[i] = true; } else { answers[i] = false; } } //returning answers return(answers); }
private bool[] What_should_I_doJR() { #region input order /* 1. speed * 2.distance * 3.width * 4.can jump * 5. distance to second group */ #endregion //// setting input inputs[0] = Tools.pm.getEngine(this.ID).velocity.X; // speed List <float> ins = GetAsentialData.findDif(this, Global.bg.obstacleList); // find data for jump inputs[1] = ins[0] / 100; //distamce between obstacle and jump inputs[2] = ins[1] / 10; //obstacle width //if can jump 1 else -1 if (GetAsentialData.CanJump(this)) { inputs[3] = 1; } else { inputs[3] = -1; } //distance to next Obstacle inputs[4] = GetAsentialData.findDifNext(this, Global.bg.obstacleList) / 100; //activating neuralNet float[] output = nn.calculate(inputs); //maping the outputs bool[] answers = new bool[outputNum]; for (int i = 0; i < answers.Length; i++) { if (output[i] > 0) { answers[i] = true; } else { answers[i] = false; } } //returning answers return(answers); }