// Creates a human playerInfo public PlayerInfo(string i_PlayerName, bool i_Human, Checkers.ePlayerTag i_PlayerTag) { Name = i_PlayerName; Human = i_Human; Score = 0; PlayerTag = i_PlayerTag; }
// Creates a machine playerInfo public PlayerInfo(bool i_Human, Checkers.ePlayerTag i_PlayerTag) { Name = k_ComputerName; Human = i_Human; Score = 0; PlayerTag = i_PlayerTag; }
/// <summary> /// This is called whenever your checker gets captured (during an opponent's turn). /// </summary> /// <param name="checker">The checker that was captured.</param> public void GotCaptured(Checkers.Checker checker) { // <<-- Creer-Merge: gotCaptured -->> - Code you add between this comment and the end comment will be preserved between Creer re-runs. // Put your game logic here for gotCaptured return ; // <<-- /Creer-Merge: gotCaptured -->> }
private static bool IsSupportedAMDDevice(BaseDevice dev) { var isSupported = dev is AMDDevice gpu && Checkers.IsGcn4(gpu); return(isSupported); }
public ResponsePacket OnRouteTableQuery(RequestPacket requestPacket) { // Get RouteTableQuery_req packet params int connectionId = requestPacket.Id; string srcPort = requestPacket.SrcPort; string dstPort = requestPacket.DstPort; int slotsNumber = requestPacket.SlotsNumber; RequestPacket.Est est = requestPacket.Establish; if (est == RequestPacket.Est.Teardown) { LOG.Info($"Received RC::RouteTableQuery_req(Teardown, connectionId = {connectionId}, srcPort = {srcPort}," + $" dstPort = {dstPort}, slotsNumber = {slotsNumber})"); // The best idea will be to store the actual responses in a table / dict and when the Teardown RouteTableQuery // arrives, we just match connectionId, srcPort, dstPort, slotsNumber and if they are the same, just return // the same ResponsePacket. // e.g. instead of just returning ResponsePacket, do this: // ResponsePacket responsePacket = new ResponsePacket.Builder().<blablabla>.Build(); // _responsePackets[requestPacket] = responsePacket; // return responsePacket; // // and then when the Teardown comes, just do: LOG.Info($"Sending RC::RouteTableQuery_res(Teardown, connectionId = {connectionId})"); var teardownResponsePacket = _responsePackets[GetUniqueRcId(connectionId, srcPort, dstPort, slotsNumber)].Dequeue(); if (teardownResponsePacket == null) { LOG.Error("Could not find such connection"); return(new ResponsePacket.Builder().SetRes(ResponsePacket.ResponseType.Refused).Build()); } _connections.RemoveAll(connection => connectionId == connection.Id); return(teardownResponsePacket); } LOG.Info($"Received RC::RouteTableQuery_req(connectionId = {connectionId}, srcPort = {srcPort}," + $" dstPort = {dstPort}, slotsNumber = {slotsNumber})"); // Set dstZone depending on destination domain string secondDomainPortPattern = "3xx"; string dstZone; if (Checkers.PortMatches(secondDomainPortPattern, dstPort) > -1) // TODO: Check for matches value { dstZone = "012,021"; LOG.Trace($"Destination port belongs to other zone. Possible leaving ports: {dstZone}"); } else { dstZone = dstPort; LOG.Trace($"Destination port belongs to the same zone. Leaving port: {dstZone}"); } string gateway = GetBestGateway(srcPort, dstPort) ?? "0"; (int, int)slots = (0, 0); // Check whether we don't already have a registered connection with given connectionId if (!_connections.Exists(connection => connection.Id == connectionId)) { try { slots = CreateSlots(gateway, slotsNumber); } catch (Exception e) { LOG.Info(e.Message); return(new ResponsePacket.Builder() .SetRes(ResponsePacket.ResponseType.ResourcesProblem) .Build()); } _connections.Add(new Connection(connectionId, slots)); LOG.Trace($"Allocated slots {slots} for new connection with id {connectionId}"); } else { slots = _connections.Find(connection => connection.Id == connectionId).Slots; LOG.Trace($"There is already registered connection with id {connectionId}. Allocated slots: {slots}"); } ResponsePacket responsePacket = new ResponsePacket.Builder() .SetRes(ResponsePacket.ResponseType.Ok) .SetId(connectionId) .SetGateway(gateway) .SetSlots(slots) .SetDstZone(dstZone) .Build(); RequestPacket requestPacketWhenTeardown = requestPacket; requestPacketWhenTeardown.Establish = RequestPacket.Est.Teardown; string uniqueRcId = GetUniqueRcId(connectionId, srcPort, dstPort, slotsNumber); if (_responsePackets.ContainsKey(uniqueRcId)) { LOG.Trace($"_responsePacketsTable contains key: {uniqueRcId}"); } else { _responsePackets[uniqueRcId] = new Queue <ResponsePacket>(); } _responsePackets[uniqueRcId].Enqueue(responsePacket); LOG.Info($"Sending RC::RouteTableQuery_res" + $"(connectionId = {connectionId}, gateway = {gateway}," + $" slots = {slots.ToString()}, dstZone = {dstZone})"); return(responsePacket); }
public void ValidateMeanings() { if (!_isRunning) { try { _isRunning = true; using (DataContext.Instance = new AcroniManagerDatabaseModelContainerWrapped()) { List <int> arrangementsIDs = Checkers.Select(x => x.Arrangement.ArrangementId).Distinct().ToList(); foreach (Acronym acronym in DataContext.Instance.AcronymSet .Where(x => x.Meanings .Any(y => !y.Validations.Any() || y.Validations .All(z => !arrangementsIDs.Contains(z.Arrangement.ArrangementId)) ) ).ToList()) { foreach (CheckerBase checker in Checkers.Where(x => !acronym.Meanings .SelectMany(y => y.Validations.Select(z => z.Arrangement.ArrangementId)) .Contains(x.Arrangement.ArrangementId))) { List <Meaning> validatedMeanings = checker.ValidateMeanings(acronym); if (validatedMeanings != null) { foreach (Meaning meaning in acronym.Meanings) { Validation validation = meaning.Validations .FirstOrDefault(x => x.Arrangement.ArrangementId == checker.Arrangement.ArrangementId); bool pendingChanges = false; if (validation == null) { validation = new Validation { Arrangement = checker.Arrangement, Meaning = meaning }; meaning.Validations.Add(validation); if (MeaningChecked != null && meaning.Validations.Count == 1) { MeaningChecked(acronym.Caption, meaning.Caption); } pendingChanges = true; } bool validated = validatedMeanings.Any(x => x.MeaningId == meaning.MeaningId); if (validation.Validated != validated) { validation.Validated = validated; if (MeaningValidated != null && validated && meaning.Validations.Count(x => x.Validated) == 1) { MeaningValidated(acronym.Caption, meaning.Caption); } pendingChanges = true; } if (pendingChanges) { DataContext.Instance.SaveChanges(); } } } } } } } finally { _checkers = null; DataContext.Instance = null; _isRunning = false; } } }
public override string ToString() { var color = Checkers.Any() ? Checkers.First().Color.ToString() : ""; return($"{Checkers.Count} {color} WN = {WhiteNumber}, BN = {BlackNumber}, "); }
public bool Bloat(Player.Color myColor) { return(Checkers.Count(c => c.Color == myColor) == 1); }
public bool IsOpen(Player.Color myColor) { //Opponent has less than two checkers on the point. //My own home is always open. return(Checkers.Count(c => c.Color != myColor) < 2 || GetNumber(myColor) == 25); }
public bool MyBlock(Player.Color myColor) { // Do I have a block? Home doesnt count. return(Checkers.Count(c => c.Color == myColor) >= 2); }
/// <summary> /// Adds Transform to Checkers dictionary by name /// </summary> private void AddTransformChecker(Checkers name) { this._checkerDictionary.Add(name, transform.Find(name.ToString())); }
public static void Init(TestContext tc) { classUnderTest = new Checkers(); }
protected void RemoveChecker(Checker checker) { Checkers.Remove(checker); ArrangeCheckers(); }
protected void AddChecker(Checker checker) { Checkers.Add(checker); }
protected void cmdSubmit_Click(object sender, EventArgs e) { Response.Redirect("StartPage.html"); string data = ""; coincidence = false; compilationError = false; if (IsPostBack) { if (!String.IsNullOrWhiteSpace(Code.Text)) { data = Server.HtmlEncode(Code.Text); data = data.Replace(" ", string.Empty); foreach (string s in allSolv) { if (String.Compare(data, s) == 0) { coincidence = true; break; } } if (coincidence == false) { Label1.Text = "Данные приняты!"; allSolv.Add(data); string[] codeText = Code.Text.Split('\n'); File.WriteAllLines(@"Text.cs", codeText); // компиляция файла с кодом var compileCSC = new Process { StartInfo = new ProcessStartInfo { FileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe", Arguments = @"Text.cs", UseShellExecute = false, RedirectStandardOutput = true, CreateNoWindow = true } }; compileCSC.Start(); string errText = compileCSC.StandardOutput.ReadToEnd(); if (errText.Length > 412) // шапка вывода компилятора, 412 символов { Label1.Text = errText.Substring(412); compilationError = true; } compileCSC.WaitForExit(); if (!compilationError) { checkerResult = Checkers.Check(problem); switch (checkerResult) { case 0: Label1.Text = "Решение принято!"; break; case 1: Label1.Text = "Ошибка! Неверное решение!"; break; case 2: Label1.Text = "Ошибка! Превышено время ожидания результата!"; break; } } } else { Label1.Text = "Это решение уже отправлялось на сервер!"; } } } }