SHARE
TWEET

Untitled

a guest Jan 21st, 2019 54 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4.  
  5.  
  6. void printArray(int a[]){
  7.     for(int i = 0 ; i < 20;i++){
  8.         for(int j = 0; j < 20; j ++){
  9.             std::cout << a[20*i+j] << " ";
  10.         }
  11.         std::cout << std::endl;
  12.     }
  13. }
  14. int up(int idx){
  15.     return idx - 20;
  16. }
  17. int down(int idx){
  18.     return idx + 20;
  19. }
  20. int left(int idx){
  21.     return idx - 1;
  22. }
  23. int right (int idx){
  24.     return idx +1;
  25. }
  26. bool canUp(int idx,char arr[]){
  27.     if (idx < 20)
  28.         return false;
  29.     else if (arr[idx-20] == 'X')
  30.         return false;
  31.     else
  32.         return true;
  33. }
  34. bool canDown(int idx,char arr[]){
  35.     if (idx >= 380)
  36.         return false;
  37.     else if (arr[idx+20] == 'X')
  38.         return false;
  39.     else
  40.         return true;
  41. }
  42. bool canLeft(int idx,char arr[]){
  43.     if (idx % 20 == 0)
  44.         return false;
  45.     else if (arr[idx-1] == 'X')
  46.         return false;
  47.     else
  48.         return true;
  49. }
  50. bool canRight(int idx,char arr[]){
  51.     if (idx % 20 == 19)
  52.         return false;
  53.     else if (arr[idx+1] == 'X')
  54.         return false;
  55.     else
  56.         return true;
  57. }
  58. int move(int from, int to, char arr[]){
  59.     arr[to] = arr[from];
  60.     arr[from] = '-';
  61. }
  62.  
  63. int main(){
  64.     int n,t;
  65.     std::cin >> n;
  66.     std::cin >> t;
  67.  
  68.     char arr[400];
  69.     for(int i = 0 ; i < n ; i++){
  70.         for(int j = 0 ; j < n ; j++){
  71.             arr[20*i+j] = '-';
  72.         }
  73.     }
  74.     int people[n];
  75.  
  76.     for(int i = 0 ; i < n;i++){
  77.         int ran1 = rand()%400;
  78.         while(arr[ran1] != '-'){
  79.         ran1 = rand()%400;
  80.         }
  81.         people[i] = ran1;
  82.  
  83.     }
  84.     for(int i = 0 ; i < t; i++){
  85.         for(int j = 0 ; j < n;j++){
  86.             bool canMove = false;
  87.             int ran2;
  88.             while(!canMove){
  89.                 ran2 = rand()%4;
  90.                 switch(ran2){
  91.                 case 0:
  92.                     canMove = canUp(people[j],arr);
  93.                     break;
  94.                 case 1:
  95.                     canMove = canRight(people[j],arr);
  96.                     break;
  97.                 case 2:
  98.                     canMove = canDown(people[j],arr);
  99.                     break;
  100.                 case 3:
  101.                     canMove = canLeft(people[j],arr);
  102.  
  103.                 }
  104.             }
  105.             switch(ran2){
  106.                 case 0:
  107.                     move(people[j],up(people[j]),arr);
  108.                     people[j] = up(people[j]);
  109.                     break;
  110.                 case 1:
  111.                     move(people[j],right(people[j]),arr);
  112.                     people[j] = right(people[j]);
  113.                     break;
  114.                 case 2:
  115.                     move(people[j],down(people[j]),arr);
  116.                     people[j] = down(people[j]);
  117.                     break;
  118.                 case 3:
  119.                     move(people[j],left(people[j]),arr);
  120.                     people[j] = left(people[j]);
  121.  
  122.             }
  123.             Sleep(1000);
  124.         }
  125.     }
  126.  return 0;
  127. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top