public Block(uint fileOffset, BlockCode code, uint length, ulong counter) { this.fileOffset = fileOffset; this.code = code; this.length = length; this.counter = counter; }
private BlockCode[,] GetBlockMap() { BlockCode[,] arr = new BlockCode[7, 7]; //arr initialize for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { arr[i, j] = new BlockCode(); } } //get blockCode Transform map = GameObject.Find("Map").transform; BlockObject[] blockObjects = map.GetComponentsInChildren <BlockObject> (); foreach (BlockObject child in blockObjects) { Vector3 localPos = child.transform.position; int x = Mathf.RoundToInt(localPos.x); int y = Mathf.RoundToInt(localPos.y); try{ arr [x, y] = child.GetBlockCode(); }catch (IndexOutOfRangeException e) { Debug.Log("Error " + e.Message + " " + x + " " + y); } } return(arr); }
public ActionResult Answer(GetCorrectingCodeParametersModel model) { var blockCode = new BlockCode(model.InputData.Code.ElementaryCodes, model.InputData.Code.ElementaryCodes.Values.ElementAt(0).Length); bool foundMistake = false; string checkMessage = "Верно. "; var commentBuilder = new StringBuilder(); int codeDistance = blockCode.GetCodeDistance(); if (model.CodeDistance != codeDistance) { foundMistake = true; commentBuilder.Append(String.Format("Кодовое расстояние - {0}. ", codeDistance)); } int detectableErrors = blockCode.GetDetectableErrors(codeDistance); if (model.DetectableErrors != detectableErrors) { foundMistake = true; commentBuilder.Append(String.Format("Количество обнаруживаемых ошибок - {0}. ", detectableErrors)); } int fixableErrors = blockCode.GetFixableErrors(codeDistance); if (model.FixableErrors != fixableErrors) { foundMistake = true; commentBuilder.Append(String.Format("Количество исправляемых ошибок - {0}. ", fixableErrors)); } if (foundMistake) { checkMessage = "Неверно. "; } model.Comment = checkMessage + commentBuilder.ToString(); return(View(model)); }
public override BlockCode GetBlockCode() { //기본 형태 0 , 3 , 6 , 9 BlockCode Q1 = new BlockCode('0', '0', '0', '0'); BlockCode blockCode = base.MakeBlockCode(Q1); return(blockCode); }
public Block(BlockCode code, int type, string message) { mes = new List <string>(); this.code = code; this.Type = type; mes.Add(message); Console.WriteLine(message); }
protected BlockCode MakeBlockCode(BlockCode Q1) { for (int i = 0; i < this.blockDirectionCode; i++) { Q1.RotateAsLeft(); } return(Q1); }
public Block(string inputMessage) { mes = new List <string>(); string[] info = inputMessage.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); code = (BlockCode)Enum.Parse(typeof(BlockCode), info[0]); Type = Convert.ToInt32(info[1]); for (int i = 2; i < info.Length; i++) { mes.Add(info[i]); } }
object GetRecordEnum(BlockCode bc, uint rc) { switch (bc) { case BlockCode.Module: return((ModuleRecordCode)rc); case BlockCode.ParamAttr: return((ParamAttrRecordCode)rc); case BlockCode.ParamAttrGroup: return((ParamAttrGroupRecordCode)rc); case BlockCode.Constants: return((ConstantsRecordCode)rc); case BlockCode.Function: return((FunctionRecordCode)rc); case BlockCode.Identification: return((IdentificationRecordCode)rc); case BlockCode.ValueSymtab: return((ValueSymtabRecordCode)rc); case BlockCode.Metadata: return((MetadataRecordCode)rc); case BlockCode.MetadataAttachment: return((MetadataAttachmentRecordCode)rc); case BlockCode.Type: return((TypeRecordCode)rc); case BlockCode.Uselist: return((UselistRecordCode)rc); case BlockCode.ModuleStrtab: return((ModuleStrtabRecordCode)rc); case BlockCode.GlobalValSummary: return((GlobalValSummaryRecordCode)rc); case BlockCode.OperandBundleTags: return((OperandBundleTagsRecordCode)rc); case BlockCode.MetadataKind: return((MetadataKindRecordCode)rc); case BlockCode.Strtab: return((StrtabRecordCode)rc); case BlockCode.FullLtoGlobalValSummary: return((FullLtoGlobalValSummaryRecordCode)rc); case BlockCode.Symtab: return((SymtabRecordCode)rc); case BlockCode.SyncScopeNames: return((SyncScopeNamesRecordCode)rc); default: throw new NotSupportedException($"Unknown block code to GetRecordEnum {bc} ({(uint) bc})"); } }
private void OnBlockCodeEvent(object o, BlockCode code) { if (code == BlockCode.BlockStart) { blockCount++; return; } if (code == BlockCode.BlockEnd) { blockCount--; if (blockCount > 0) return; IAsyncCommandResponseListener listener = slots[currentCommand] as IAsyncCommandResponseListener; if (listener != null) listener. CommandCompleted (currentCommand); pending--; currentCommand = -1; } }
public Block (uint fileOffset, BlockCode code, uint length, ulong counter) { this.fileOffset = fileOffset; this.code = code; this.length = length; this.counter = counter; }
public Header(byte[] data) { Code = (BlockCode) (data [0] | (data [1] << 8)); Length = data [2] | (data [3] << 8) | (data [4] << 16) | (data [5] << 24); CounterDelta = (uint) (data [6] | (data [7] << 8) | (data [8] << 16) | (data [9] << 24)); }
Block DecodeBlock(BlockCode code, uint length, byte[] data) { switch (code) { case BlockCode.Directives: directives = new DirectivesBlock (new Buffer (data, length)); return directives; case BlockCode.End: return new EndBlock (new Buffer (data, length)); case BlockCode.Events: return new EventsBlock (new Buffer (data, length), directives); case BlockCode.Intro: return new IntroBlock (new Buffer (data, length)); case BlockCode.Loaded: return new LoadedBlock (new Buffer (data, length), directives); case BlockCode.Mapping: return new MappingBlock (new Buffer (data, length), directives); case BlockCode.Statistical: return new StatBlock (new Buffer (data, length)); case BlockCode.Unloaded: return new UnloadedBlock (new Buffer (data, length), directives); default: Console.WriteLine ("Unsupported block code: " + code); break; } return null; }
protected Block(BlockCode code) { this.code = code; }
public Block(BlockCode code) { mes = new List <string>(); this.code = code; }
public Block(BlockCode code, int type) { mes = new List <string>(); this.code = code; this.Type = type; }
public ActionResult Upload(HttpPostedFileBase upload) { if (upload != null) { string format = Path.GetExtension(upload.FileName); if (format == ".txt") { try { using (var reader = new StreamReader(upload.InputStream)) { Dictionary <char, string> codewords = new Dictionary <char, string>(); char[] separator = { ' ' }; int blockSize = -1; while (!reader.EndOfStream) { string[] symbolArgs = reader.ReadLine().Split(separator, StringSplitOptions.RemoveEmptyEntries); if (symbolArgs.Length != 2) { ViewBag.ErrorMessage = "Пожалуйста, проверьте правильность введенных данных!"; return(View("Index")); } char symbol = Convert.ToChar(symbolArgs[0]); string codeword = symbolArgs[1]; if (blockSize == -1) { blockSize = codeword.Length; codewords.Add(symbol, codeword); } else if (codeword.Length != blockSize) { ViewBag.ErrorMessage = "Пожалуйста, проверьте правильность введенных данных!"; return(View("Index")); } else { codewords.Add(symbol, codeword); } } if (codewords.Count == 0) { ViewBag.ErrorMessage = "Пожалуйста, введите в файл данные для построения кода!"; } else { ViewBag.ErrorMessage = ""; BlockCode code = new BlockCode(codewords, blockSize); int codeDistance = code.GetCodeDistance(); int detectableErrors = code.GetDetectableErrors(codeDistance); int fixableErrors = code.GetFixableErrors(codeDistance); ViewBag.Answer = String.Format("Кодовое расстояние - {0}. " + "Количество обнаруживаемых ошибок - {1}. Количество исправляемых ошибок - {2}.", codeDistance, detectableErrors, fixableErrors); } } } catch (FormatException) { ViewBag.ErrorMessage = "Пожалуйста, проверьте правильность введенных данных!"; } } else { ViewBag.ErrorMessage = "Пожалуйста, загрузите файл в формате .txt!"; } } else { ViewBag.ErrorMessage = "Пожалуйста, загрузите файл!"; } return(View("Index")); }