C語言實現人機猜拳遊戲,非常適合C++小白練習的專案!

image
這是一個簡單的猜拳遊戲(剪子包子錘),讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最後判斷勝負。
下面是小編整理好的一套C/C++資料,加小編C/C++程式設計學習群:825414254,獲取系統性學習C/C++的學習資料

image
下面的程式碼會實現一個猜拳遊戲,讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最後判斷勝負。
啟動程式後,讓使用者出拳,截圖:

image
使用者出拳,顯示對決結果:截圖:

image
程式碼實現:

image

image
- 首先,我們需要定義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 命令。
- 玩家出拳結束,電腦開始出拳。
電腦通過產生隨機數來出拳:
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 的值就不同,且不會重複,見下表:

image
- 每次猜拳結束,暫停並清屏,進入下一次猜拳:
system("pause>nul&&cls"); //暫停執行和清屏
正因為你沒時間學習,你才越來越忙;正因為你沒錢學習,你才一直都窘迫;正因為你不屑於學習,你才突破不了;正因為你總怕上當,你才一直做不大!21世紀會淘汰有學歷的人,永遠不會淘汰有學習力的人!誰把學習當做最重要的事,未來就是最重要的人!財富不是裝在口袋而是裝在腦袋、腦袋決定你的口袋、思路指引你的方向。