没有合适的资源?快使用搜索试试~ 我知道了~
《程序设计课程设计》实验报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 3 浏览量
2022-06-20
17:48:14
上传
评论
收藏 531KB DOC 举报
温馨提示
试读
16页
《程序设计》课程设计 姓 名: 学 号: 班 级:软件工程14 班 指导教师: 成 绩: 消除类游戏 1.1【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行 ,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或 更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋 子将同时被消除。 1.2【基本要求】 现在给你一个n行m列的棋盘(1 n,m 30),棋盘中的每一个方格上有一个棋子,请给出 经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m个整数,用空格分隔, 分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的 棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 1.3【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数
资源推荐
资源详情
资源评论
《程序设计课程设计》实验报告
《程序设计》课程设计
姓 名:
学 号:
班 级:软件工程 14 班
指导教师:
成 绩:
《程序设计课程设计》实验报告
- 1 -
《程序设计课程设计》实验报告
1.消除类游戏
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>
- 2 -
《程序设计课程设计》实验报告
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 + n) = 0;
*(tmark + dif + 2 * n) = 0;
}
tmap = map + (j+1) + i * n;
}
//输出
cout << endl;
- 3 -
剩余15页未读,继续阅读
资源评论
是空空呀
- 粉丝: 171
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功