Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <allegro.h>
- #include <iostream>
- #include <fstream>
- using namespace std;
- int main()
- {
- fstream input;
- input.open("input.txt", ios::out | ios::in ); // otwieramy plik input.txt
- int N, NN;
- input >> N; // Wczytujemy pierwsą zmienną typu int oznaczającą liczbę wierszy w pliku
- NN = (N-1)*4-2; // Obliczamy faktyczny rozmiar jaki powinna mieć tablica.
- // N-1 - ponieważ nie bierzemy pod uwagę już lini pierwszej, która przechowuje ilość wierszty
- // *4 - ponieważ w każdej lini może być maksymalnie po 4 wartości int
- // -2 - ponieważ linia określająca wymiary okna posiada tylko dwie cyfry, a wcześniej założyliśmy, że każda ma mieć 4
- int *tab = new int[NN]; // Tworzymy tablicę o określonym rozmiarze
- for(int i=0; ; i++){ // czytamy plik
- if(input.good()) { // jeśli jakieś dane są w pliku
- input >> tab[i]; // to wczytujemy do tablicy
- cout << tab[i] << " "<<endl;
- }
- else{ // jeśli już nie ma nic w pliku
- break; // przerywamy pętlę.
- }
- }
- input.close(); // zamknięcie pliku
- allegro_init(); // startujemy allegro.h
- install_keyboard(); // dorzucamy obsługę klawiatury
- set_color_depth(32); // głebia kolorów dla okna
- set_gfx_mode(GFX_AUTODETECT_WINDOWED, tab[0], tab[1], 0, 0); // przełączenie w tryb "graficzny"
- BITMAP *buffer = create_bitmap(tab[0], tab[1]); // Tworzymy bitmapę o wymiarach podanych w pliku
- clear_to_color(buffer, 0x333333); // wypełnia bitmapę określonym kolorem
- for(int j=2; j<NN; j+=4){ // pobiera po 4 wartosci z tablicy - czyli współrzędne początka i końca pojedyńczej lini (x1,y1 ; x2,y2)
- line(buffer, tab[j], tab[j+1], tab[j+2], tab[j+3], 0x21D059); // rysuje linie na bitmapie buffer w pozycjach wczytanych z pliku o podanym kolorze
- }
- blit(buffer, screen, 0, 0, 0, 0, tab[0], tab[1]); // kopiuje jedną bitmapę na inną. W tym przypadku kopiuje buffer na nowa bitmapę screen
- readkey(); // czeka na wciśnięcie dodolnego klawisza - wylacza aplikacje okienkowa
- destroy_bitmap(buffer); // zwalniamy pamiec niszczac bitmapy
- return 0;
- }
- END_OF_MAIN();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement