- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
.. ..
《程序设计》课程设计
姓 名:
学 号:
班 级:软件工程14 班
指导教师:
成 绩:
.. ..
消除类游戏
1.1【问题描述】
消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。
1.2【基本要求】
现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。
请注意:一个棋子可能在某一行和某一列同时被消除。
输入数据格式:
输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。
输出数据格式:
输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。
1.3【测试数据】
为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。
测试数据一
输入:
输出:
4 5
2 2 3 1 2
3 4 5 1 4
2 3 2 1 3
2 2 2 4 4
2 2 3 0 2
3 4 5 0 4
2 3 2 0 3
0 0 0 4 4
输出说明:
棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。
测试数据二
输入:
输出:
4 5
2 2 3 1 2
3 1 1 1 1
2 3 2 1 3
2 2 3 3 3
2 2 3 0 2
3 0 0 0 0
2 3 2 0 3
2 2 0 0 0
输出说明:
棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。
1.4【功能实现】
#include iostream
#include windows.h
using namespace std;
int main()
{
int m, n, i ,j;
int temp;
cin n m;
temp = m;
m = n;
n = temp;
int * map = new int[m * n];
int * mark = new int[m * n];
int * tmap = map;
int * tmark = mark;
int dif = 0;
//输入
for ( i = 0 ; i m ; i++ )
for (j = 0; j n; j++)
cin *(tmap + i * n + j);
for (i = 0; i m; i++)
for (j = 0; j n; j++)
{
//横行
if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0)
if (*(tmap) == *(tmap + 1) * (tmap + 1) == *(tmap + 2))
{
dif = tmap - map;
*(tmark + dif) = 0;
*(tmark + dif + 1) = 0;
*(tmark + dif + 2) = 0;
}
//竖列
if (tmap + 2 * n - map m * n || tmap + n - map m * n)
if (*(tmap) == *(tmap + n) * (tmap + n) == *(tmap + 2 * n))
{
dif = tmap - map;
*(tmark + dif) = 0;
*(tmark + dif
您可能关注的文档
最近下载
- DB44T 2719-2025《有限空间智慧安全管控技术规范》.pdf VIP
- 河堤建设工程施工合同.doc VIP
- 2024年执业中药师考试复习资料重点知识点与背诵口诀.pdf VIP
- 职业院校课程思政与思政课程协同育人典型案例.pdf VIP
- 12D101-5(替代94D101-5)110kV及以下电缆敷设.docx VIP
- 北师大版小学六年级数学上册第1单元测试卷(有答案).docx VIP
- 第六章管式反应器.ppt VIP
- 六年级上册分数四则混合运算300题及答案.docx VIP
- 2024—2025学年河南省开封高级中学高一上学期第一次月考物理试卷.doc VIP
- 学校升旗台工程方案范文(3篇).docx VIP
文档评论(0)