全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2062
推到 Plurk!
推到 Facebook!

C++ 翻牌配對遊戲

尚未結案
s0935683552
一般會員


發表:1
回覆:0
積分:0
註冊:2011-11-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-11-08 16:55:42 IP:122.124.xxx.xxx 訂閱
這是我們程設期末作業 做一個4*4的翻牌配對遊戲 兩張圖片一樣的話就配對成功 消失並得分 ,不同就翻回去,請問這樣要從哪邊開始著手,亂數怎麼用?
不好意思 我才剛接觸C 所以問題可能有點多 請多多包涵~
x812116
一般會員


發表:0
回覆:3
積分:0
註冊:2011-11-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-11-24 16:19:13 IP:220.130.xxx.xxx 訂閱
 #include <stdio.h>
#include
#include
#include
char P1_lat[4][4];
void reset()
{
int i=0,j=0,tmp=0,cv[9]={0};
memset(&cv, 0, sizeof(cv));
srand(time(NULL));
while(i<4)
{
j=0;
while(j<4)
{
tmp=(rand()%8) 1;
if(cv[tmp]<2)
{
cv[tmp] =1;
P1_lat[i][j]=tmp;
j ;
}
else
{
}
}
i ;
}
}
void show()
{
int i=0,j=0;
while(i<4)
{
j=0;
while(j<4)
{
printf("%d|",P1_lat[i][j]);
//printf("%c|",'A');
j ;
}
printf("\n--------\n");
i ;
}
}
int check_show(int a,int b)
{
a--;
b--;
int i=0,j=0;
//printf("========================\n");
while(i<4)
{
j=0;
while(j<4)
{
if(((i==a/4)&&(j==a%4))||((i==b/4)&&(j==b%4)))
{
printf("%d|",P1_lat[i][j]);
}
else if(P1_lat[i][j]==100)
{
printf(" |");
}
else
{
printf("%c|",'A');
}
j ;
}
printf("\n--------\n");
i ;
}
if(P1_lat[a/4][a%4]==P1_lat[b/4][b%4])
{
P1_lat[a/4][a%4]=100;
P1_lat[b/4][b%4]=100;
printf("恭喜\n");
return 1;
}
else
{
printf("哈哈\n");
return 0;
}
}
int main(void)
{
int ok_tmp=0,NO1_tmp=0,NO2_tmp=0;
reset();
show();
while(ok_tmp<8)
{
printf("輸入要翻第 1 張牌 : ");
scanf("%d", &NO1_tmp);
printf("輸入要翻第 2 張牌 : ");
scanf("%d", &NO2_tmp);
system("cls");
if(check_show(NO1_tmp,NO2_tmp))
{
ok_tmp ;
}
}
printf("GAME OVER\n");
system("pause");
return 0;
}
PS:輸入牌數大於16會有問題,請自行改寫

希望有幫助,可以的話請自己重寫一份。
系統時間:2017-12-14 12:25:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!