C# Wstęp
Typy danych
-
bool, char, int, double, …
-
-
klasy
interfejsy
string
tablice
-
Klasy
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;
}
}
System.Console
MSDN : System.Console
Tworzenie gier w konsoli Windows: Understanding C#: Use System.Console to build text-mode games By Andrew Stellman
Hello World
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.");
}
}
Zadania
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:
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.