public async Task <IActionResult> Edit(int id, [Bind("IdStrony,LinkTytul,Tytul,Tresc,Pozycja")] Strona strona) { if (id != strona.IdStrony) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(strona); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!StronaExists(strona.IdStrony)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(strona)); }
public Węzeł(Ruch ruch, Węzeł ojciec, Plansza plansza, Strona strona) { this.ruch = ruch; this.ojciec = ojciec; this.plansza = (Plansza)plansza.Clone(); this.strona = strona; dzieci = new List <Węzeł>(); }
/// <summary> /// tworzenie nowej analizy /// </summary> /// <param name="plansza">plansza do analizowania</param> /// <param name="glebokoscAnalizy">glembokosc analizy</param> public Analiza(Plansza plansza, int glebokoscAnalizy) { this.plansza = plansza; this.strona = plansza.StronaGrajaca; this.glebokoscAnalizy = glebokoscAnalizy; RobDzieci(1); }
/// <summary> /// tworzenie bierki goniec /// </summary> /// <param name="pozycja">pozycja startowa bierki</param> /// <param name="kolor">kolor bierki bialy/czarny</param> /// <param name="plansza">plansza na ktorej bierka sie znajduje</param> /// <param name="pierwszyRuch">wartosc logiczna zawierajaca informacje o tym czy bierka wykonala juz jakis ruch</param> public Goniec(Punkt pozycja, Strona kolor, Plansza plansza, bool pierwszyRuch = true) { this.Nazwa = Bierki.Goniec; this.Pozycja = pozycja; this.Kolor = kolor; this.plansza = plansza; this.PierwszyRuch = pierwszyRuch; this.WartoscPunktowa = 3; }
/// <summary> /// tworzenie bierki wieza /// </summary> /// <param name="pozycja">pozycja startowa bierki</param> /// <param name="kolor">kolor bierki bialy/czarny</param> /// <param name="plansza">plansza na ktorej bierka sie znajduje</param> /// <param name="pierwszyRuch">wartosc logiczna zawierajaca informacje o tym czy bierka wykonala juz jakis ruch</param> public Wieza(Punkt pozycja, Strona kolor, Plansza plansza, bool pierwszyRuch = true) { this.Nazwa = Bierki.Wieża; this.Pozycja = pozycja; this.Kolor = kolor; this.plansza = plansza; this.PierwszyRuch = pierwszyRuch; this.WartoscPunktowa = 5; }
/// <summary> /// tworzenie bierki hetman /// </summary> /// <param name="pozycja">pozycja startowa bierki</param> /// <param name="kolor">kolor bierki bialy/czarny</param> /// <param name="plansza">plansza na ktorej bierka sie znajduje</param> /// <param name="pierwszyRuch">wartosc logiczna zawierajaca informacje o tym czy bierka wykonala juz jakis ruch</param> public Hetman(Punkt pozycja, Strona kolor, Plansza plansza, bool pierwszyRuch = true) { this.Nazwa = Bierki.Hetman; this.Pozycja = pozycja; this.Kolor = kolor; this.plansza = plansza; this.PierwszyRuch = pierwszyRuch; this.WartoscPunktowa = 9; }
/// <summary> /// konstruktor do kopiowania /// </summary> /// <param name="pozycja">Pozycja kopiowanej bierki</param> /// <param name="kolor">Kolor bierki</param> /// <param name="plansza">nowa plansza</param> /// <param name="pierwszyRuch">stan zmiennej pierwszy ruch</param> /// <param name="policzoneRuchy">policzone ruchy bierki</param> Goniec(Punkt pozycja, Strona kolor, Plansza plansza, bool pierwszyRuch, List <Punkt> policzoneRuchy, int kolejka) { this.Nazwa = Bierki.Goniec; this.Pozycja = pozycja; this.Kolor = kolor; this.plansza = plansza; this.PierwszyRuch = pierwszyRuch; this.WartoscPunktowa = 3; this.policzoneRuchy = policzoneRuchy; this.Kolejka = kolejka; }
public async Task <IActionResult> Create([Bind("IdStrony,LinkTytul,Tytul,Tresc,Pozycja")] Strona strona) { if (ModelState.IsValid) { _context.Add(strona); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(strona)); }
Analiza(Plansza plansza, Strona strona, int analizaNr, int glebokoscAnalizy, Punkt ruchZ, Punkt ruchDo) { void Koniec(Plansza.Status status) { switch (status) { case Plansza.Status.Mat: wartoscAnalizy = decimal.MaxValue; analiza = false; break; case Plansza.Status.Pat: wartoscAnalizy = 1; analiza = false; break; } }
void przydziel_pamięć_programowi(ref PCB pcb) //przydziela pamięć programowi, ramki/stronnice pozostają puste { int potrzeba_stron_na_kod = ile_potrzeba_ramek(pcb.Auto_storage_size); int potrzeba_stron_na_dane = ile_potrzeba_ramek(pcb.Auto_data_size); int potrzeba_stron_na_stos = ile_potrzeba_ramek(pcb.Auto_stack_size); int przyznano_ramek = ile_ramek_przydzielić(potrzeba_stron_na_kod + potrzeba_stron_na_dane + potrzeba_stron_na_stos); //przydzielam proporcjonalnie przydzielone dane kodowi, dane i stosowi int ramki_na_kod; int ramki_na_dane; int ramki_na_stos; if (przyznano_ramek == 0) { return; } if (przyznano_ramek > wolne_ramki.Count) { int ile_zwolnic = przyznano_ramek - wolne_ramki.Count; for (int i = 0; i < ile_zwolnic; i++) { wolne_ramki.Push(znajdź_i_zwolnij_najstarszą_ramkę()); } } int suma = potrzeba_stron_na_kod + potrzeba_stron_na_dane + potrzeba_stron_na_stos; ramki_na_kod = (int)Math.Ceiling((double)potrzeba_stron_na_kod / (double)suma * (double)przyznano_ramek); ramki_na_dane = (int)Math.Ceiling((double)potrzeba_stron_na_dane / (double)suma * (double)przyznano_ramek); ramki_na_stos = przyznano_ramek - ramki_na_kod; ramki_na_stos -= ramki_na_dane; int numerzbioru = wolne_zbiory.Pop(); List <Strona> TablicaStron = new List <Strona>(); if (potrzeba_stron_na_kod > 0) { pcb.Auto_storage_addres = numerzbioru * 1000; } for (int i = 0; i < ramki_na_kod; i++) { Strona strona = new Strona(); strona.numer = znajdź_wolną_ramkę(); strona.ochrona = true; strona.poprawność = true; strona.stempel_czasowy = getStempelCzasowy(); zapisz_ramkę(strona.numer, "KODKODKOD"); TablicaStron.Add(strona); } for (int i = ramki_na_kod; i < potrzeba_stron_na_kod; i++) { Strona strona = new Strona(); strona.numer = znajdź_wolną_stronnicę(); strona.ochrona = true; strona.poprawność = false; strona.stempel_czasowy = getStempelCzasowy(); zapisz_stronnicę(strona.numer, "KODKODKOD"); TablicaStron.Add(strona); } if (potrzeba_stron_na_dane > 0) { pcb.Auto_data_addres = numerzbioru * 1000 + potrzeba_stron_na_kod * konfiguracja.długość_ramki; } for (int i = 0; i < ramki_na_dane; i++) { Strona strona = new Strona(); strona.numer = znajdź_wolną_ramkę(); strona.ochrona = false; strona.poprawność = true; strona.stempel_czasowy = getStempelCzasowy(); zapisz_ramkę(strona.numer, "DANEDANE"); TablicaStron.Add(strona); } for (int i = ramki_na_dane; i < potrzeba_stron_na_dane; i++) { Strona strona = new Strona(); strona.numer = znajdź_wolną_stronnicę(); strona.ochrona = false; strona.poprawność = false; strona.stempel_czasowy = getStempelCzasowy(); zapisz_stronnicę(strona.numer, "DANEDANE"); TablicaStron.Add(strona); } if (potrzeba_stron_na_dane > 0) { pcb.Auto_stack_addres = numerzbioru * 1000 + potrzeba_stron_na_kod * konfiguracja.długość_ramki + potrzeba_stron_na_dane * konfiguracja.długość_ramki; } for (int i = 0; i < ramki_na_stos; i++) { Strona strona = new Strona(); strona.numer = znajdź_wolną_ramkę(); strona.ochrona = false; strona.poprawność = true; strona.stempel_czasowy = getStempelCzasowy(); zapisz_ramkę(strona.numer, "STOSSTOS"); TablicaStron.Add(strona); } for (int i = ramki_na_stos; i < potrzeba_stron_na_stos; i++) { Strona strona = new Strona(); strona.numer = znajdź_wolną_stronnicę(); strona.ochrona = false; strona.poprawność = false; strona.stempel_czasowy = getStempelCzasowy(); zapisz_stronnicę(strona.numer, "STOSSTOS"); TablicaStron.Add(strona); } TablicaZbiorów[numerzbioru] = TablicaStron; }
/// <summary> /// sterowanie grą /// </summary> static void MainGry(Strona side, bool bot = true) { //inicjalizuje plansze plansza = new Plansza(PromocjaPionka, KoniecGry); gra = true; KomputerowyPrzeciwnik komputerowyPrzeciwnik = new KomputerowyPrzeciwnik(plansza, 1); //rysowanie Console.Clear(); RysujPlansze(); //działanie while (gra) { if (bot && side == plansza.StronaGrajaca) { komputerowyPrzeciwnik.WykonajRuch(); RysujPlansze(); } switch (Console.ReadKey().Key) { case ConsoleKey.UpArrow: { Punkt staraPozycja = kursorPozycja; kursorPozycja = new Punkt(staraPozycja.X, staraPozycja.Y - 1); if (!kursorPozycja.Pomiedzy(7)) { kursorPozycja = staraPozycja; } RysujPole(staraPozycja); RysujPole(kursorPozycja); break; } case ConsoleKey.DownArrow: { Punkt staraPozycja = kursorPozycja; kursorPozycja = new Punkt(staraPozycja.X, staraPozycja.Y + 1); if (!kursorPozycja.Pomiedzy(7)) { kursorPozycja = staraPozycja; } RysujPole(staraPozycja); RysujPole(kursorPozycja); break; } case ConsoleKey.LeftArrow: { Punkt staraPozycja = kursorPozycja; kursorPozycja = new Punkt(staraPozycja.X - 1, staraPozycja.Y); if (!kursorPozycja.Pomiedzy(7)) { kursorPozycja = staraPozycja; } RysujPole(staraPozycja); RysujPole(kursorPozycja); break; } case ConsoleKey.RightArrow: { Punkt staraPozycja = kursorPozycja; kursorPozycja = new Punkt(staraPozycja.X + 1, staraPozycja.Y); if (!kursorPozycja.Pomiedzy(7)) { kursorPozycja = staraPozycja; } RysujPole(staraPozycja); RysujPole(kursorPozycja); break; } case ConsoleKey.Enter: if (mozliweRuchy.Contains(kursorPozycja)) { plansza.SprobujWykonacRuch(zaznaczenie, kursorPozycja); zaznaczenie = null; mozliweRuchy = new List <Punkt>(); if (gra) { RysujPlansze(); } } else if (plansza.BierkaNaPozycji(kursorPozycja, out Bierka bierka)) { if (bierka.Kolor == plansza.StronaGrajaca) { zaznaczenie = kursorPozycja; mozliweRuchy = bierka.PobMozliweRuchy; RysujPlansze(); } } break; case ConsoleKey.Q: Console.Clear(); return; } Console.CursorLeft = 0; Console.CursorTop = 0; } Console.Clear(); }