C語言入門:人機猜拳小遊戲的實現

2021-03-01 C語言入門學習

計算機不懂「石頭,剪刀,布」的規則,所以我們先制定一套計算機可以「懂」的規則:

我們用1,2,3三個數字代表剪刀,石頭,布。我們規定:1<2,2<3,3<1。比如你輸入2,計算機選擇了3,那麼計算機贏;如果你輸入1,計算機選擇了3,那麼你贏。

我們需要做的是:

①程序能接受你的輸入(1或2或3)

②計算機能隨機選擇1~3的一個數

③程序對你輸入的數和計算機選的數根據規則作比較,判斷輸贏

好,明確了需求,我們一步一步來完成這個程序。

①程序能夠接受你的輸入 這個可以通過C語言的輸入語句scanf實現(visualstudio中出於安全考慮要用scanf_s):

scanf_s("%d",x);

②計算機從1~3中隨機選擇一個整數 如果你閱讀過C語言入門:C語言實現猜數字小遊戲,那你一定知道C語言的輸出隨機數函數srand和rand:

srand(time(NULL));

rand()%3+1;

③根據規則判斷你和計算機誰贏 這一步我們可以自定義一個判斷輸贏的函數來完成,不過遵循的規則是我們定義的規則。

把三個步驟串起來編寫一下:

判斷輸贏函數:

主函數:

當然這個程序有一些「漏洞」,比如說如果你輸入4或其他不是1~3的值,該怎麼處理?如果你想一直玩,直到不想玩了再退出,該怎麼編寫實現?

發動你聰明的大腦,快來自己實現一下吧!

這個程序還有什麼漏洞呢?歡迎在評論區指出~

相關焦點

  • C語言入門經典:必背18個經典程序
    C語言必背18個經典程序1、/*輸出9*9口訣。共9行9列,i控制行,j控制列。
  • KTV唱歌時玩的猜拳遊戲,你會玩嗎?
    玩的兩個人先通過猜拳來決定誰先喊.基本動作有雙手往上擺動,往前擺動和分別往兩邊擺動,猜拳贏的一方一邊喊"海帶啊海帶"一邊做動作,輸的一方也同時做動作,但不能喊"海帶啊海帶".如果雙方的動作一致,那喊的人就贏了;如果不同,就換另一人喊
  • C語言基礎:第一個最簡單程序——Hello World!
    《C語言基礎》這個系列是面向一些C語言的初學者,所以裡面的內容比較淺顯易懂,很多問題和知識點並沒有深入去挖掘,也就是說這個系列是一個入門級教材,幫大家快速的找到一個學習C語言的方向。        我們首先來看一個最簡單的C程序——Hello World!
  • 《銀魂熱血版》雙十一不孤單,猜拳100%中大獎
    各位銀魂的長老們,我造雙十一在大家心裡早已經不是個單純而平淡的星期三了,是個嗨~嗨~嗨~不停的日子~不論是單身汪還是甜甜蜜蜜小CP,銀桑都為你精心準備了神棍紅包呦,只要在11月10日-11月12日期間每天登陸
  • 和微商猜拳,贏了立馬給錢?猜了拳,沒猜到結局…
    但實際上,犯罪嫌疑人通過一些軟體漏洞,可以讓猜拳遊戲始終是平局,而受害人花188元購買到的所謂名牌化妝品,只不過是價格不過十幾元的偽劣產品。類似案件遠不止一起,山東濟南警方近日也破獲了一起利用虛擬「石頭剪刀布」遊戲行騙的案件。
  • 初學者:如何學好C語言?
    學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。
  • 闊少猜拳,在線撒錢?新型「催熟殺豬盤」,騙你沒商量!
    來和小編一起看看這類詐騙的核心套路:看完上面的圖,你應該發現,這種「催熟殺豬盤「和傳統的「殺豬盤」核心套路一樣,用四個階段施詐騙:催熟殺豬盤傳統殺豬盤階段一包裝。騙子添加好友之後,通過朋友圈塑造自己事業有成,手頭闊綽包裝。
  • 買東西猜拳,贏了立馬給錢?猜了拳,沒猜到結局…
    但實際上,犯罪嫌疑人通過一些軟體漏洞,可以讓猜拳遊戲始終是平局,而受害人花188元購買到的所謂名牌化妝品,只不過是價格不過十幾元的偽劣產品。類似案件遠不止一起,山東濟南警方近日也破獲了一起利用虛擬「石頭剪刀布」遊戲行騙的案件。
  • C語言:優雅的字符串函數庫
    以學習一門語言為例:大多數人都持有一種觀念,要真正學好一門語言必須得去所學語言當地學習或生活一段時間。而事實上,大多數人都沒有這樣的學習條件。簡介Simple Dynamic Strings (簡稱 SDS) 是一個 C 語言字符串庫,它增強了 C 語言字符串處理的能力。設計 SDS 原本是為了滿足設計者自身日常的 C 編程,後來又被轉移到 Redis 中,在 Redis 中被廣泛使用並對其進行了修改以適合於高性能操作。
  • 《人機大戰II觀戰手冊》: 花式直播哪家強?線上線下觀戰都有
    各位看官們,準備好燃燒你們的小宇宙吧!2016年第一季人機大戰,由DeepMind團隊研發的人工智慧阿爾法圍棋以4比1的比分力壓韓國棋手李世石,自此有關人工智慧的話題引爆棋圈。今年年初,阿爾狗升級版Master在網上以驚人的60連勝,橫掃人類頂尖棋手,引起軒然大波,有關世界第一人柯潔與阿法狗大戰呼聲愈演愈烈。
  • 和「微商」猜拳,既送手機又送錢?套路!
    微信APP中的很多小程序增加了社交趣味性,但總有些不法分子對此動起了歪腦筋。 偽裝成「微商」的騙子們,策劃了一種「購物返利」詐騙,即「購買任意一款產品即可參加猜拳活動,無論輸贏還是平局,都有大牌彩妝、iphone手機免費送。」今年以來,我省各地接報多起以購買物品可以參加划拳中獎活動的詐騙案件,廣大網友一定要提高警惕,謹防上當受騙!
  • 一文讀懂R語言如何實現逐步回歸分析 ——【生物和醫學統計】
    逐步回歸分析是以AIC信息統計量為準則,通過選擇最小的AIC信息統計量,來達到刪除或增加變量的目的。R語言中用於逐步回歸分析的函數step(),drop1(),add1()。#1.載入數據 首先對數據進行多元線性回歸分析tdata<-data.frame(x1=c( 7, 1,11,11, 7,11, 3, 1, 2,21, 1,11,10),x2=c(26,29,56,31,52,55,71,31,54,47,40,66,68),x3=c( 6,15, 8,
  • 小樹屋 開學啦!
    擔任教學督導多年,看到很多的一線康復教師對教學有滿滿的熱忱,但和聽損學生的語言輸入上卻常常詞窮,很多時候教師拿著一張張的圖卡,不斷地重複同一個單字或句型
  • 在遊戲裡玩遊戲:魔獸世界插件裡十大小遊戲
    魔獸世界之所以偉大,除了一些老生常談的方面,比如遊戲性、背景設定、人氣什麼的,我想有一個原因也不應該忽視:插件。
  • 少兒編程:適合5-7歲的幼兒編程遊戲(lightbot)帶模擬器
    最近發現了一個很好玩的編程小遊戲——LightBot。
  • 討論:真正精通一門開發語言到底是什麼程度?
    對不對~那個程度的嘛,一般說看過多少多少源碼,做過多少多少牛逼項目,拿多少多少錢,或者是bat多少級對吧@Rsoft 我認為是,可以對比到每種不同語言的不同之處,不同實現的方式,然後自己心裡有個大概的概念。知道利弊。因為精通一門語言,是知道其實現原理,所以大多數選擇去看源碼。
  • 日語《石頭剪刀布》童謠,溫習小時候的遊戲
    17學日語    「石頭、剪刀、布」是猜拳的一種
  • 漫畫 | C語言哭了,過年回家,只有我還沒對象
    好不容易熬到聚餐結束,C語言鬱悶地回到了冷冷清清的家中。肯·湯普森不吭聲,繼續寫代碼。 這次定義了一個矩形(Rectangle)的結構體,其中嵌套了Shape,難道這就實現了繼承?  C有點疑惑。通過這種組合的方式,也算是實現了繼承吧。
  • 日語入門知識:平假名和片假名有什麼區別?
    外來語簡單點說即是,日本原本沒有的,從西方或歐美引進的詞彙,其發音也是由其他國家的語言發音演變而來的。外來語大多是用片假名表示的。比如說:「アイスクリーム:冰激凌」 , 「アメリカ:美國」。平假名是日本人生活中最主要的常用的語言工具,不過,近幾年在日本的年輕人當中,有用片假名來代替平假名的傾向,並且片假名在日語學習中既是重點,也是難點,所以同學一定要拿出十二分的力氣來努力學習片假名。一般情況下日語中哪個單詞用平假名,哪個單詞用片假名都是固定的,同學只要注意積累就好了。
  • C語言也可以搶紅包,速度來圍觀.
    C語言搶紅包源碼+注釋//搶紅包 用了windows API#include<windows.h>#include<stdio.h>#include<string.h>#include<stdlib.h>