Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int ilosc=10; //ilosc kwadratow
- int a; // bok kwadratu na osi oraz przesunecie mrowki
- int gora=0;
- int prawo=1;
- int dol=2;
- int lewo=3;
- int biale;
- int czarne;
- boolean tab [][] = new boolean [ilosc][ilosc]; //tablica do zmiany koloru
- PImage antImage;
- ArrayList<Ant> ants = new ArrayList<Ant>(); //lista z przechowywanym obiektem Ants
- void setup() {
- frameRate(1);
- size(400, 400);
- background(255);
- a=width/ilosc;
- antImage = loadImage("mrowkabeztla.png");
- //for (int i = 0; i<1; i++) {
- ants.add(new Ant(5, 5)); //ustawienie mrowek po przekatnej
- //}
- }
- void draw() {
- for (int i=0; i<ilosc; i++) {
- for (int j=0; j<ilosc; j++) {
- if (tab[i][j]==true) { //1 -> czarne
- fill(0);
- } else {
- fill(255);
- }
- rect(a*j, a*i, a, a);
- print(tab[i][j] + " ");
- }
- println();
- }
- println("x " + ants.get(0).x + ":" + ants.get(0).y);
- for (int i = 0; i<1; i++) {
- ants.get(i).draw();
- }
- }
- class Ant {
- //pozycja
- int x;
- int y;
- int kierunek;
- Ant(int x, int y) {
- this.x = x;
- this.y = y;
- }
- //metoda przemieszczajaca mrowke //przesuwanie nie o piksele a kwadraty -> latwiejsze sprawdzanie na jakim polu stoi mrowka
- void ustawPozycje(int x, int y) {
- this.x = x;
- this.y = y;
- }
- void ustawKierunek(int kierunek) {
- this.kierunek = kierunek;
- }
- void idz() {
- if (kierunek==gora) {
- y--;
- } else if (kierunek==dol) {
- y++;
- } else if (kierunek==prawo) {
- x++;
- } else if (kierunek==lewo) {
- x--;
- }
- if (tab[x][y] == true) {
- tab[x][y] = false;
- ruchWPrawo();
- } else if (tab[x][y]==false) {
- tab[x][y] = true;
- ruchWLewo();
- }
- }
- //metoda opisujaca ruch mrowki wg zasad
- //metoda na ruch w prawo (wg wskazowek zegara) <=> gdy stanie na białym polu->zmiana na czarny
- void ruchWPrawo() {
- if (kierunek==prawo) {
- kierunek=dol;
- } else if (kierunek==dol) {
- kierunek=lewo;
- } else if (kierunek==lewo) {
- kierunek=gora;
- } else if (kierunek==gora) {
- kierunek=prawo;
- }
- //}
- }
- //metoda na ruch w lewo (przeciwnie do wskazowek zegara) <=> gdy stanie na czarnym polu -> zamiana na biale
- void ruchWLewo() {
- if (kierunek==prawo) {
- kierunek=gora;
- } else if (kierunek==gora) {
- kierunek=lewo;
- } else if (kierunek==lewo) {
- kierunek=dol;
- } else if (kierunek==dol) {
- kierunek=prawo;
- }
- }
- void draw() {
- image(antImage, (x-1)*a, (y-1)*a, a, a);
- idz();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement