namespace more_promotion_tests
public static void Main(string[] args)
Fighter fighterA = new Fighter("Canelo");
Fighter fighterB = new Fighter("Fury");
Fight fight = new Fight(ref fighterA, ref fighterB);
Console.WriteLine("Fighter {0} rating = {1:F}", fighterA.showName(), fighterA.showRating());
Console.WriteLine("Fighter {0} rating = {1:F}", fighterB.showName(), fighterB.showRating());
Console.WriteLine("Fighter {0} rating = {1:F}", fighterA.showName(), fighterA.showRating());
Console.WriteLine("Fighter {0} rating = {1:F}", fighterB .showName(),fighterB.showRating());
public Fight(ref Fighter a, ref Fighter b){
var rand = new Random(Guid.NewGuid().GetHashCode());
m_outcome = rand.Next(0, 2) + 1;
m_a.updateRatingWinner(ref m_b);
else if(m_outcome == 2) {
m_b.updateRatingWinner(ref m_a);
public void displayWinner(){
Console.WriteLine("Figher {0} won", m_a.showName());
else if (m_outcome == 2){
Console.WriteLine("Figher {0} won", m_b.showName());
else if (m_outcome == 0){
Console.WriteLine("Fight has not been simulated");
else if (m_outcome == 3){
Console.WriteLine("Fight ended at draw");
Console.WriteLine("Unknown outcome");
public Fighter(String name){
var rand = new Random(Guid.NewGuid().GetHashCode());
m_rating = rand.Next(0, 1000);
public void updateRatingWinner(ref Fighter loser){
double expectationToWin = 1.0 / (1.0 + Math.Pow(10.0, (loser.m_rating - m_rating) / 400.0));
double delta = eloK * (1.0 - expectationToWin);
Console.WriteLine(">>>winner rating = {0} loser rating = {1} P(exp) = {2} delta = {3}", m_rating, loser.m_rating, expectationToWin, delta);
public double showRating(){
public String showName(){
private int nationalPopularity;
private int localPopularity;
public double ticketsales()
public double networkViews()
public double PPVdemand()