C# Wstęp

Wielomian

public class Wielomian
{
    private int stopień ;
    private double [] współczynniki = null;
 
    public Wielomian()
    {
        stopień = 0;
        współczynniki = new double[1] ;
        współczynniki[0] = 0;
    }
 
    public Wielomian(double[] współczynniki)
    {
        stopień = współczynniki.Length - 1;
        this.współczynniki = new double[współczynniki.Length];
        for(int i=0;i<współczynniki.Length;i++) this.współczynniki[i]=współczynniki[i];
    }
 
    public double Wartość(double x)
    {
        double y = 0;
        // tu obliczenia wartości
        return y;
    }
}

MSDN : System.Console

Tworzenie gier w konsoli Windows: Understanding C#: Use System.Console to build text-mode games By Andrew Stellman

using System;
 
class PositionText
{
     static void Main(string[] args)
     {
          Console.WriteLine("Witaj świecie!.");
          Console.Write("Podaj swoje imię: ");
          string text = Console.ReadLine();
          int left = Console.CursorLeft;
          int top = Console.CursorTop;
          Console.SetCursorPosition(15, 20);
          Console.Write("Witaj -> {0} <-", text);
          Console.SetCursorPosition(left, top);
          Console.WriteLine("Koniec.");
      }
}

Gra Life

Wikipedia: Gra_w_życie

Reguły:

  • plansza nieskończona (zawinięta góra/dół, lewo/prawo)
  • komórka, która ma dokładnie 3 żywych sąsiadów, staje się żywa w następnej jednostce czasu (rodzi się)
  • żywa komórka z 2 albo 3 żywymi sąsiadami pozostaje nadal żywa; przy innej liczbie sąsiadów umiera (z „samotności” albo „zatłoczenia”)

Utwórz klasę Plansza która zawiera stan gry oraz pozwala sterować przebiegiem gry.

Pola wymagane:

  • wymiary planszy (wysokość i szerokość, domyślnie 20×20)
  • ilość żywych komórek (zależy od losowania, domyślnie komórka jest inicjowana jako żywa z prawdopodobieństwem 1/4)
  • symbol (znak) reprezentujący żywą komórkę (domyślnie *)
  • plansza (tablica o odpowiednich wymiarach)

Inne możliwe pola opcjonalne:

  • kolor znaku, kolor tła planszy

Metody wymagane:

  • Konstruktory
    • domyślny
    • pozwalający zainicjować planszę o odpowiednich wymiarach oraz ustawić początkowy stan planszy dla danego prawdopodobieństwa pojawienia się żywej komórki.
    • (dla chętnych) jak wyżej + pozwalać określić znak wizualizujący żywą komórkę oraz kolorystykę (kolor znaku i tło).
  • Metoda inicjująca rozkład początkowy żywych komórek dla danej wartości prawdopodobieństwa pojawienia się żywej komórki w danej pozycji
  • Metoda pozwalająca wykonać jeden cykl (zmiana stanu na planszy)
  • Metoda rysująca aktualny stan planszy w konsoli (wyczyszczenie konsoli, narysowanie planszy oraz żywych komórek, wyświetlenie liczby żywych komórek oraz numeru cyklu
  • Metoda prywatna wyznaczająca liczbę sąsiadów dla danej komórku na pozycji [x,y].

Metody opcjonalne:

  • Metoda pozwalająca zapisać planszę do pliku tekstowego o podanej nazwie.
    Zobacz: System.IO klasy związane z obsługą wejścia-wyjścia, System.IO.FileStream, StreamWriter zapis do strumienia (np. do pliku)

Zaimplementuj program który wyświetli animację obrazującą proces rozwoju komórek na planszy.