Advertisement
Guest User

Untitled

a guest
Dec 21st, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. #include <allegro.h>
  2. #include <iostream>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6. int main()
  7. {
  8. fstream input;
  9. input.open("input.txt", ios::out | ios::in ); // otwieramy plik input.txt
  10. int N, NN;
  11. input >> N; // Wczytujemy pierwsą zmienną typu int oznaczającą liczbę wierszy w pliku
  12. NN = (N-1)*4-2; // Obliczamy faktyczny rozmiar jaki powinna mieć tablica.
  13. // N-1 - ponieważ nie bierzemy pod uwagę już lini pierwszej, która przechowuje ilość wierszty
  14. // *4 - ponieważ w każdej lini może być maksymalnie po 4 wartości int
  15. // -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
  16. int *tab = new int[NN]; // Tworzymy tablicę o określonym rozmiarze
  17.  
  18. for(int i=0; ; i++){ // czytamy plik
  19. if(input.good()) { // jeśli jakieś dane są w pliku
  20. input >> tab[i]; // to wczytujemy do tablicy
  21. cout << tab[i] << " "<<endl;
  22. }
  23. else{ // jeśli już nie ma nic w pliku
  24. break; // przerywamy pętlę.
  25. }
  26. }
  27.  
  28. input.close(); // zamknięcie pliku
  29. allegro_init(); // startujemy allegro.h
  30. install_keyboard(); // dorzucamy obsługę klawiatury
  31. set_color_depth(32); // głebia kolorów dla okna
  32. set_gfx_mode(GFX_AUTODETECT_WINDOWED, tab[0], tab[1], 0, 0); // przełączenie w tryb "graficzny"
  33. BITMAP *buffer = create_bitmap(tab[0], tab[1]); // Tworzymy bitmapę o wymiarach podanych w pliku
  34. clear_to_color(buffer, 0x333333); // wypełnia bitmapę określonym kolorem
  35.  
  36. 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)
  37. 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
  38. }
  39.  
  40. 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
  41. readkey(); // czeka na wciśnięcie dodolnego klawisza - wylacza aplikacje okienkowa
  42. destroy_bitmap(buffer); // zwalniamy pamiec niszczac bitmapy
  43. return 0;
  44. }
  45. END_OF_MAIN();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement