POJ 2996 Help Me with the Game (模拟)

POJ 2996 Help Me with the Game (模拟)题目链接:http://poj.org/problem?id=2996POJ训练计划中的模拟都是非常棒的模拟,也非常有代表性。这个题讲的是给你一个国际象棋棋盘,敲代码打印出黑白两方的棋子。以及棋子的坐标。可是须要注意的国际棋盘的坐标问题例如以下图这个国际棋盘能够看到数字轴和字母轴的方向以及增减关系。所以在这个题的统计的时候须要进行坐标转换。由于已经做过类似的方法…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

题目链接:http://poj.org/problem?

id=2996

POJ训练计划中的模拟都是非常棒的模拟,也非常有代表性。

这个题讲的是给你一个国际象棋棋盘,敲代码打印出黑白两方的棋子。以及棋子的坐标。

可是须要注意的国际棋盘的坐标问题

例如以下图这个国际棋盘

POJ 2996 Help Me with the Game (模拟)

能够看到数字轴和字母轴的方向以及增减关系。

所以在这个题的统计的时候须要进行坐标转换。由于已经做过类似的方法了,这个也不是问题。

 

总之就是个模拟,代码例如以下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

struct node
{
    char x,y;
}zb[10000];

char MAP[20][40];

int cmp (const void * a,const void * b)
{
    struct node *ta = (struct node *)a;
    struct node *tb = (struct node *)b;

    if (ta->y == tb->y)
        return ta->x - tb->x;

    return ta->y - tb->y;
}

int cmp1 (const void * a,const void * b)
{
    struct node *ta = (struct node *)a;
    struct node *tb = (struct node *)b;

    if (ta->y == tb->y)
        return ta->x - tb->x;

    return tb->y - ta->y;
}

int fin(char c)
{
    int i,k;
    int s = 0;
    int x = 0,y = 0;;
    for (i = 1,y = 0;i < 17;y++,i += 2)
    {
        for (k = 2,x = 0;k < 33;x++,k += 4)
            if (MAP[i][k] == c)
            {
                zb[s].x = x;
                zb[s++].y = 8 - y;
                //printf ("!%d - %d!\n",x,8 - y);
            }
    }

    return s;
}

int main()
{
    int i,k;
    int n;
    for (i = 0;i < 17;i++)
        scanf ("%s",MAP[i]);

    printf ("White: ");

    n = fin('K');
    qsort (zb,n,sizeof (zb[0]),cmp);
    for (i = 0;i < n;i++)
        printf ("K%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('Q');
    qsort (zb,n,sizeof (zb[0]),cmp);
    for (i = 0;i < n;i++)
        printf ("Q%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('R');
    qsort (zb,n,sizeof (zb[0]),cmp);
    for (i = 0;i < n;i++)
        printf ("R%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('B');
    qsort (zb,n,sizeof (zb[0]),cmp);
    for (i = 0;i < n;i++)
        printf ("B%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('N');
    qsort (zb,n,sizeof (zb[0]),cmp);
    for (i = 0;i < n;i++)
        printf ("N%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('P');
    qsort (zb,n,sizeof (zb[0]),cmp);
    for (i = 0;i < n;i++)
    {
        printf ("%c%d",zb[i].x + 'a',zb[i].y);

        if (i < n - 1)
            printf(",");
        else
            printf ("\n");
    }

    printf ("Black: ");

    n = fin('k');
    qsort (zb,n,sizeof (zb[0]),cmp1);
    for (i = 0;i < n;i++)
        printf ("K%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('q');
    qsort (zb,n,sizeof (zb[0]),cmp1);
    for (i = 0;i < n;i++)
        printf ("Q%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('r');
    qsort (zb,n,sizeof (zb[0]),cmp1);
    for (i = 0;i < n;i++)
        printf ("R%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('b');
    qsort (zb,n,sizeof (zb[0]),cmp1);
    for (i = 0;i < n;i++)
        printf ("B%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('n');
    qsort (zb,n,sizeof (zb[0]),cmp1);
    for (i = 0;i < n;i++)
        printf ("N%c%d,",zb[i].x + 'a',zb[i].y);

    n = fin('p');
    qsort (zb,n,sizeof (zb[0]),cmp1);
    for (i = 0;i < n;i++)
    {
        printf ("%c%d",zb[i].x + 'a',zb[i].y);

        if (i < n - 1)
            printf(",");
        else
            printf ("\n");
    }

    return 0;
}

 

我的博客:http://blog.csdn.net/codehypo

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170050.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat 激活码[免费获取][通俗易懂]

    (navicat 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月20日
    426
  • flowerplus鲜花官网_花艺大师作品

    flowerplus鲜花官网_花艺大师作品题目描述 Description花匠栋栋种了一排花,每株花都有自己的高度。花儿越长越大,也越来越挤。栋栋决定把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希望剩下的花排列得比较别致。具体而言,栋栋的花的高度可以看成一列整数h_1,h_2,…,h_n。设当一部分花被移走后,剩下的花的高度依次为g_1,g_2,…,g_m,则栋栋希望下

    2022年8月22日
    8
  • XP仿Vista的外观与功能

    XP仿Vista的外观与功能XP仿Vista的外观与功能虽然WindowsVista带来的绚丽界面、更具人性化的操作接口以及许多新的有意义功能令人神往,不过,对许多用户而言,在其正式发布后即作出升级到WindowsVis

    2022年7月3日
    30
  • jsonobject string转json_string转换为long

    jsonobject string转json_string转换为long本文使用一个小例子展示在java中怎样将一个JSON格式的字符串转化为JSONObject对象。注意,我们使用的是org.json.simple.JSONObject;packagecom.qs.json;importorg.json.simple.JSONObject;importorg.json.simple.parser.JSONParser;importorg.json.sim

    2022年8月23日
    7
  • macos idea2021激活码(JetBrains全家桶)

    (macos idea2021激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~23LNPMIJZT-eyJsaWNlbnNlSWQiOi…

    2022年3月29日
    134
  • 拦截器「建议收藏」

    拦截器「建议收藏」11.拦截器11.1拦截器概述SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。*

    2022年7月3日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号