| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2013 人关注过本帖
标题:翻牌游戏
取消只看楼主 加入收藏
王向
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
翻牌游戏
#include<iostream>
#include<time.h>

using namespace std;

void main()
{
    srand((unsigned)time(NULL));
   //pk 与result相对应,如果pk中的牌一翻开,result对应的位置记为“1”
    int pk[4][4]={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};
    int result[4][4]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
   
    //洗牌
    for(int i=0;i<1000;i++)
    {
        int  rand1=rand()%4;
        int   rand2=rand()%4;
        int   rand3=rand()%4;
        int rand4=rand()%4;

        int tmp=pk[rand1][rand2];
        pk[rand1][rand2]=pk[rand3][rand4];
        pk[rand3][rand4]=tmp;
    }
     
    bool over=true;
    while(over)
    {
//遍历result计算“1“的个数,如果是16 说明已全部猜对,并结束游戏
        int count=0;
      for(int i=0;i<4;i++)
       {
         for(int j=0;j<4;j++)
          {
            if(result[i][j]==1)
                 count++;
            
         }
        }
    if(count==16)
    {
        cout<<"恭喜你全部猜对";
            break;
    }
   
        
  //显示全部的牌(一翻开的和未翻开的)
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            if(result[i][j]==0)
                cout<<"*"<<"\t";
            else
              cout<<pk[i][j]<<"\t";
        }
        cout<<endl;
   
    }
   
    cout<<"请输入第一个行号 列号:"<<endl;
    int r1=0;
    int c1=0;
    cin>>r1>>c1;
    r1--;
    c1--;
     for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
             if(i==r1&&j==c1)
               cout<<pk[i][j]<<"\t";
             else
                 cout<<"*"<<"\t";
        }
        cout<<endl;
   
    }
         

    cout<<"请输入第二个行号 列号:"<<endl;
    int r2=0;
    int c2=0;
    cin>>r2>>c2;
    r2--;
    c2--;
//判断两次算选的牌是否相等,如果相等 而将result相应的位置 标记为”1“。
     for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
             if(i==r2&&j==c2)
               cout<<pk[i][j]<<"\t";
             else
                 cout<<"*"<<"\t";
        }
        cout<<endl;
   
    }
   

     if(pk[r1][c1]==pk[r2][c2])
     {
         result[r1][c1]=1;
         result[r2][c2]=1;
     }
    /*  for(int i=0;i<4;i++)
     {
          for(int j=0;j<4;j++)
          {
           cout<<result[i][j]<<"\t";
           }
          cout<<endl;
     }*/

    cout<<"请输入1.继续游戏  2.推出游戏;";
        int t=0;
    cin>>t;
    if(t==2)
    {
       over=false;
      
    }

    //清屏
     system("cls");
}
}

[ 本帖最后由 王向 于 2012-3-18 23:14 编辑 ]
搜索更多相关主题的帖子: include result 
2012-03-14 17:16
王向
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-14
收藏
得分:0 
C++ 写的一个小游戏,主要是练习记忆力的。
2012-03-15 20:48
王向
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-14
收藏
得分:0 
哈哈,喔。你先复制 运行一下 再看看 也许效果更好。
2012-03-18 23:15
快速回复:翻牌游戏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044793 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved