使用C語言實(shí)現(xiàn)珠璣妙算Mastermind小游戲
引言
最近玩到過一款十分好玩的益智類桌游——珠璣妙算-Mastermind,這款游戲也出現(xiàn)在熱片《拆彈專家2》里,該款游戲就是有四個(gè)槽位,而要將6種顏色依次放入槽位之中,然后由出題人反饋正確位置及錯(cuò)誤位置正確顏色數(shù),再通過邏輯推理,推出正確的顏色及位置。因?yàn)檫@種游戲?yàn)槎嗳擞螒?,一個(gè)人不能自己出題、判斷及推理,我在手機(jī)上搜找相關(guān)游戲卻沒有找到相應(yīng)游戲,于是,萌生自主編寫的想法。

( Mastermind(珠璣妙算)是一種可供兩名玩家使用的密碼破譯棋盤游戲。在1970年由Mordecai Meirowitz發(fā)明,他是一位以色列郵政和電信專家。 但游戲類似早期一種利用鉛筆和紙進(jìn)行的游戲,游戲名為“公牛和母牛”,可能追溯到一個(gè)世紀(jì)或更長時(shí)間。)
代碼
這里其實(shí)原理與代碼十分簡單,是通過幾個(gè)條件進(jìn)行的邏輯判定。
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
main()
{
int a,b,c,d,x,y,z,w,flag1=0,i=0,j=0,l=0,m=0;
srand(time(NULL));//用機(jī)器時(shí)間設(shè)置隨機(jī)種子
x=rand()%6+1;//生成6個(gè)隨機(jī)數(shù)字
do
{y=rand()%6+1;}
while(y==x);
do
{z=rand()%6+1;}
while(z==x || z==y);
do
{w=rand()%6+1;}
while(w==z || w==x || w==y);//設(shè)置的6個(gè)隨機(jī)數(shù)互不相同
while(flag1==0)
{
printf("請依次輸入4個(gè)數(shù)字(1-6中),謝謝,這是第 %d 次嘗試\n-\n ",m+1);
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a==x)
i++;
if(b==y)
i++;
if(c==z)
i++;
if(d==w)
i++; //確定正確位置個(gè)數(shù)
if(a!=x && (x==b || x==c || x==d))
j++;
if(b!=y && (y==a || y==c || y==d))
j++;
if(c!=z && (z==a || z==b || z==d))
j++;
if(d!=w && (w==a || w==b || w==c))
j++; //確定錯(cuò)誤位置、正確數(shù)值個(gè)數(shù)
printf("\n正確位置及數(shù)值有 %d 個(gè),正確數(shù)值錯(cuò)誤位置有 %d 個(gè)\n",i,j);
if(i==4)//完全推出情況返回答案,反饋推理次數(shù),跳出循環(huán)
{
m++;
printf("\n恭喜你答對了,你用了 %d 次,答案是: %d %d %d %d\n",m,x,y,z,w);
flag1++;
}
m++;//次數(shù)加一
i=0;
j=0;//判斷正確位置個(gè)數(shù)及確定錯(cuò)誤位置、正確數(shù)值個(gè)數(shù)清零
}
}
運(yùn)行嘗試

結(jié)語
用C語言實(shí)現(xiàn)了該款游戲后,這款游戲還是十分的簡陋,此后我會繼續(xù)優(yōu)化該款游戲圖形化界面等方面。
到此這篇關(guān)于使用C語言實(shí)現(xiàn)珠璣妙算Mastermind小游戲的文章就介紹到這了,更多相關(guān)C語言Mastermind小游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解C++中二進(jìn)制求補(bǔ)運(yùn)算符與下標(biāo)運(yùn)算符的用法
這篇文章主要介紹了C++中二進(jìn)制求補(bǔ)運(yùn)算符與下標(biāo)運(yùn)算符的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-01-01
詳解C++ STL vector容量(capacity)和大小(size)的區(qū)別
這篇文章主要介紹了詳解C++ STL vector容量(capacity)和大小(size)的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
C語言實(shí)現(xiàn)九大排序算法的實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于C語言實(shí)現(xiàn)九大排序算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

