Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
1.2 kB
3
Indexable
Never
public interface IGraphicLib
{
	public void Init(int screenWidth, int screenHeight);
	public void DrawPixel(int x, int y, Color color);
}

public class CommandLineGraphicLib : IGraphicLib
{
	public void Init(int screenWidth, int screenHeight)
	{
		// Initialize commande line
	}

	public void DrawPixel(int x, int y, Color color)
	{
		// Draw in command line
	}
}

public class NCurseGraphicLib : IGraphicLib
{
	public void Init(int screenWidth, int screenHeight)
	{
		// Initialize ncurse
	}

	public void DrawPixel(int x, int y, Color color)
	{
		// Draw with ncurse
	}
}

public class LeProgramDeLouis
{
	int screenWidth = 680;
	int screenHeight = 440;
	IGraphicLib _currentLib;

	void Update()
	{
		// j'ai plein de truc à dessiner à l'écran
		for (int x = 0; x < screenWidth; x++)
		{
			for (int Y = 0; Y < screenHeight; Y++)
			{
				_currentLib.DrawPixel(x, Y, new Color());
			}
		}
	}

	public void UseCommandLine()
	{
		SetGraphicLib(new CommandLineGraphicLib());
	}

	public void UseNCurse()
	{
		SetGraphicLib(new NCurseGraphicLib());
	}

	public void SetGraphicLib(IGraphicLib lib)
	{
		_currentLib = lib;
		_currentLib.Init(screenWidth, screenHeight);
	}
}
Leave a Comment