static void Feladat5() { // a fekete szín var fekete = new Szin(0, 0, 0); // végigmegyünk minden képponton for (int i = 0; i < kep.Length; i++) { // meghatározzuk, hogy az melyik sorban/oszlopban található // a sorhoz az i-t 50-el osztjuk (egy sorban található színek száma) // 0-49=0, 50-99=1, ..., 2450-2499 = 49 var sor = i / 50; // az oszlophoz az 50-el való osztás maradékát vesszük // 0 mod 50 = 0, 1 mod 50 = 1, ... 49 mod 50 = 49, 50 mod 5 = 0, stb var oszlop = i % 50; // a három képpontos kerethez az elsö 3 és utolsó 3 teljes sort, // minden más sorban az elsö 3 és utolsó 3 pontot kell feketévé alakítani // elsö 3 sor: sor < 3 (0, 1, 2) // utolsó 3 sor: sor > 46 (47, 48, 49) // elsö 3 oszlop: oszlop < 3 (0, 1, 2) // utolsó 3 oszlop: oszlop > 46 (47, 48, 49) if (sor < 3 || sor > 46 || oszlop < 3 || oszlop > 46) { kep[i] = fekete; } } }
public static ObservableCollection <Babu> InitBabuk(Szin szin) { int sor = szin == Szin.feher ? 7 : 0; ObservableCollection <Babu> babuk = new ObservableCollection <Babu>() { new Bastya(sor, 0, szin), new Bastya(sor, 7, szin), new Lo(sor, 1, szin), new Lo(sor, 6, szin), new Futo(sor, 2, szin), new Futo(sor, 5, szin), new Kiraly(sor, 4, szin), new Kiralyno(sor, 3, szin) }; if (szin == Szin.feher) { sor--; } else { sor++; } for (int i = 0; i < 8; i++) { babuk.Add(new Gyalog(sor, i, szin)); } return(babuk); }
public Babu(int x, int y, Szin color) { xpozicio = x; ypozicio = y; aktiv = true; this.Szin = color; }
public Emelet(int start, int end, Szin color, string gardanev) { Start = start; End = end; Color = color; Gardanev = gardanev; }
// A játékos megnézi van-e adott színű kártyája public bool VanAdottSzinuKartyaja(Szin szin) { foreach (Kartya k in Kartyak) { if (k.Szin == szin) { return(true); } } return(false); }
public Besorolando(string nev, int irsz, string neptun, string nem, string gszoba, string kartya, int szoba, string garda, Szin szin) { this.Nev = nev; this.Irsz = irsz; this.Neptun = neptun; this.Nem = nem; this.GSzoba = gszoba; this.Kartya = kartya; this.Szoba = szoba; this.Garda = garda; this.Szin = szin; }
// Formázó metódus.. Rövidít ha kell a kompakt kiírás érdekében public String KartyaNeve() { StringBuilder sb = new StringBuilder(); sb.Append(Szin.ToString()[0] + ":"); if (Ertek.ToString().Length > 4) { sb.Append(Ertek.ToString()[0]); } else { sb.Append(Ertek.ToString()); } return(sb.ToString()); }
static void Feladat1() { // a fájl egyes sorai var sorok = System.IO.File.ReadAllLines(Be); // annyi szín van, ahány sor a fájlban kep = new Szin[sorok.Length]; for (int i = 0; i < sorok.Length; i++) { var sor = sorok[i].Split(' '); kep[i] = new Szin( byte.Parse(sor[0]), // R byte.Parse(sor[1]), // G byte.Parse(sor[2]) // B ); } }
static void Feladat4() { Feladat4(); // a színek találatai int voros = 0, zold = 0, kek = 0; // a keresett színek Szin r = new Szin(255, 0, 0), g = new Szin(0, 255, 0), b = new Szin(0, 0, 255); for (int i = 0; i < kep.Length; i++) { // ha a képpont színe vörös, megnöveljük a vörös találatok számát if (r.Azonos(kep[i])) { voros++; } // különben ha zöld, akkör a zöld találatok számát else if (g.Azonos(kep[i])) { zold++; } // különben ha kék, akkör a kék találatok számát else if (b.Azonos(kep[i])) { kek++; } } Console.Write("A képen legtöbbször elöforduló szín a "); // a több vörös képpont van mint zöld és kék, akkor a vörös szint írjuk ki if (voros >= zold && voros >= kek) { Console.WriteLine("vörös."); } // különben ha több zöld van, mint vörös és kék, akkor a zöld színt írjuk ki else if (zold >= voros && zold >= kek) { Console.WriteLine("zöld."); } // különben a kék színek száma vagy több, vagy egyenlö a vörös és zöld színek számával // mivel csak az egyik színt kell kiírni, ezért a kéket írjuk ki else { Console.WriteLine("kék."); } }
public Kartya(Szin szin, Ertek ertek) { this.Szin = szin; this.Ertek = ertek; }
static void Feladat7() { Kiir(7); // a keresett szín var sarga = new Szin(255, 255, 0); // a bal felsö és a jobb alsó képpont indexe int balFelso = -1, jobbAlso = -1; // végigmegyünk minden képponton for (int i = 0; i < kep.Length; i++) { // ha a szín sárga if (kep[i].Azonos(sarga)) { // ha ez az elsö sárga képpont, eltároljuk az indexét a bal felsö változóban // a jobb alsó képpontot is eltároljuk if (balFelso == -1) { balFelso = jobbAlso = i; } // különben ha még ugyanabban a sorban vagyunk, mint az elsö sárga képpont // akkor a jobb alsó képpont értékét egyel növeljük else if (balFelso - balFelso % 50 + 50 > i) { jobbAlso++; } // különben vagy sort váltottunk, ezért befejezzük a ciklust else { break; } } // különben ha már találtunk egy sárga pontot, // akkor még ugyanabban a sorban vagyünk, de a szín már nem sárge // kilépünk a ciklusból else if (balFelso > -1) { break; } } // a két változóban most a téglalap bal felsö és jobb felsö pontja található // most meg kell állapítanunk a téglalap magasságát // ehhez végigmegyünk azon az oszlopon, amelyben a jobb felsö képpont található // ezt ugyanúgy végezzük el, mint a 3. feladatban // csak nem az elsö sortól kezdünk, hanem a jobb felsö pont utáni sortól for (int i = jobbAlso + 50; i < kep.Length; i += 50) { // ha a szín még sárga // akkor eltároljuk az indexét if (kep[i].Azonos(sarga)) { jobbAlso = i; } // különben végeztünk a ciklussal else { break; } } Console.WriteLine("A sárga téglalap helye és mérete:"); // a téglalap helye: // x (oszlop): balFelso % 50 // y (sor): balFelso / 50 // szélesség: jobbAlso % 50 - x (a jobb alsó képpont oszlopa - x) // magasság: jobbAlso / 50 - y (a jobb alsó képpont sora - y) int x = balFelso % 50, y = balFelso / 50, szelesseg = jobbAlso % 50 - x, magassag = jobbAlso / 50 - y; // a bal felsö képpont pozíciója, +1 mert a tömb indexelése 0-val kezdödik, de a kiírásnál 1-el Console.WriteLine($"Kezd: {y + 1}, {x + 1}"); // a jobb alsó képpont pozíciója (balFelso + szelesseg|magassag + 1), szintén +1 Console.WriteLine($"Vége: {y + magassag + 1}, {x + szelesseg + 1}"); // a képpontok száma (a téglalap területe), +1 mert a "0." sort/oszlopot is figyelembe kell venni Console.WriteLine($"Képpontok száma: {(szelesseg + 1) * (magassag + 1)}"); }
// megadja, hogy ez a szín egy másikkal azonos-e public bool Azonos(Szin masik) { return(R == masik.R && G == masik.G && B == masik.B); }
public Lo(int x, int y, Szin szin) : base(x, y, szin) { this.tipus = BabuTipus.lo; }
public Bastya(int x, int y, Szin szin) : base(x, y, szin) { this.tipus = BabuTipus.bastya; }
public Gyalog(int x, int y, Szin szin) : base(x, y, szin) { this.tipus = BabuTipus.gyalog; }
public Szinespont(int x, int y, Szin szin) : base(x, y) { Szin = szin; }
public Szinespont() : base(0, 0) { Szin = Szin.Piros; }
//Konstruktor public Kartya(Szin szin, FiguraErtek figuraErtek) { this.szin = szin; this.figuraErtek = figuraErtek; }
public ParhuzamosJatekos(string name, Szin szin, Jatekos ellenfel) : base(name, szin) { this.ellenfel = ellenfel; }
//konstruktor public Kartya(Szin szin, Figura figura) { this.szin = szin; this.figura = figura; int ertek = (int)figura; }
public Futo(int x, int y, Szin szin) : base(x, y, szin) { this.tipus = BabuTipus.futo; }
public Szinespont(Szin szin) : base(0, 0) { Szin = szin; }
public Kiraly(int x, int y, Szin szin) : base(x, y, szin) { this.tipus = BabuTipus.kiraly; }
public Babu(Szin szin, char jel) { this.szin = szin; this.jel = jel; }
public Jatekos(string name, Szin szin) { this.Name = name; this.Szin = szin; this.Babuk = Util.InitBabuk(szin); }