Keras, predict which player is the strongest (instead of player1 will win?)

Hello I have a dataset that lets me know if player 1 has won:

BMI, Temperature, Weight, Player1Win
33.6,17,50.0
26.6,19,31.0
23.3,16,32.1
28.1,20,21.0
43.1,17,33.1

I can correctly predict if player 1 will win their game with my model:

import pandas as pd
from tensorflow.keras.models sequential import
from tensorflow.keras.layers import Dense
from tensorflow.keras.utils import plot_model
from matplotlib import pyplot as plt

df = pd.read_csv('winner.csv')
X = df.loc[:, df.columns != 'Player1Win']
Y = df.loc[:, 'Player1Win']

pattern = Sequential()
model.add(Dense(12, input_shape=(3,), activation='reread'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

model.fit(X, Y, epochs=100)

_, precision = model.evaluate(X, Y)
print('Precision: %.2f' % (precision*100))

But I would like to extend my model, considering all players with this new dataset:

BMI, Temperature, Weight, Player1, Player2, Winner
33.6,17,50,Bob,Joe,Bob
26.6,19,31,Nathan,Bob,Bob
23.3,16,32,Bob,Joe,Joe
28.1,20,21,Joe,Bob,Bob
43.1,17,33,Joe,Nathan,Nathan

rather than predicting if “player 1 will win”, I would like to know if “Bob will win against Nathan”. I would like to know what method to use to do this.

I thought of adding 1 column per player, with a 0 and 1 if they won but: 1) it would make a huge matrix 2) it would make false information, because in each match there are only 2 players who play not all.

It would be 3 columns like that:

bob,nathan,joe
0,1,0
1,0,0
1,0,0
0,0,1
1,0,0

Another question, in my dataset, I have more important parameters than others. Is there a model capable of prioritizing certain variables? In my case, the opponent’s name is the most important variable (more than temperature or weight).