码迷,mamicode.com
首页 > 其他好文 > 详细

天生棋局(堆上申请二维空间的应用)

时间:2018-11-19 14:11:38      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:boa   turn   ini   表示   sizeof   rand   div   ntb   lib   

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 /*
 4     天生棋局
 5 */
 6 #define N 10
 7 //1.传入一个n在堆空间中产生n*n方格的棋盘(生成一个n*n的二维空间)
 8 int **createboard(int n)
 9 {
10     int **p = (int **)malloc(n*sizeof(int*));
11     for(int i = 0;i<n;i++)
12     {
13         p[i] = (int *)malloc(n*sizeof(int));
14     }
15     
16     return p;
17 }
18 //2.N颗棋子随机落在棋盘上<需要防止落在同一位置上>
19 void initboard(int **p,int n)
20 {
21     int i,j;
22     
23     i = rand()%N;
24     j = rand()%N;
25     p[i][j] = x;
26     n -= 1;
27     while(n--)
28     {
29         
30         i = rand()%N;
31         j = rand()%N;
32         while(p[i][j] == x)
33         {
34             i = rand()%N;
35             j = rand()%N;
36         }
37         p[i][j] = x;    
38     }
39 }
40 //3.打印棋盘,没旗子的用o表示,有棋子的用X表示
41 void printboard(int **p)
42 {
43     int i,j;
44     
45     for(i = 0;i<N;i++)
46     {
47         for(j = 0;j<N;j++)
48         {
49             if(p[i][j] == x)
50                 printf("%c\t",p[i][j]);
51             else
52                 printf("%c\t",o);
53         }
54         putchar(10);
55     }
56 }
57 int main(void)
58 {
59     int ** p = createboard(N);//生成N*N二维空间
60     initboard(p,20);//随机放入20个棋子
61     printboard(p);//打印棋盘
62     
63     return 0;
64 }

 

天生棋局(堆上申请二维空间的应用)

标签:boa   turn   ini   表示   sizeof   rand   div   ntb   lib   

原文地址:https://www.cnblogs.com/wangchaomahan/p/9982654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!