Q: How often should Player 1 bluff?
A: Enough to make Player 2 indifferent to calling or folding.
(Subscript[EV, call]) = EVfold

P: initial pot = 1
S: bet size as proportion of pot.
(Subscript[p, bluff: ])probability of bluff

(Subscript[EV, call]):1+S (pot + bet) when calling a bluff; -S when calling a value bet
EVfold: 0

(Subscript[EV, call])=(Subscript[p, bluff])(1+S) - (1-(Subscript[p, bluff])) S

Setting (Subscript[EV, call ])= (Subscript[EV, fold]) :

(Subscript[p, bluff]) (1+S) - (1-(Subscript[p, bluff]))  S== 0

Solve[(Subscript[p, bluff]) (1+S) - (1-(Subscript[p, bluff]))  S== 0, (Subscript[p, bluff])]

(Subscript[o, bluff: ])ratio of bluffs to checks, or odds of bluff expressed as x:1
(Subscript[o, bluff ])= ((Subscript[p, bluff])/(1-(Subscript[p, bluff])))

(Subscript[p, bluff]) = (S/(1+2S
));

(Subscript[o, bluff]) = ((Subscript[p, bluff])/(1-(Subscript[p, bluff])))

Simplify[(Subscript[o, bluff])]
(S/(1+S))

We' ll use this, because it's simpler. 
Given number or probability of value bets, we want (S/(1+S))as many bluffs.

bluffratio[s_] = (s/(1+s));
g1 = Plot[{bluffratio[S]}, {S, 0,4}, Frame->True, FrameLabel->{"Bet/Pot Size", "Bluffs/Value Bet"}];
g2 = Graphics[Point[{1, 0.5}]];
Show[g1,g2]

Needs["Plotly"]
Plotly[bluffratio[S], {S, 0,4}, Frame->True, FrameLabel->{"Bet/Pot Size", "Bluffs/Value Bet"}]

Q : How often should Player 2 call?
A : Often enough to make Player 1 indifferent to bluffing

(Subscript[EV, bluff])=(Subscript[EV, call])
(Subscript[p, call]) : call probability
(1 - (Subscript[p, call])) : fold probability
P = 1
S = B/P

(Subscript[EV, bluff ])== (1-(Subscript[p, call]))P - (Subscript[p, call])B
divide by P
(Subscript[EV, bluff ])== (1-(Subscript[p, call])) - (Subscript[p, call])S
(Subscript[EV, fold])== 0

Solve[(1-(Subscript[p, call]))-(Subscript[p, call]) S==0,(Subscript[p, call])]

callprob[s_]= (1/(1+s))
g1 = Plot[{bluffratio[S],callprob[S]}, {S, 0, 4}, Frame->True, FrameLabel->{"Bet/Pot Size", "Bluffs/Value Bet"}];
g2 = Graphics[Point[{1, 0.5}]];
Show[g1,g2]

Needs["Plotly"]
Plotly[{bluffratio[S],callprob[S]}, {S, 0, 4}]

ev[bluffratio_, callprob_, s_]=0.5(1+callprob s)+0.5bluffratio((1-callprob)-callprob s);
Plot3D[ev[b, c, 0], {b, 0, 1}, {c, 0, 1}, BoxRatios->1 , Axes->True, AxesLabel->{"Bluff Ratio", "Call %", "Expected Value"}, PlotRange->{0,1}]

Animate[Plot3D[ev[b, c, s], {b, 0, 1}, {c, 0, 1}, BoxRatios->1 , Axes->True, AxesLabel->{"Bluff Ratio", "Call %", "Expected Value"}, PlotRange->{0,1}], {s, 0, 1}]

Export["C:\\Temp\\test.avi", Animate[Plot3D[ev[b, c, s], {b, 0, 1}, {c, 0, 1}, BoxRatios->1 , Axes->True, AxesLabel->{"Bluff Ratio", "Call %", "Expected Value"}, PlotRange->{0,1}], {s, 0, 1}]]