第15周-项目6-体会棋盘游戏中的数据存储

来源:互联网 发布:类似纳米盒的软件 编辑:程序博客网 时间:2024/06/07 12:40
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 作    者:冯冬影* 完成日期:2013  年12  月 13日* 版本号: v1.0* 输入描述:* 问题描述:定义一个8行8列的二维数组,为二维数组中的数据赋50以内的随机数,设计函数输出,设计函数输出两条对角线上的值,通过键盘输入一个位置,输出周围8个数,设计函数改变数组中的值* 程序输出:* 问题分析:*/#include  <iostream>#include <cstdlib>#include <time.h>using namespace std;void setdata(int a[8][8]);  //设置随机数void out(int a[8][8]);//输出数组void outDiagonal(int a[8][8]);  //输出对角线元素的值void mine(int a[8][8],int x, int y);//按“扫雷”游戏的规则输出相邻格子void change(int a[8][8]); //按要求改变数值int main(){    int a[8][8],x,y;    setdata(a);    out(a);    outDiagonal(a);    cout<<"输入一个位置:";    cin>>x>>y;    mine(a,x,y);    change(a);    out(a);    return 0;}void setdata(int a[8][8]){    int i,j;    srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同    for(i=0; i<8; i++)        for(j=0; j<8; j++)            a[i][j]=rand()%50+1;    return;}//按行序优先输出数组void out(int a[8][8]){    for(int i=0; i<8; i++)    {        for(int j=0; j<8; j++)            cout<<a[i][j]<<'\t';        cout<<endl;    }    cout<<endl;}//输出对角线元素的值(从左上到右下、从右上到左下)void outDiagonal(int a[8][8]){    cout<<"输出对角线上的元素:"<<endl;    cout<<"从左上到右下:";    for(int i=0; i<8; i++)        cout<<a[i][i]<<'\t';    cout<<endl;    cout<<"从右上到左下:";    for(int i=0; i<8; i++)        cout<<a[i][7-i]<<'\t';    cout<<endl;}//按扫雷游戏规则,输出a[x][y]周围的8个数字void mine(int a[8][8],int x, int y){    cout<<"输出a["<<x<<"]["<<y<<"]周围的8个数字:";    for(int i=x-1; i<=x+1; i++)    {        for(int j=y-1; j<=y+1; j++)        {            if(i>=0&&i<8&&j>=0&&j<8)            {                if((i!=x)||(j!=y))                    cout<<a[i][j]<<'\t';            }        }    }    cout<<endl;}//按题目中所言规则更改元素的值void change(int a[8][8]){    for(int i=1; i<8; i++)    {        for(int j=0; j<8; j++)            if(j==7)                a[i][j]=a[i-1][j]+a[i-1][0];            else                a[i][j]=a[i-1][j]+a[i-1][j+1];    }}
运行结果
0 0
原创粉丝点击