Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.84 KB | None | 0 0
  1. #include "graphics.hpp"
  2. #include <vector>
  3. #include <fstream>
  4. #include <iostream>
  5. #include <cstdlib>
  6. #include <set>
  7.  
  8. using namespace genv;
  9. using namespace std;
  10.  
  11. typedef vector<vector<int> > mat_t;
  12.  
  13. int XX;
  14. int YY;
  15. int kindX=-1;
  16. int kindY;
  17. int celX;
  18. int celY;
  19.  
  20. void beolvas(mat_t &v, string fnev="terkep.txt")
  21. {
  22. ifstream fin(fnev);
  23. if(!fin.good()){
  24. cerr << fnev << " nem talalhato\n";
  25. exit(1);
  26. }
  27. fin >> XX >> YY;
  28. v.resize(XX);
  29. for(size_t i = 0; i < XX; ++i)
  30. {
  31. v[i].resize(YY);
  32. for(size_t j = 0; j < YY; ++j)
  33. {
  34. fin >> v[i][j];
  35. }
  36. }
  37. }
  38.  
  39. void kirajzol(const mat_t &v, canvas& c)
  40. {
  41. for(size_t i = 0; i < v.size(); ++i)
  42. {
  43. for(size_t j = 0; j < v[i].size(); ++j)
  44. {
  45. int g,b;
  46. int norm_h = 127+v[i][j];
  47. g = norm_h;
  48. if(v[i][j] < 0) b = 255+v[i][j];
  49. else b = 0;
  50. c << move_to(i,j) << color(0,g,b) << dot;
  51. }
  52. }
  53. c << refresh;
  54. }
  55.  
  56. void tr(canvas& out, canvas& background){
  57. out<<stamp(background,0,0);
  58. }
  59.  
  60. struct koord {
  61. int x,y;
  62. };
  63.  
  64. void iranyvektor_haladas(mat_t &terki, int &kindX, int &kindY, int &celX, int &celY) { ///mat_t & vekti // & kell???
  65. koord V;
  66. V.x=celX-kindX;
  67. V.y=celY-kindY;
  68.  
  69. cout << V.x << ',' << V.y << " lali" << endl;
  70. if(V.x==0 && V.y==0 && terki[kindX][kindY]>0) { ///ha ugyanaz a kiindulási és a célállomás--> tegyen egy pontot
  71. gout << move_to(kindX,kindY) << color(255,0,0) << dot<< refresh;
  72. }
  73. while(V.x!=0 || V.y!=0) { ///
  74. //cout << "nemar" << endl;
  75. //cout << V.y << " ez kell" << endl;
  76. if(V.x>0 && terki[celX-1][celY]>0 && celX-1>0 && celX-1<XX && celY>0 && celY<YY) { ///ha az irányvektor elsõ koordinátája + --> balra kell menni a célhoz
  77. gout << move_to(celX-1,celY) << color(255,0,0) << dot << refresh; ///
  78. celX-=1; /// kell?
  79. V.x-=1; ///
  80. }
  81. else if(V.x>0 && terki[celX][celY+1]>0 && celX>0 && celX<XX && celY+1>0 && celY+1<YY) { ///ha az irányvektor elsõ koordinátája + --> balra kell menni a célhoz
  82. gout << move_to(celX,celY+1) << color(255,0,0) << dot << refresh; ///
  83. celY+=1; /// kell?
  84. V.y+=1; ///
  85. }
  86. else if(V.x>0 && terki[celX-1][celY]>0 && celX-1>0 && celX-1<XX && celY>0 && celY<YY) { ///ha az irányvektor elsõ koordinátája + --> balra kell menni a célhoz
  87. gout << move_to(celX,celY-1) << color(255,0,0) << dot << refresh; ///
  88. celY-=1; /// kell?
  89. V.y-=1; ///
  90. }
  91. else if(V.x>0 && terki[celX+1][celY]>0 && celX+1>0 && celX+1<XX && celY>0 && celY<YY) { ///ha az irányvektor elsõ koordinátája + --> balra kell menni a célhoz
  92. gout << move_to(celX+1,celY) << color(255,0,0) << dot << refresh; ///
  93. celX+=1; /// kell?
  94. V.x+=1; ///
  95. }
  96. if(V.x<0 && terki[celX+1][celY]>0 && celX+1>0 && celX+1<XX && celY>0 && celY<YY) {
  97. gout << move_to(celX+1,celY) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  98. celX+=1;
  99. V.x+=1;
  100. }
  101. else if(V.x<0 && terki[celX][celY+1]>0 && celX>0 && celX<XX && celY+1>0 && celY+1<YY) {
  102. gout << move_to(celX,celY+1) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  103. celY+=1;
  104. V.y+=1;
  105. }
  106. else if(V.x<0 && terki[celX][celY-1]>0 && celX>0 && celX<XX && celY-1>0 && celY-1<YY) {
  107. gout << move_to(celX,celY-1) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  108. celY-=1;
  109. V.y-=1;
  110. }
  111. else if(V.x<0 && terki[celX-1][celY]>0 && celX-1>0 && celX-1<XX && celY>0 && celY<YY) {
  112. gout << move_to(celX-1,celY) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  113. celX-=1;
  114. V.x-=1;
  115. }
  116. if(V.y>0 && terki[celX][celY-1]>0 && celX>0 && celX<XX && celY-1>0 && celY-1<YY) {
  117. gout << move_to(celX,celY-1) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  118. celY-=1;
  119. V.y-=1;
  120. }
  121. else if(V.y>0 && terki[celX+1][celY]>0 && celX+1>0 && celX+1<XX && celY>0 && celY<YY) {
  122. gout << move_to(celX+1,celY) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  123. celX+=1;
  124. V.x+=1;
  125. }
  126. else if(V.y>0 && terki[celX-1][celY]>0 && celX-1>0 && celX-1<XX && celY>0 && celY<YY) {
  127. gout << move_to(celX-1,celY) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  128. celX-=1;
  129. V.x-=1;
  130. }
  131. else if(V.y>0 && terki[celX][celY+1]>0 && celX>0 && celX<XX && celY+1>0 && celY+1<YY) {
  132. gout << move_to(celX,celY+1) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  133. celY+=1;
  134. V.y+=1;
  135. }
  136. if(V.y<0 && terki[celX][celY+1]>0 && celX>0 && celX<XX && celY+1>0 && celY+1<YY) {
  137. gout << move_to(celX,celY+1) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  138. celY+=1;
  139. V.y+=1;
  140. }
  141. else if(V.y<0 && terki[celX+1][celY]>0 && celX+1>0 && celX+1<XX && celY>0 && celY<YY) {
  142. gout << move_to(celX+1,celY) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  143. celX+=1;
  144. V.x+=1;
  145. }
  146. else if(V.y<0 && terki[celX-1][celY]>0 && celX-1>0 && celX-1<XX && celY>0 && celY<YY) {
  147. gout << move_to(celX-1,celY) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  148. celX-=1;
  149. V.x-=1;
  150. }
  151. else if(V.y<0 && terki[celX][celY-1]>0 && celX>0 && celX<XX && celY-1>0 && celY-1<YY) {
  152. gout << move_to(celX,celY-1) << color(255,0,0) << dot<< refresh; ///színezés még lehet nem kell
  153. celY-=1;
  154. V.y-=1;
  155. }
  156. /*if(terki[celX][celY]<0 && terki[celX+1][celY]<0 && terki[celX-1][celY]<0 && terki[celX][celY+1]<0 && terki[celX][celY-1]<0 && terki[celX-1][celY-1]<0) {
  157. cout << "NEM LETEZIK SZARAZFOLDI UT A KET PONT KOZOTT!" << endl; ///
  158. }*/
  159.  
  160. ///cout << "maki" <<endl;
  161. ///cout << V.x << ' ' << V.y << endl;
  162. gout << refresh;
  163. }
  164. }
  165.  
  166. int main() {
  167.  
  168. mat_t terkep;
  169. beolvas(terkep);
  170. gout.open(XX, YY);
  171. canvas hatter(XX,YY);
  172. kirajzol(terkep,hatter);
  173. tr(gout, hatter);
  174. gout << refresh;
  175.  
  176. event ev;
  177. int szam=0;
  178. while (genv::gin >> ev && ev.keycode != key_escape) {
  179. ///tr(gout, hatter); /// ez kell ?
  180. if(ev.type == ev_mouse && ev.button == btn_left){
  181. if(terkep[ev.pos_x][ev.pos_y]>0){
  182.  
  183. kindX=ev.pos_x;
  184. kindY=ev.pos_y;
  185. gout << move_to(ev.pos_x,ev.pos_y) << color(255,0,0) << dot <<refresh;
  186. }
  187. }
  188. if(kindX!=-1 && ev.type == ev_mouse && ev.button == btn_right) {
  189. if(terkep[ev.pos_x][ev.pos_y]>0){
  190.  
  191. celX=ev.pos_x;
  192. celY=ev.pos_y;
  193. gout << move_to(ev.pos_x,ev.pos_y) << color(255,0,0) << dot <<refresh;
  194.  
  195.  
  196.  
  197. cout << "kiind:" << kindX << ',' << kindY << endl;
  198. cout << "cel:" << celX << ',' << celY << endl;
  199.  
  200. iranyvektor_haladas(terkep, kindX, kindY, celX, celY);
  201. gout << refresh;
  202. szam=szam+1;
  203. }
  204. }
  205. }
  206. gout << refresh;
  207. return 0;
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement