總共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;
}
沒有留言:
張貼留言