a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言實現的猜拳游戲代碼分享

2020-01-26 14:43:15
字體:
來源:轉載
供稿:網友

這是一個簡單的猜拳游戲(剪子包子錘),讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最后判斷勝負。

下面的代碼會實現一個猜拳游戲,讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最后判斷勝負。

啟動程序后,讓用戶出拳,截圖:

用戶出拳,顯示對決結果:截圖:

代碼實現:

#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){  char gamer; // 玩家出拳  int computer; // 電腦出拳  int result; // 比賽結果  // 為了避免玩一次游戲就退出程序,可以將代碼放在循環中  while (1){    printf("這是一個猜拳的小游戲,請輸入你要出的拳頭:/n");    printf("A:剪刀/nB:石頭/nC:布/nD:不玩了/n");    scanf("%c%*c",&gamer);    switch (gamer){      case 65: //A      case 97: //a        gamer=4;        break;      case 66: //B      case 98: //b        gamer=7;        break;      case 67: //C      case 99: //c        gamer=10;        break;      case 68: //D      case 100: //d        return 0;           default:        printf("你的選擇為 %c 選擇錯誤,退出.../n",gamer);        getchar();        system("cls"); // 清屏        return 0;        break;    }       srand((unsigned)time(NULL)); // 隨機數種子    computer=rand()%3; // 產生隨機數并取余,得到電腦出拳    result=(int)gamer+computer; // gamer 為 char 類型,數學運算時要強制轉換類型    printf("電腦出了");    switch (computer)    {      case 0:printf("剪刀/n");break; //4  1      case 1:printf("石頭/n");break; //7 2      case 2:printf("布/n");break;  //10 3    }    printf("你出了");    switch (gamer)    {      case 4:printf("剪刀/n");break;      case 7:printf("石頭/n");break;      case 10:printf("布/n");break;    }    if (result==6||result==7||result==11) printf("你贏了!");    else if (result==5||result==9||result==10) printf("電腦贏了!");    else printf("平手");    system("pause>nul&&cls"); // 暫停并清屏  }  return 0;}

代碼分析

1) 首先,我們需要定義3個變量來儲存玩家出的拳頭(gamer)、電腦出的拳頭(computer)和最后的結果(result),然后給出文字提示,讓玩家出拳。

接下來接收玩家輸入:

scanf("%c%*c",&gamer);

注意:由于每次輸入以回車結束,緩沖區中除了玩家輸入的字母,還有回車符。回車符要跳過,以免影響下次輸入。Scanf() 函數的格式控制字符串個數可以多于參數個數,scanf("%c%*c",&gamer);的作用是從緩沖區多輸出一個字符(回車符),卻不賦給任何變量。

玩家輸入結束,使用 switch 語句判斷輸入內容,65(A)、97(a)、66(B)、98(b)、67(C)、99(c)、68(D)、100(d)為相應字符的ASCII碼。

注意:system("cls"); 語句的作用是清屏。System() 函數用來執行 dos 命令,這里相當于在 dos 里輸入 cls 命令。

2) 玩家出拳結束,電腦開始出拳。

電腦通過產生隨機數來出拳:

srand((unsigned)time(NULL)); //為了避免多次運行結果相同,故在前面加入上(需要time.h)computer=rand()%3; //獲取0~2的隨機數

最后通過玩家和電腦出拳的和來判斷輸贏:

result=(int)gamer+computer;// ...if (result==6||result==7||result==11) printf("你贏了!");else if (result==5||result==9||result==10) printf("電腦贏了!");else printf("平手");

這是一個很巧妙的算法,玩家和電腦出拳不同,result 的值就不同,且不會重復,見下表:

電腦 -- 玩家 石頭(4) 剪刀(7) 布(10)石頭(0) 4 7 10剪刀(1) 5 8 11布(2) 6 9 12

3) 每次猜拳結束,暫停并清屏,進入下一次猜拳:

system("pause>nul&&cls");  //暫停運行和清屏

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 人人超碰免费 | 色婷婷电影 | 亚洲成人久久久 | 欧美一级淫片007 | 亚洲成人一区二区 | 九九免费视频 | 在线视频97 | yy6080久久伦理一区二区 | 一级看片| 欧美激情精品久久久久 | 国产在线观看av | 天天亚洲| 精品国产乱码久久久久久1区2区 | 日本在线不卡视频 | 国产精品国产精品国产专区不卡 | 久久91视频 | 久久h| 久久密 | 国产一级一级片 | 国产午夜视频 | 国产二区视频 | 中文字幕亚洲欧美精品一区四区 | 久久久久国产精品视频 | a视频在线播放 | av色资源 | 中文字幕国产 | 精品www | 亚洲1级片 | 国产精品久久久久久久久 | 国产精品久久久久久久久福交 | 91社区在线高清 | 日韩三级黄 | 久久伊人久久 | 国产一区二区三区精品在线 | 国产精品久久久久久久久久妞妞 | 色婷婷综合国产精品一区 | 黄色欧美视频 | 国产欧美精品一区二区 | 国产精品久久 | 亚洲欧美一区二区三区视频 | 激情99|