美文网首页
国际象棋棋盘问题与织布理论

国际象棋棋盘问题与织布理论

作者: b6aed1af4328 | 来源:发表于2016-09-23 21:51 被阅读19次

这可以说是织布理论的一个比较好的论证编程作品。

#include<stdio.h>
#include<stdlib.h>//
int main()
{
    //for (int i = 1; i <= 8; i++)
        /*  {
                for (int j = 1; j <= 8; j++)
                    if ((i + j) % 2 == 0)
                    {
                        printf(" ");
                    }
                    else
                    {
                        printf("*");
                    }
                printf("\n");

            }*/
    for (int c = 1; c <= 1000; c++)
    {
        int num;
        printf("请输入尺寸值");
        scanf_s("%d", &num);

        int num3[100], num4[100];
        int num5 = 0, num6 = 0;
        for (int i = 1; i <= num * 8; i = i + 1)
        {
            for (int j = 0; j <= 7; j = j + 2)
            {
                if (i >= (1 + num*j) && i <= (num + num*j))
                {
                    num3[num5] = i;
                    num5 += 1;
                    //printf("%d\n", num5);
                }
            }
            for (int m = 1; m <= 7; m = m + 2)
            {
                if (i >= (1 + num*m) && i <= (num + num*m))
                {
                    num4[num6] = i;
                    num6 += 1;
                    //  printf("%d\n", num6);
                }
            }
        }

        /*  for (int i = 0; i <= num5; i++)
            {
                printf("%d", num3[i]);

            }
            for (int i = 0; i <= num5; i++)
            {
                printf("%d", num4[i]);

            }*/

        int num1[8] = { 1,2,5,6,9,10,13,14 };
        int num2[8] = { 3,4,7,8,11,12,15,16 };
        for (int i = 1; i <= num * 8; i++)
        {
            for (int j = 1; j <= num * 8; j++)
            {
                for (int a = 0; a < num5; a++)
                {
                    for (int b = 0; b < num6; b++)
                    {
                        if (i == num3[a] && j == num4[b])
                        {
                            printf("*");
                        }
                        else if (i == num4[b] && j == num3[a])
                        {
                            printf("*");
                        }
                        //          /*  else
                        //              {
                        //                  printf(" ");
                        //              }*/  //确实不能一else了之,前后嵌套了4个for循环,忘记织布理论了?\n才是换行,也就是说,这for循环在一行里不停的打空格...
                        else if (i == num3[a] && j == num3[b])
                        {
                            printf(" ");
                        }
                        else if (i == num4[a] && j == num4[b])
                        {
                            printf(" ");
                        }

                    }
                }
            }
            printf("\n");
        }
    }
    system("pause");
    return 0;
}

相关文章

  • 国际象棋棋盘问题与织布理论

    这可以说是织布理论的一个比较好的论证编程作品。

  • 皇后问题相关算法分享

    问题介绍 介绍需要求解的问题 八皇后问题是一个以国际象棋为背景的问题: 如何能够在 8×8 的国际象棋棋盘上放置八...

  • Day12_13

    一.继承、多态、抽象类与方法和画图的综合运用 二.国际象棋棋盘

  • 回溯法(排列树)解决八(N)皇后问题

    问题描述: 八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后...

  • 递归解八皇后问题

    问题描述 八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇...

  • [算法]八皇后问题

    问题描述: 八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后...

  • 2018-08-10

    回溯法之n后问题 问题描述 在n x n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之...

  • 八皇后问题

      八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无...

  • LeetCode 1812. 判断国际象棋棋盘中一个格子的颜色

    题目 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘...

  • 394,经典的八皇后问题和N皇后问题

    八皇后的来源 八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇...

网友评论

      本文标题:国际象棋棋盘问题与织布理论

      本文链接:https://www.haomeiwen.com/subject/fqxxyttx.html