抽象工厂实现坦克大战(c++实现)
代码
using System;
namespace 抽象工厂
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Client client = new Client();
client.main();
Console.ReadLine();
}
}
//--------------------------工具层------------------------------------------------
public class Guige
{
public Guige(string guige)
{
this.guige = guige;
}
private string guige;
public string get()
{
return guige;
}
}
public abstract class Function
{
protected Guige guige;
public void exe()
{
Console.WriteLine("动作:" + getFunction() + " 规格:" + guige.get());
}
public abstract string getFunction();
}
//--------------------------抽象层------------------------------------------------
interface IFactory
{
Shot createShot();
Run createRun();
}
interface ITank
{
void exe();
}
//--------------------------实体层------------------------------------------------
class Tank: ITank
{
public Tank(Shot shot, Run run)
{
this.shot = shot;
this.run = run;
}
public void exe()
{
shot.exe();
run.exe();
}
Shot shot;
Run run;
}
public class Shot: Function
{
public override string getFunction()
{
return "发射";
}
}
public class Run: Function
{
public override string getFunction()
{
return "跑";
}
}
public class Shot70 : Shot
{
public Shot70()
{
guige = new Guige("70");
}
}
public class Run70 : Run
{
public Run70()
{
guige = new Guige("70");
}
}
public class Shot50 : Shot
{
public Shot50()
{
guige = new Guige("50");
}
}
public class Run50 : Run
{
public Run50()
{
guige = new Guige("50");
}
}
class Factory70: IFactory
{
public Shot createShot()
{
return new Shot70();
}
public Run createRun()
{
return new Run70();
}
}
class Factory50 : IFactory
{
public Shot createShot()
{
return new Shot50();
}
public Run createRun()
{
return new Run50();
}
}
//--------------------------客户端------------------------------------------------
class Client
{
public void main() {
createTank(new Factory50());
createTank(new Factory70());
}
public void createTank(IFactory factory)
{
Tank tank = new Tank(factory.createShot(), factory.createRun());
tank.exe();
}
}
}

本文通过C#代码示例,详细介绍了抽象工厂模式在坦克大战游戏开发中的应用。实现了不同规格的坦克(50型和70型),包括射击和移动功能,展示了如何使用抽象工厂模式来创建具有特定规格的坦克实例。
342

被折叠的 条评论
为什么被折叠?



