Click here to Skip to main content
15,884,986 members
Articles / Web Development / ASP.NET

Online Circular Chess in Silverlight, ASP.NET AJAX, WCF Web Services, and LINQ to SQL

Rate me:
Please Sign up or sign in to vote.
4.84/5 (61 votes)
31 Dec 2007CPOL34 min read 219.8K   1.9K   145  
An application for users to play Circular Chess over the internet based on Silverlight, ASP.NET AJAX, WCF Web Services, and LINQ to SQL.
using System;

namespace CChess
{
    public enum ChessPieceTypes : byte
    {
        Pawn = 1,

        King,

        Queen,

        Rook,

        Knight,

        Bishop
    }

    public class CChessPiece
    {
        /// <summary>
        /// For serializing
        /// </summary>
        private CChessPiece() { }

        public CChessPiece(byte id, ChessPieceTypes type, CChessColors color, CChessSquare square)
        {
            _id = id;
            _type = type;
            _color = color;
            _square = square;
        }

        private byte _id;
        private ChessPieceTypes _type;
        private CChessSquare _square;
        private CChessColors _color;

        public byte ID
        {
            get { return _id; }
        }

        public ChessPieceTypes Type
        {
            get { return _type; }
            set
            {
                if (_type == ChessPieceTypes.Pawn && value != ChessPieceTypes.King && value != ChessPieceTypes.Pawn)
                {
                    _type = value;
                }
                else
                {
                    throw new Exception("Invalid promotion");
                }
            }
        }

        public CChessColors Color
        {
            get { return _color; }
        }

        public bool IsAlive
        {
            get { return (_square != null); }
        }

        /// <summary>
        /// Gets or sets the square in which this piece currently is.
        /// </summary>
        public CChessSquare Square
        {
            get { return _square; }
            set { _square = value; }
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Israel Israel
My name is Julian, I was born in Argentina, but I've been living in Israel for 6 years already. I'm a high school student in my last year, I study computer science, physics and math.
Other than programming, I really enjoy watching anime and reading manga.

Comments and Discussions