Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <string.h>
  6. #include <math.h>
  7.  
  8. void initMatrix();
  9. void newNumber(int*);
  10. void cloneMat(void*,void*);
  11. void printMat();
  12. char *ctrAlign(int, char, char*);
  13. bool isFree(int, int, int*);
  14. char *my_itoa(int);
  15.  
  16. int matrix[4][4];
  17.  
  18. void initMatrix(){
  19. int x,y;
  20. for (x=0; x<4; x++){
  21. for(y=0; y<4; y++){
  22. matrix[x][y] = 0;
  23. }
  24. }
  25. }
  26.  
  27. char *my_itoa(int i){
  28. char *a;
  29. sprintf(a, "%d", i);
  30. return a;
  31. }
  32.  
  33. void newNumber(int * mat){
  34. int x, y, n;
  35. do {
  36. srand(time(NULL));
  37. x = rand() % 4;
  38. srand(time(NULL));
  39. y = rand() % 4;
  40. } while (!isFree(x, y, mat));
  41. srand(time(NULL));
  42. n = rand() % 10;
  43. mat[x][y] = n<8? 2: 4;
  44. }
  45.  
  46. void cloneMat (void * desMat, void * srcMat){
  47. memcpy(desMat, srcMat, sizeof(srcMat));
  48. }
  49.  
  50. bool isFree(int x, int y, int * mat){
  51. if(mat[x][y]){
  52. return true;
  53. }
  54. return false;
  55. }
  56.  
  57. char *ctrAlign(int space, char spacer, char *text ){
  58. int i,l, s;
  59. char * string;
  60. string = malloc((space+1)*sizeof(char));
  61. for (i=0; i<space; i++){
  62. string[i] = spacer;
  63. }
  64. string[i]='\0';
  65. l = strlen(text);
  66. i=0;
  67. for (s=floor(space/2-l/2); i<l; s++){
  68. string[s] = text[i];
  69. i++;
  70. }
  71. return string;
  72. }
  73.  
  74. void printMat(){
  75. int x,y;
  76. for(x=0;x<4;x++){
  77. printf("+-----+-----+-----+-----+\n");
  78. printf("| | | | |\n");
  79. printf("| | | | |\n");
  80. for(y=0;y<4;y++){
  81. printf("|%s", ctrAlign(5, ' ', my_itoa(matrix[x][y])));
  82. }
  83. printf("|\n");
  84. printf("| | | | |\n");
  85. printf("| | | | |\n");
  86.  
  87. }
  88. printf("+-----+-----+-----+-----+\n");
  89. }
  90.  
  91. int main(int argc, char *argv[]) {
  92. initMatrix();
  93. newNumber(matrix);
  94. system("clear");
  95. printMat();
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement