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

来源:互联网 发布:淘宝怎么设置客服 编辑:程序博客网 时间:2024/05/21 14:59
/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:王耀鹏*完成日期:2014年12月1日*版本号:v1.0**问题描述:体会棋盘游戏中的数据存储。*输入描述:输入50以内的随机数填入二维数组a[8][8]中,输入一个二维数组位置。*程序输出:输出二位数组中的数据,对角线数据,二维数组位置周围的8个元素,改变后的数组数据*/#include  <iostream>#include <ctime>#include<cstdlib>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]){    int i,j;    for(i=0; i<8; i++)    {        for(j=0; j<8; j++)            cout<<a[i][j]<<'\t';        cout<<endl;    }    cout<<endl<<endl;}//输出对角线元素的值(从左上到右下、从右上到左下)void outDiagonal(int a[8][8]){    int i,j;    for(i=0; i<8; i++)        for(j=0; j<8; j++)            if(i==j)                cout<<a[i][j]<<'\t';    cout<<endl;    for(i=0; i<8; i++)        for(j=7; j>=0; j--)            if(i+j==7)                cout<<a[i][j]<<'\t';    cout<<endl<<endl;}//按扫雷游戏规则,输出a[x][y]周围的8个数字void mine(int a[8][8],int x, int y){    int i,j,sum=0;    for(i=x-1; i<=x+1; i++)        for(j=y-1; j<=y+1; j++)        {            if ((i>= 0) && (i <= 7) && (j >= 0) && (j <= 7)&& !((i == x ) && (j == y)))            {                cout<<a[i][j]<<'\t';                sum+=a[i][j];            }        }    cout<<endl<<"这些数的和是:"<<sum<<endl;    cout<<endl;}//按题目中所言规则更改元素的值void change(int a[8][8]){    int i,j;    for(i=1; i<8; i++)        for(j=0; j<7; j++)            a[i][j]=a[i-1][j]+a[i-1][j+1];    for(i=1; i<8; i++)    {        a[i][7]=a[i-1][0]+a[i-1][7];        a[i][6]=a[i-1][6]+a[i-1][7];    }}

运行结果:

0 0
原创粉丝点击