2020年8月2日 星期日

簡易翻牌遊戲

使用說明:
總共36格,內為A~R x2 隨機排列的表格。
索引從0開始,35結束。
依指示輸入想翻開的卡牌,若該次兩張牌相同,則成功找出;反之則蓋回去。
沒有防呆,不能輸入0~35外的數字、已被翻開的卡牌索引、每次不得輸入兩相同索引。
(也許還有其他錯誤?)

程式碼:
#include <iostream>
using namespace std;

int main()
{
    srand(time(NULL));
    int index[18]={0},counter=0;
    char map[6][6]={'*'},alpha[6][6];
    for(int i=0;i<6;i++)
        for(int j=0;j<6;j++)
            map[i][j]='*',alpha[i][j]='*';
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<6;j++)
        {
            int letter=rand()%18;
            while(index[letter]>=2)
                letter=rand()%18;
            alpha[i][j]=char(letter+'A');
            index[letter]++;
        }
    }
    
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<6;j++)
            cout<<alpha[i][j]<<" ";
        cout<<endl;
    }
    while(counter<36)
    {
        int cardIndex1,cardIndex2;
        cout<<"Please enter card index: ";
        cin>>cardIndex1;
        for(int i=0;i<6;i++)
        {
            for(int j=0;j<6;j++)
            {
                if(cardIndex1/6==i&&cardIndex1%6==j)
                    cout<<alpha[i][j]<<" ";
                else
                    cout<<map[i][j]<<" ";
            }
            cout<<endl;
        }
        cout<<"Please enter card index: ";
        cin>>cardIndex2;
        for(int i=0;i<6;i++)
        {
            for(int j=0;j<6;j++)
            {
                if(cardIndex1/6==i&&cardIndex1%6==j)
                    cout<<alpha[i][j]<<" ";
                else if(cardIndex2/6==i&&cardIndex2%6==j)
                    cout<<alpha[i][j]<<" ";
                else
                    cout<<map[i][j]<<" ";
            }
            cout<<endl;
        }
        if(alpha[cardIndex1/6][cardIndex1%6]==alpha[cardIndex2/6][cardIndex2%6])
        {
            cout<<"Good Job!"<<endl;
            counter+=2;
            map[cardIndex1/6][cardIndex1%6]=alpha[cardIndex1/6][cardIndex1%6];
            map[cardIndex2/6][cardIndex2%6]=alpha[cardIndex2/6][cardIndex2%6];
        }
        else cout<<"Try Again!"<<endl;
    }
    cout<<"Congratulation!!"<<endl;
}

沒有留言:

張貼留言