public void priradObjektIfBloku(Objekt o) { IfBlok blok = null; for (int i = 0; i < ifBloky.Count; i++) { IfBlok tempBlok = ifBloky[i]; if (tempBlok.jeVBloku(o.getX(), o.getY())) { if (blok == null) { blok = tempBlok; } else if (o.getX() - blok.getX() > o.getX() - tempBlok.getX()) { blok = tempBlok; } } } if (blok != null) { if (!blok.objekty.Contains(o)) { blok.objekty.Add(o); o.ifBlok = blok; } } else if (o.ifBlok != null) { o.ifBlok.objekty.Remove(o); } }
public void priradCiarovuBodkuIfBloku(CiaraBodka mb) { IfBlok blok = null; for (int i = 0; i < ifBloky.Count; i++) { IfBlok tempBlok = ifBloky[i]; if (tempBlok.jeVBloku(mb.getX(), mb.getY())) { if (blok == null) { blok = tempBlok; } else if (mb.getX() - blok.getX() > mb.getX() - tempBlok.getX()) { blok = tempBlok; } } } if (blok != null) { if (!blok.ciaroveBodky.Contains(mb)) { blok.ciaroveBodky.Add(mb); mb.ifBlok = blok; } } else if (mb.ifBlok != null) { mb.ifBlok.ciaroveBodky.Remove(mb); } }
void MainFormMouseMove(object sender, MouseEventArgs e) { if (tahaj != "") { modul.objekty[click].setX(e.X); modul.objekty[click].setY(e.Y); } else if (clickRozmery != "") { IfBlok temp = (IfBlok)modul.objekty[clickRozmery]; if (e.X > temp.getX() && e.Y > temp.getY()) { temp.x2 = e.X; temp.y2 = e.Y; } } else if (clickBodka != null) { tempCiara.tempBodka.setX(e.X); tempCiara.tempBodka.setY(e.Y); } else if (clickMalaBodka != null) { clickMalaBodka.setX(e.X); clickMalaBodka.setY(e.Y); } else { return; } aktualizujPlochu(); }
void vytvorOperaciu(object sender, EventArgs e, String op) { Objekt temp; String id = modul.getOpId(op); if (op == "if") { IfBlok blok = new IfBlok(clickX, clickY, clickX + 100, clickY + 100, id); modul.ifBloky.Add(blok); temp = blok; } else if (op == "in" || op == "out") { temp = new IoOperacia(clickX, clickY, id, op); } else if (op == "const") { temp = new Konst(clickX, clickY, id, op, 1, 32, null); } else if (op == "change") { temp = new ZmenaBitov(clickX, clickY, id, 1, 32); } else if (op == "concat") { temp = new Zretazenie(clickX, clickY, id); } else if (op == "index") { temp = new Index(clickX, clickY, id); } else if (op == "reverse") { temp = new OtocenieBitov(clickX, clickY, id); } else if (op == "mod") { temp = new Modulo(clickX, clickY, id); } else if (op == "inc" || op == "dec") { temp = new IncDecOperacia(clickX, clickY, id, op); } else { temp = new Operacia(clickX, clickY, id, op); } temp.setM(modul); modul.objekty.Add(id, temp); aktualizujPlochu(); }
void MainFormMouseUp(object sender, MouseEventArgs e) { nastavRozmery(); if (tahaj != "") { modul.priradObjektIfBloku(modul.objekty[tahaj]); } else if (clickRozmery != "") { IfBlok blok = (IfBlok)modul.objekty[clickRozmery]; blok.aktualizuj(); clickRozmery = ""; } tahaj = ""; }
public void zmazObjekt(String objektIndex) { foreach (Objekt o in objekty.Values) { for (int j = 0; j < o.ciary.Length; j++) { if (o.ciary[j] == null) { continue; } if (o.ciary[j].bodkaVystup.obj.id == objekty[objektIndex].id) { o.ciary[j] = null; } } } if (objekty[objektIndex] is IfBlok) { IfBlok blok = (IfBlok)objekty[objektIndex]; foreach (Objekt o in blok.objekty) { o.ifBlok = blok.ifBlok; } foreach (CiaraBodka mb in blok.ciaroveBodky) { mb.ifBlok = blok.ifBlok; } if (blok.ifBlok != null) { blok.ifBlok.objekty.AddRange(blok.objekty); blok.ifBlok.ciaroveBodky.AddRange(blok.ciaroveBodky); } blok.objekty = null; blok.ciaroveBodky = null; ifBloky.Remove(blok); } objekty.Remove(objektIndex); }
void MainFormMouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { clickX = e.X; clickY = e.Y; clickBodka = null; tempCiara = null; aktualizujPlochu(); return; } if (clickBodka != null) { foreach (var o in modul.objekty.Values) { foreach (var b in o.bodky) { if (clickBodka == b) { continue; } if (b.isClick(e.X, e.Y)) { clickBodka.obj.ciary[clickBodka.id] = new Ciara(tempCiara.bodkaVstup, b, tempCiara.cesta); clickBodka.obj.bodky[clickBodka.id].stav = Brushes.LawnGreen; clickBodka = null; tempCiara = null; aktualizujPlochu(); return; } } if (o.ciary == null) { continue; } foreach (var c in o.ciary) { if (c == null || c.cesta == null) { continue; } for (int i = 0; i < c.cesta.Count; i++) { if (c.cesta[i].isClick(e.X, e.Y)) { for (int j = i; j < c.cesta.Count; j++) { tempCiara.cesta.Add(c.cesta[j]); c.cesta[j].ciary.Add(tempCiara); } tempCiara.bodkaVystup = c.bodkaVystup; clickBodka.obj.ciary[clickBodka.id] = tempCiara; clickBodka.obj.bodky[clickBodka.id].stav = Brushes.LawnGreen; clickBodka = null; tempCiara = null; aktualizujPlochu(); return; } } } } List <Ciara> temp = new List <Ciara> { tempCiara }; CiaraBodka malaBodka = new CiaraBodka(e.X, e.Y, temp); tempCiara.cesta.Add(malaBodka); aktualizujPlochu(); return; } if (clickMalaBodka != null) { clickMalaBodka.prepniAktivnost(); aktualizujPlochu(); modul.priradCiarovuBodkuIfBloku(clickMalaBodka); clickMalaBodka = null; return; } foreach (Objekt o in modul.objekty.Values) { if (o.isClick(e.X, e.Y)) { resetOpVlastnosti(); click = o.id; tahaj = o.id; nastavOpVlastnosti(o); return; } if (o is IfBlok) { IfBlok temp = (IfBlok)o; if (temp.isClick2(e.X, e.Y)) { clickRozmery = o.id; return; } } for (int j = 0; j < o.bodky.Length; j++) { if (o.bodky[j].stav == Brushes.Black) { continue; } if (o.bodky[j].isClick(e.X, e.Y)) { clickBodka = o.bodky[j]; tempCiara = new TempCiara(clickBodka, new Bodka(e.X, e.Y, 4)); return; } } if (o.ciary == null) { continue; } for (int j = 0; j < o.ciary.Length; j++) { if (o.ciary[j] == null) { continue; } if (o.ciary[j].cesta == null) { continue; } for (int k = 0; k < o.ciary[j].cesta.Count; k++) { if (o.ciary[j].cesta[k].isClick(e.X, e.Y)) { clickMalaBodka = o.ciary[j].cesta[k]; clickMalaBodka.prepniAktivnost(); return; } } } } resetOpVlastnosti(); }