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


     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	",p[i][j]);
    51             else
    52                 printf("%c	",'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 }
  • 相关阅读:
    PHP 学习轨迹
    beego 遇到的一些问题
    Fiddler 502问题
    SourceTree
    Trait
    PHP PSR 标准
    解决MySQL联表时出现字符集不一样
    Git 代码管理命令
    PHP 运行相关概念
    CentOS 7
  • 原文地址:https://www.cnblogs.com/wangchaomahan/p/9982654.html
Copyright © 2020-2023  润新知