0

だから私はこのプログラムを終わらせようとしています.私がする必要があるのは、このカードゲームのための何らかの形式のユーザー入力を実装することだけですが、これまでに試したことはすべて無限にループするだけです.そして、コードを見ると理にかなっているように見えるので、論理的に何が間違っているのかわかりません。

void players(int deck[])
{
    int x;
    int a; 

    a = 1;

     printf("Player 1 \n"); 
     printf("Your Hand is: \n"); 
     draw(deck, a);
     draw(deck, a);
     while(a = 1)
     {
     printf("What would you like to do: Press 1 to Draw. 2 to Stay. \n"); 
     scanf("%d" , &x); 
     if(x = 1)
     {
          draw(deck, a);
     }
     else
     {
         a--;
     }
     }
}

これが問題の入力です

void draw(int deck[SIZE], int a)
{
    int numCards = 10;
    int i; 
    int hand[numCards];
    int card;
    for(i = 0; i < numCards && top > 0; i++)
    {
        card = deck[top-1];     
        hand[i] = card; 
        top--;   
    }
    if(a != 0)
    printcards(card);
    else
    for(i = 0; i < numCards && top > 0; i++)
    printcards(card);

}

これは、ループがカードを引くために使用する関数です (printcards は、カードを印刷するだけの別の関数です) プレイヤーが draw を呼び出すと機能しますが、前述のように、2 を押しても無限にカードを呼び出します (終了することになっています)。 . だから私は何が間違っているのか完全にはわかりません。

4

2 に答える 2