いろいろと苦戦していましたが、とりあえず「やんてね♪さんの7ならべ」完成しました。
しかし、まだ全く推敲してないのでスパゲッてる部分や、あと変数名も適当に付けてしまったりしたので、冬休みの宿題が終わったら後々こっそり手直しする予定です(汗
とりま、ソースコード載せますね
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int pass[4], card[4][13];
char *design[8][26] = {
{"S","S","S","S","S","S","S","S","S","S","S","S","S"},
{"1","2","3","4","5","6","7","8","9","X","J","Q","K"},
{"H","H","H","H","H","H","H","H","H","H","H","H","H"},
{"1","2","3","4","5","6","7","8","9","X","J","Q","K"},
{"D","D","D","D","D","D","D","D","D","D","D","D","D"},
{"1","2","3","4","5","6","7","8","9","X","J","Q","K"},
{"C","C","C","C","C","C","C","C","C","C","C","C","C"},
{"1","2","3","4","5","6","7","8","9","X","J","Q","K"}};
void put_card();
int main(){
int count, tcount, randn;
srand(time(NULL));
printf("やんてね♪さんの7ならべ\nゲームを開始します(Press Enter Key)");
getchar();
for(count = 1; count <= 52; count++){
if(count <= 13) card[0][count-1] = rand()%4+1;
else if(count <= 26) card[1][count-14] = rand()%4+1;
else if(count <= 39) card[2][count-27] = rand()%4+1;
else card[3][count-40] = rand()%4+1;
}
for(count = 0; count < 4; count++) card[count][6] = 0;
while(1){
put_card(1);
put_card(2);
put_card(3);
put_card(4);
}
}
void put_card(int p_ban){
if(pass[p_ban-1] != 4){
int tate, yoko, dtate = 0, addn = 0, flg, ysearch, count = 0, c_number, put_able[8][2] = {0}, suit_n;
printf("\n\n%dさんの番です。\n",p_ban);
for(tate = 0; tate <= 3; tate++){
for(addn = 0; addn <= 1; addn++){
for(yoko = 0; yoko <= 12; yoko++){
if(card[tate][yoko] == 0 || card[tate][yoko] == p_ban){
if(card[tate][yoko] == 0){
printf("%s", design[dtate+addn][yoko]);
}
if(card[tate][yoko] == p_ban){
if(addn == 0){
printf("△");
ysearch = yoko+1;
flg = 0;
if(ysearch > 7){
ysearch--;
while(ysearch > 7 && flg != 1){
if(card[tate][ysearch-1] != 0){
flg = 1;
}
ysearch--;
}
}
else{
ysearch++;
while(ysearch < 7 && flg != 1){
if(card[tate][ysearch-1] != 0){
flg = 1;
}
ysearch++;
}
}
if(flg == 0){
put_able[count][0] = tate+1;
put_able[count][1] = yoko+1;
count++;
}
}
else printf("▽");
}
}
else{
printf(" ");
}
}
printf("\n");
}
dtate+=2;
}
dasu:
printf("どのカードを出しますか?(スート番号,数字、パスする場合は0,0) :");
scanf("%d,%d", &suit_n, &c_number);
if(0 == suit_n && 0 == c_number){
printf("パスします。\n");
pass[p_ban-1]++;
if(pass[p_ban-1] == 4) printf("%dさんゲームオーバー!", p_ban);
}
for(count = 0; count <= 7; count++){
if(put_able[count][0] == suit_n && put_able[count][1] == c_number) count = 9;
}
if(count == 8){
printf("そのカードは出せません\n");
goto dasu;
}
card[suit_n-1][c_number-1] = 0;
getchar();
}
}
手直しする予定ではありますが、意見や感想などがあればよろしくお願いします(^^;
・・・てかこのプログラム終了しねえ・・・