博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-2996 Help Me with the Game 模拟
阅读量:6346 次
发布时间:2019-06-22

本文共 2519 字,大约阅读时间需要 8 分钟。

该题为一道纯模拟题,不需要任何算法。在选择棋子的时候定义好排序规则,将其一次排序出来。

代码如下:

#include 
#include
#include
#include
#include
using namespace std;int pos = 0;int hash[255];struct Node{ char kind; int x, y; bool operator < (Node t) const { if (hash[kind] != hash[t.kind]) { return hash[kind] > hash[t.kind]; } else if (isupper(kind)){ if (y != t.y) { return y < t.y; } else { return x < t.x; } } else { if (y != t.y) { return y > t.y; } else { return x < t.x; } } }}e[100];char s[100];void pre(){ hash['K'] = 100, hash['Q'] = 99, hash['R'] = 98; hash['B'] = 97, hash['N'] = 96, hash['P'] = 95; hash['k'] = 94, hash['q'] = 93, hash['r'] = 92; hash['b'] = 91, hash['n'] = 90, hash['p'] = 89; }void deal(int y){ int len = strlen(s); for (int i = 0; i < len; ++i) { if (isalpha(s[i])) { ++pos; e[pos].y = y; e[pos].x = ((i-2)>>2)+1; e[pos].kind = s[i]; } }}void print(){ int i; printf("White: "); for (i = 1; i <= pos && isupper(e[i].kind); ++i) { if (i == 1) { if (e[i].kind != 'P') { printf("%c%c%d", e[i].kind, e[i].x-1+'a', e[i].y); } else { printf("%c%d", e[i].x-1+'a', e[i].y); } } else { if (e[i].kind != 'P') { printf(",%c%c%d", e[i].kind, e[i].x-1+'a', e[i].y); } else { printf(",%c%d", e[i].x-1+'a', e[i].y); } } } printf("\nBlack: "); for (int j = i; j <= pos; ++j) { if (j == i) { if (e[j].kind != 'p') { printf("%c%c%d", e[j].kind-32, e[j].x-1+'a', e[j].y); } else { printf("%c%d", e[j].x-1+'a', e[j].y); } } else { if (e[j].kind != 'p') { printf(",%c%c%d", e[j].kind-32, e[j].x-1+'a', e[j].y); } else { printf(",%c%d", e[j].x-1+'a', e[j].y); } } } puts("");}int main(){ pre(); for (int i = 1; i <= 17; ++i) { gets(s); if ((i & 1) == 0) { // 说明该行为有效行 deal(9-(i>>1)); } } sort(e+1, e+1+pos); print();// system("pause"); return 0; }

转载地址:http://ulcla.baihongyu.com/

你可能感兴趣的文章
nginx web服务理论与实战
查看>>
java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
查看>>
网易音乐版轮播-react组件版本
查看>>
ES6 - 函数与剩余运算符
查看>>
你对position了解有多深?看完这2道有意思的题你就有底了...
查看>>
WebSocket跨域问题解决
查看>>
ECMAScript6基本介绍
查看>>
世界经济论坛发布关于区块链网络安全的报告
查看>>
巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
查看>>
Ubuntu 16.04安装Nginx
查看>>
从 JS 编译原理到作用域(链)及闭包
查看>>
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
查看>>
每周记录(三)
查看>>
Spring自定义注解从入门到精通
查看>>
笔记本触摸板滑动事件导致连滑的解决方式
查看>>
Runtime 学习:消息传递
查看>>
你了解BFC吗?
查看>>
linux ssh tunnel使用
查看>>