static void Main(string[] args) { var ranglistaViewModel = new RanglistaViewModel(); var jatekosViewModel = new JatekosViewModel(); jatekos = jatekosViewModel.Jatekos; var palyaView = new PalyaViewModel(jatekosViewModel.Jatekos); var idoMero = new Timer(1000); idoMero.Elapsed += IdoMero_Mulas; JatekKezdetenekIdoPontja = DateTime.Now; idoMero.Start(); while (ElteltIdo.TotalMilliseconds <= jatekos.Jatekido) { palyaView.Leptetes(); } ranglistaViewModel.UjJatekeredmenyHozzaadasa(jatekos); Console.WriteLine(); ranglistaViewModel.RanglistaKiirasa(); Console.Read(); }
/// <summary> /// Adott sorIndex-től felfele a Palya beállításaihoz mérten null-ra állítja a játékos számára pontokat érő golyókat (és pontokat is ad a jétékosnak) /// </summary> /// <param name="palya"></param> /// <param name="palyaBeallitasok"></param> /// <param name="jatekos"></param> /// <param name="sorIndex"></param> /// <returns></returns> int AzonosSzinuGolyokEltuntetese(Palya palyaBeallitasok, Jatekos jatekos, int sorIndex) { Golyo[,] palya = palyaBeallitasok.Jatekter; int oszlopokSzama = palya.GetLength(1), legalsoModositottSorIndex = 0; for (int x = sorIndex; x >= 0; x--) { for (int y = oszlopokSzama - 1; y >= 0; y--) { int azonosSzinuGolyok = MegszamlalasTetel(palya, x, y); if (azonosSzinuGolyok >= palyaBeallitasok.MinEgyszinuGolyokSzama) { jatekos.Pontszam += azonosSzinuGolyok; PontokatEroGolyokEltuntetese(x, y, azonosSzinuGolyok); if (legalsoModositottSorIndex == 0) { legalsoModositottSorIndex = x; } } y -= azonosSzinuGolyok - 1; } } return(legalsoModositottSorIndex); }
/// <summary> /// Új játékos hozzáadása a ranglistához, majd ranglista rendezése, illetve mentése adattárolóra /// </summary> /// <param name="jatekos"></param> public void UjJatekeredmenyHozzaadasa(Jatekos jatekos) { ranglista.Add(jatekos); JavitottBeillesztesesRendezes(ranglista); RanglistaMenteseFajlba(); }
public PalyaViewModel(Jatekos jatekos) { Jatekos = jatekos; Palya = new Palya(Jatekos.SorokSzama, Jatekos.OszlopokSzama); PalyaFeltolteseSzinesGolyokkal(); PalyaView = new PalyaView(Palya.Jatekter); }
/// <summary> /// Ranglista kiíratása a képernyőre /// </summary> public void UiFrissitese() { Console.WriteLine("{0, 5}{1, 20}{2, 10}{3, 10}", "#", "Név", "Játékidő", "Pontszám"); for (int i = 0; i < Ranglista.Count; i++) { Jatekos jatekos = Ranglista[i]; Console.WriteLine("{0, 5}{1, 20}{2, 10}{3, 10}", (i + 1), jatekos.Nev, jatekos.Jatekido, jatekos.Pontszam); } }
public JatekosViewModel() { View = new JatekosView(); #if DEBUG string jatekosNeve = "PoLáKoSz"; int jatekidoPercben = 2; int sorokSzama = 5; int oszlopokSzama = 10; #else string jatekosNeve = View.JatekosnevBekerese(); int jatekidoPercben = View.JatekidoBekerese(); int sorokSzama = View.SorokBekerese(); int oszlopokSzama = View.OszlopokBekerese(); #endif Jatekos = new Jatekos(jatekosNeve, jatekidoPercben * 60 * 1000, sorokSzama, oszlopokSzama); }
/// <summary> /// Ranglista a játék időtartama és azon belül a játékos pontszáma szerinti rendezése /// Lista első helyére kerül a leghosszabb ideig játszó, legtöbb pontot elért játékos /// </summary> /// <param name="x"></param> void JavitottBeillesztesesRendezes(List <Jatekos> x) { for (int i = 1; i < x.Count; i++) { int j = i - 1; Jatekos seged = x[i]; while ((j >= 0) && (x[j].Jatekido < seged.Jatekido || (x[j].Jatekido == seged.Jatekido && x[j].Pontszam < seged.Pontszam))) { x[j + 1] = x[j]; j--; } x[j + 1] = seged; } }
void KorabbiRanglistaBetolteseFajlbol() { string[] sorok = txtFajlmuveletek.FajlSorainakBeolvasasa(); if (sorok.Length == 0) { ranglista = new List <Jatekos>(); } else { ranglista = new List <Jatekos>(); foreach (string sor in sorok) { ranglista.Add(Jatekos.Parse(sor)); } } }
public override bool Equals(object obj) { if (obj == null || obj.GetType() != typeof(Jatekos)) { return(false); } Jatekos jatekos2 = (Jatekos)obj; if (!Nev.Equals(jatekos2.Nev) || Jatekido != jatekos2.Jatekido || SorokSzama != jatekos2.SorokSzama || OszlopokSzama != jatekos2.OszlopokSzama || Pontszam != jatekos2.Pontszam) { return(false); } return(true); }