Dodanie wszystkich zmiennych z modelu do apki oraz ich obsługa
This commit is contained in:
parent
f93d8c5c67
commit
412dd57577
@ -8,9 +8,41 @@ const Hero = () => {
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
const [gameMinute, setGameMinute] = useState('');
|
||||
|
||||
const [firstShot, setfirstShot] = useState('');
|
||||
const [oneOnOne, SetoneOnOne] = useState('');
|
||||
const [afterAirDuel, SetafterAirDuele] = useState('');
|
||||
const [openGoal, SetOpenGoal] = useState('');
|
||||
const [afterDribbling, SetafterDribbling] = useState('');
|
||||
const [redirect, SetRedirect] = useState('');
|
||||
|
||||
const toggleDropdown = () => setIsOpen(!isOpen);
|
||||
const handleMinuteChange = (e) => setGameMinute(e.target.value);
|
||||
|
||||
const handleFirstShotChange = (event) => {
|
||||
setfirstShot(event.target.checked);
|
||||
};
|
||||
|
||||
const handleOneOnOneChange = (event) => {
|
||||
SetoneOnOne(event.target.checked);
|
||||
};
|
||||
|
||||
const handleAfterAirDuelChange = (event) => {
|
||||
SetafterAirDuele(event.target.checked);
|
||||
};
|
||||
|
||||
const handleOpenGoalChange = (event) => {
|
||||
SetOpenGoal(event.target.checked);
|
||||
};
|
||||
|
||||
const handleAfterDribblingChange = (event) => {
|
||||
SetafterDribbling(event.target.checked);
|
||||
};
|
||||
|
||||
const handleRedirectChange = (event) => {
|
||||
SetRedirect(event.target.checked);
|
||||
};
|
||||
|
||||
|
||||
const [data, setData] = useState("");
|
||||
//zmienne globalne
|
||||
//zmienna mówiąca który przycisk jest aktywny, jest ona wykorzystywana
|
||||
@ -73,6 +105,7 @@ const Hero = () => {
|
||||
setNumberOfStrikers(0)
|
||||
setNumberOfGoalkeppers(0)
|
||||
setNumberOfShooters(0)
|
||||
setGameMinute('')
|
||||
}
|
||||
|
||||
|
||||
@ -242,9 +275,9 @@ const Hero = () => {
|
||||
///Dziwny Blad
|
||||
loadPlayers()
|
||||
if (number_of_shooters == 1) {
|
||||
console.log('Wysyłanie wartości: ', bodyPart, technique);
|
||||
console.log('Wysyłanie wartości: ', bodyPart, technique, actionType, shooterPossition, gameMinute, firstShot);
|
||||
// Użyj backticksów zamiast zwykłych cudzysłowów
|
||||
fetch(`http://127.0.0.1:5000/get_model?shooter=${shooter}&goalkeeper=${goalkeeper}&defenders=${defenders}&strickers=${stricers}&bodyPart=${bodyPart}&technique=${technique}&actionType=${actionType}&shooterPossition=${shooterPossition}`).then(
|
||||
fetch(`http://127.0.0.1:5000/get_model?shooter=${shooter}&goalkeeper=${goalkeeper}&defenders=${defenders}&strickers=${stricers}&bodyPart=${bodyPart}&technique=${technique}&actionType=${actionType}&shooterPossition=${shooterPossition}&gameMinute=${gameMinute}&shot_first_time=${firstShot}&shot_one_on_one=${oneOnOne}&shot_aerial_won=${afterAirDuel}&shot_open_goal=${openGoal}&shot_follows_dribble=${afterDribbling}&shot_redirect=${redirect}`).then(
|
||||
res => res.json()
|
||||
).then(
|
||||
data => {
|
||||
@ -265,8 +298,6 @@ const Hero = () => {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Funkcja dodająca listener do boiska*/
|
||||
function boiskoListener(ev){
|
||||
ev.preventDefault()
|
||||
@ -440,34 +471,32 @@ const Hero = () => {
|
||||
<div className="additional-parameters">
|
||||
<h3>Parametry strzału</h3>
|
||||
<label>
|
||||
<input type="checkbox" id="firstShot" />
|
||||
<input type="checkbox" id="firstShot" onChange={handleFirstShotChange} />
|
||||
Pierwszy w meczu
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" id="oneOnOne" />
|
||||
<input type="checkbox" id="oneOnOne" onChange={handleOneOnOneChange} />
|
||||
Akcja sam na sam
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" id="afterAirDuel" />
|
||||
<input type="checkbox" id="afterAirDuel" onChange={handleAfterAirDuelChange} />
|
||||
Po pojedynku powietrznym
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" id="openGoal" />
|
||||
<input type="checkbox" id="openGoal" onChange={handleOpenGoalChange} />
|
||||
Na pustą bramkę
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" id="afterDribbling" />
|
||||
<input type="checkbox" id="afterDribbling" onChange={handleAfterDribblingChange} />
|
||||
Poprzedzony dryblingiem
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" id="ricochet" />
|
||||
<input type="checkbox" id="redirect" onChange={handleRedirectChange} />
|
||||
Rykoszet
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
{/* <div className="ChoosingPlayer">
|
||||
<button className="cho-one_on_one" id = "bbt8">Sam na sam</button>
|
||||
</div>
|
||||
|
Binary file not shown.
@ -31,6 +31,15 @@ def get_model():
|
||||
acionType = request.args.get('actionType')
|
||||
minute = request.args.get('gameMinute')
|
||||
position_name = request.args.get('shooterPossition')
|
||||
gameMinute = request.args.get('gameMinute')
|
||||
|
||||
shot_first_time = request.args.get('shot_first_time')
|
||||
shot_one_on_one = request.args.get('shot_one_one')
|
||||
shot_aerial_won = request.args.get('shot_aerial_won')
|
||||
shot_open_goal = request.args.get('shot_open_goal')
|
||||
shot_follows_dribble = request.args.get('shot_follows_dribble')
|
||||
shot_redirect = request.args.get('shot_redirect')
|
||||
|
||||
|
||||
shooter_x, shooter_y = shooter.split(',')
|
||||
|
||||
@ -81,6 +90,9 @@ def get_model():
|
||||
atakujacy_lista = konwertujDoListy(atakujacy)
|
||||
atakujacy_macierz = zmienWMaciez(atakujacy_lista)
|
||||
|
||||
if gameMinute == "":
|
||||
gameMinute = 1 # to change
|
||||
|
||||
print("wspolrzedne obroncow: ", obroncy)
|
||||
print("wspolrzedne atakujacych: ", atakujacy)
|
||||
|
||||
@ -114,6 +126,8 @@ def get_model():
|
||||
print("Posortowani obroncy: ", posortowani_obroncy)
|
||||
print("Posortowani atakujacy: ", posortowani_atakujacy)
|
||||
|
||||
number_of_players_opponents = np.sum(~np.isnan(posortowani_obroncy).all(axis=1))
|
||||
number_of_players_teammates = np.sum(~np.isnan(posortowani_atakujacy).all(axis=1))
|
||||
|
||||
## add angle, match minutes and number of players
|
||||
|
||||
@ -142,22 +156,22 @@ def get_model():
|
||||
print("bramkarz:", goalkepper_x, goalkepper_y)
|
||||
|
||||
# MODEL XGBOOST
|
||||
response = xgboost_predict_proba(minute=1,
|
||||
response = xgboost_predict_proba(minute=gameMinute,
|
||||
position_name=position_name,
|
||||
shot_body_part_name=body_part,
|
||||
shot_technique_name=technique,
|
||||
shot_type_name=acionType,
|
||||
shot_first_time=False,
|
||||
shot_one_on_one=False,
|
||||
shot_aerial_won=False,
|
||||
shot_first_time=shot_first_time,
|
||||
shot_one_on_one=shot_one_on_one,
|
||||
shot_aerial_won=shot_aerial_won,
|
||||
shot_deflected=False,
|
||||
shot_open_goal=False,
|
||||
shot_follows_dribble=False,
|
||||
shot_redirect=False,
|
||||
shot_open_goal=shot_open_goal,
|
||||
shot_follows_dribble=shot_follows_dribble,
|
||||
shot_redirect=shot_redirect,
|
||||
shot_kick_off=False,
|
||||
x1=shooter_x, y1=shooter_y,
|
||||
number_of_players_opponents=0,
|
||||
number_of_players_teammates=0,
|
||||
number_of_players_opponents=number_of_players_opponents,
|
||||
number_of_players_teammates=number_of_players_teammates,
|
||||
angle=angle, distance=dist,
|
||||
x_player_opponent_Goalkeeper=goalkepper_x, y_player_opponent_Goalkeeper=goalkepper_y,
|
||||
x_player_opponent_1=posortowani_obroncy[0][0], y_player_opponent_1=posortowani_obroncy[0][1],
|
||||
|
Loading…
Reference in New Issue
Block a user