View Single Post
Old 12-01-2004, 06:18 AM  
Bob Saget
So Fucking Banned
 
Join Date: Nov 2004
Posts: 312
using System;
using System.Collections;
using System.Drawing;

namespace tictactoe_basic
{
/// <summary>
/// Summary description for TTTModel.
/// </summary>
public class TTTModel
{
private Players mPlayers = new Players();
private StatusDetector mStatus = new StatusDetector_Hardcoded();
private TTTBoard mBoard = new TTTBoard();

public TTTModel()
{
mBoard.NewGame();
}
public delegate void UpdatedModel();
public event UpdatedModel Updated;
public StatusDetector.ResultEnum Result
{
get { return mStatus.GetStatus(mBoard); }
}
public bool MyTurn
{
get { return mPlayers.MyTurn; }
}
public void SetPlayerType(Player p)
{
mPlayers.SetPlayerType(p);
}
public void MakeMove(GridCoordinate gc)
{
if (Result != StatusDetector.ResultEnum.NotDone) return;
if (mBoard.CellOccupied(gc)) return;

mPlayers.Move(mBoard, gc);
mPlayers.NextPlayer();
NotifyOfUpdate();

if (Result != StatusDetector.ResultEnum.NotDone) return;
if (!mPlayers.CurrentPlayerIsHuman())
{
mPlayers.Move(mBoard, mPlayers.CurrentPlayersMove(mBoard));
mPlayers.NextPlayer();
NotifyOfUpdate();
}
}
public bool CellIsX(GridCoordinate gc)
{
return mBoard.CellIsX(gc);
}
public bool CellIsO(GridCoordinate gc)
{
return mBoard.CellIsO(gc);
}
public void NewGame()
{
mPlayers.NewGame();
mStatus.NewGame();
mBoard.NewGame();
NotifyOfUpdate();
}
public GridCoordinate GetWinnerSlashStart
{
get {return mStatus.GetWinnerSlashStart; }
}
public GridCoordinate GetWinnerSlashEnd
{
get {return mStatus.GetWinnerSlashEnd; }
}
private void NotifyOfUpdate()
{
if (Updated != null)
Updated();
}
}
}
Bob Saget is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote