Автор работы: Пользователь скрыл имя, 18 Декабря 2013 в 18:34, курсовая работа
Идея совместить популярные игровые механики и интеллектуальное развитие пришла ко мне ещё в 8-ом классе. Для реализации мечты не хватало опыта и единомышленников. БГУИР дал мне и то, и то другое. Я знал, что проект должен быть прост в реализации, а порог входа на выбранный рынок должен быть как можно ниже. И я выбрал рынок социальных игр.
Введение 3
Классификация игры, сюжет и миссия 4
Структура программы 5
Диаграмма классов 6
Основные алгоритмы 7
Описание игрового процесса 9
Описание игровых вещей Ошибка! Закладка не определена.12
Описание игрового баланса Ошибка! Закладка не определена.13
Заключение 14
Литература 15
Исходный код…………………………………………….…………………………………………….16
return;
}
#endregion
#region valid - если друга уже пригласили
if (friend.Fight.FriendInvite != null || friend.Fight.
{
Packet pak = c.pak;
pak.Clear();
pak.Addint16(PacketCommand.
pak.Addbyte((byte)SendFvfMessa
pak.Send(c);
Log.Write(EType.Packet, "{0} {1}, message: {2}",
c.ID, "<-GoFvf", SendFvfMessage.FRIEND_
return;
}
#endregion
#region проверяем, приглашал ли игрок еще кого-нибудь
for(int i=0;i<WorldServer.world_
{
Client cl = WorldServer.world_players[i];
if (cl.Fight.FriendInvite == c)
{
cl.Fight.FriendInvite = null;
}
}
#endregion
c.SetFlag(PlayerFlags.FVF);
c.Fight.BeginWeit();
friend.Fight.FriendInvite = c;
if (friend.Fight.Status != FightStatus.None)
{
Packet pak = c.pak;
pak.Clear();
pak.Addint16(PacketCommand.
pak.Addbyte((byte)SendFvfMessa
pak.Send(c);
Log.Write(EType.Packet, "{0} {1}, message: {2}",
c.ID, "<-GoFvf", SendFvfMessage.FRIEND_INFIGHT)
}
else
{
Packet pak = c.pak;
pak.Clear();
pak.Addint16(PacketCommand.
pak.Addbyte((byte)SendFvfMessa
pak.Send(c);
Log.Write(EType.Packet, "{0} {1}, message: {2}", c.ID, "<-GoFvf", SendFvfMessage.OK);
}
#region ValidTask
int taskID = 7;
List<STask> task = c.Tasks.Where(n => n.ID == taskID && !n.Complete).ToList();
if (task.Count == 1)
{
STask t = task[0];
t.SetComplete();
for (int i = 0; i < c.Tasks.Count; i++)
if (c.Tasks[i].ID == t.ID)
{
c.Tasks[i] = t;
break;
}
}
#endregion
}
public static void SendFriendCancel(Client c)
{
Packet pak = c.pak;
pak.Clear();
pak.Addint16(PacketCommand.
pak.Addbyte((byte)SendFvfMessa
pak.Send(c);
Log.Write(EType.Packet, "{0} {1}, message: {2}", c.ID, "<-GoFvf", SendFvfMessage.FRIEND_CANCEL);
}
}
}
Класс MainSocet:
namespace BobServ
{
/// <summary>Класс для работы с сетью
/// </summary>
public class MainSocket
{
private static Socket listenSocket; //Сокет для прослушивания соединения
private static AsyncCallback as_callback; //делегат для обратного вызова функции HandleConnectClient
/// <summary>
/// Start() - Запускает обработчик подключений к серверу.
/// </summary>
/// <param name="port">Порт подключения к серверу.</param>
public static int Start(int port)
{
as_callback = new AsyncCallback(
listenSocket = new Socket(AddressFamily.
listenSocket.ReceiveTimeout = 10;
listenSocket.SendTimeout = 10;
IPEndPoint epConfiguration = new IPEndPoint(IPAddress.Any, port);
try
{
listenSocket.Bind(
listenSocket.Listen(1000);
listenSocket.BeginAccept(as_
Log.Write(EType.Notice, "[MainSocket] Ready.");
return 0;
}
catch (Exception se)
{
Log.Write(EType.Warning, "[MainSocket]Start->" + se.Message);
return 1;
}
}
/// <summary>
/// Stop() - Останавливает обработчик подключений к серверу.
/// </summary>
public static void Stop()
{
try
{
listenSocket.Disconnect(false)
listenSocket.Close();
Log.Write(EType.Notice, "MainSocket Close!");
}
catch(Exception ex)
{
Log.Write(EType.Error, "MainSocket Close:" + ex.ToString());
}
}
private static void HandleConnectClient(IAsyncResu
{
try
{
if (WorldServer.world_players.
{
Log.Write(EType.Notice, "[Server max online!]");
try
{
listenSocket.EndAccept(asyn).
}
catch { }
}
else
new Client(listenSocket.EndAccept(
}
catch
{
}
finally
{
listenSocket.BeginAccept(as_
}
}
}
}
Информация о работе Социальная интеллектуальная игра «ЗаБотань!»