@Override
	public String toString()
	{
		StringBuilder sb = new StringBuilder();

		for (int y = 0; y < height; y++)
		{
			for (int x = 0; x < width; x++)
			{
				sb.append( "+-----" );
			}
			sb.append( "+\n" );

			for (int x = 0; x < width; x++)
			{
				sb.append( "|" );
				if (board[y][x] >= 0)
				{
					TetravexPiece p = pieces[board[y][x]];
					sb.append( "\\ " ).append( p.s[TOP] ).append( " /" );
				}
				else
				{
					sb.append( "     " );
				}
			}
			sb.append( "|\n" );

			for (int x = 0; x < width; x++)
			{
				sb.append( "|" );
				if (board[y][x] >= 0)
				{
					TetravexPiece p = pieces[board[y][x]];
					sb.append( p.s[LEFT] ).append( " X " ).append( p.s[RIGHT] );
				}
				else
				{
					sb.append( "     " );
				}
			}
			sb.append( "|\n" );

			for (int x = 0; x < width; x++)
			{
				sb.append( "|" );
				if (board[y][x] >= 0)
				{
					TetravexPiece p = pieces[board[y][x]];
					sb.append( "/ " ).append( p.s[BOTTOM] ).append( " \\" );
				}
				else
				{
					sb.append( "     " );
				}
			}
			sb.append( "|\n" );
		}

		for (int x = 0; x < width; x++)
		{
			sb.append( "+-----" );
		}
		sb.append( "+\n" );

		return sb.toString();
	}