Real-life example of a Cricket game implemented using object-oriented programming (OOP) concepts in C#

Patel Dhiren
2 min readMay 27, 2023

--

using System;

class Player
{
public string Name { get; set; }
public int RunsScored { get; set; }
public int WicketsTaken { get; set; }
public bool IsBatting { get; set; }

public Player(string name)
{
Name = name;
RunsScored = 0;
WicketsTaken = 0;
IsBatting = false;
}

public void Bat()
{
IsBatting = true;
Console.WriteLine($"{Name} is batting.");
}

public void Bowl()
{
IsBatting = false;
Console.WriteLine($"{Name} is bowling.");
}

public void ScoreRuns(int runs)
{
RunsScored += runs;
Console.WriteLine($"{Name} scored {runs} runs.");
}

public void TakeWicket()
{
WicketsTaken++;
Console.WriteLine($"{Name} took a wicket.");
}
}

class CricketGame
{
public Player Team1Batsman { get; set; }
public Player Team2Batsman { get; set; }
public Player Team1Bowler { get; set; }
public Player Team2Bowler { get; set; }

public CricketGame(Player team1Batsman, Player team2Batsman, Player team1Bowler, Player team2Bowler)
{
Team1Batsman = team1Batsman;
Team2Batsman = team2Batsman;
Team1Bowler = team1Bowler;
Team2Bowler = team2Bowler;
}

public void Play()
{
Team1Batsman.Bat();
Team2Bowler.Bowl();

Team1Batsman.ScoreRuns(4);
Team1Batsman.ScoreRuns(6);
Team2Bowler.TakeWicket();

Team2Batsman.Bat();
Team1Bowler.Bowl();

Team2Batsman.ScoreRuns(2);
Team2Bowler.TakeWicket();
Team2Batsman.ScoreRuns(1);

Console.WriteLine($"Team 1: {Team1Batsman.RunsScored}/{Team2Bowler.WicketsTaken}");
Console.WriteLine($"Team 2: {Team2Batsman.RunsScored}/{Team1Bowler.WicketsTaken}");
}
}

class Program
{
static void Main()
{
Player team1Batsman = new Player("Player 1");
Player team2Batsman = new Player("Player 2");
Player team1Bowler = new Player("Player 3");
Player team2Bowler = new Player("Player 4");

CricketGame cricketGame = new CricketGame(team1Batsman, team2Batsman, team1Bowler, team2Bowler);

cricketGame.Play();
}
}

In this example, we have two teams in a Cricket match, with each team having a batsman and a bowler. The Player class represents a player with properties like Name, RunsScored, WicketsTaken, and IsBatting. It also has methods like Bat(), Bowl(), ScoreRuns(), and TakeWicket().

The CricketGame class represents a Cricket match with properties for each player. It has a Play() method that simulates the game by calling various player methods and displaying the final score and wicket count.

In the Main() method, we create player objects and a CricketGame object. We then start the game by calling the Play() method.

This example demonstrates how OOP principles like encapsulation, inheritance, and polymorphism can be applied to model a real-life scenario like a Cricket game in C#.

Thank you! I’m glad to hear that you’re enjoying the learning process. If you have any more questions or need further assistance, feel free to ask. Happy learning to you too!

--

--