NOTE

「やんてね♪さんの7ならべ」ひとまず完成!

「やんてね♪さんの7ならべ」ひとまず完成!yantene

One reaction at a time. Picking another replaces it.

いろいろと苦戦していましたが、とりあえず「やんてね♪さんの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();
    }
}

手直しする予定ではありますが、意見や感想などがあればよろしくお願いします(^^;

・・・てかこのプログラム終了しねえ・・・

One reaction at a time. Picking another replaces it.