2022年6月26日 星期日

猜拳

/*

  說明:1.電腦會先隨機產生0,1,2三個數字(0:剪刀 1:石頭 2:布)

       2.請使用者輸入一個數字,0: 剪刀,1:石頭 2:布, >=3:不玩了,並輸出勝負場數,9:不玩了,並輸出勝負場數 

   3.比較你的出拳跟電腦的出拳,輸出勝負或平手

   4.使用計數器,記只錄輸贏狀況

   

   使用到的技術:

       1.if ...else /switch ...case判斷式( 判斷輸贏)

   2.while loop重複玩

   3.變數用來記錄電腦產生的數字,你猜拳的數字,還有輸贏次數

   4.使用I/O:printf,scanf

   5.使用函數random隨機產生數字 

*/

#include<stdio.h>  

#include<stdlib.h>

#include <time.h>

int gen_number()//負責產生亂數數字0~2 

{

//設定亂數種子為當下時間

srand(time(NULL)) ;

int number=rand()%3;//產生[0,1,2]的整數亂數 

return number;

}

main()

{

 int computer_guess;

 int player_guess;

 int win_count=0;

 int guess_count=0; 

 while(1)

 {

  printf("請輸入 0: 剪刀,1:石頭 2:布 [9:離開遊戲]: ");

  scanf("%d",&player_guess);

 

  if(player_guess==9)//判斷是否離開 

  {

  printf("Byte bye...");

  break;

}

computer_guess=gen_number();

printf("電腦出拳:%d \n",computer_guess);

guess_count++;//累加的意思 

if(computer_guess==player_guess)

{

printf("平手\n");

continue;

}

switch(player_guess)

{

case 0://0: 剪刀

   if(computer_guess==2)

   {

    printf("玩家贏了\n");

    win_count++;

    }

else

    {

     printf("你輸了\n");

    }

       break;

case 1://1: 石頭

if(computer_guess==0)

   {

    printf("玩家贏了\n");

    win_count++;

    }

else

    {

     printf("你輸了\n");

    }

       break;

case 2://2: 布

if(computer_guess==1)

   {

    printf("玩家贏了\n");

    win_count++;

    }

else

    {

     printf("你輸了\n");

    }

       break;

default:

   printf("別要在亂出拳\n");

       

}

 }//end of while

  printf("你總共現了%d次,贏了%d次\n",guess_count,win_count);

 return 0;    

}

出處:https://www.youtube.com/watch?v=koI0eY04Crw

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...