台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
1062
 
會員總數:230656
接案會員:6774
文章總數:2320
討論主題:176432
歡迎您免費加入會員
討論區列表 >> C/C++ >> 猜數字遊戲

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
猜數字遊戲
價值 : 100 QP  點閱數:4533 回應數:5

點圖分享到Plurk吧!
樓主

ivcau
門外漢
0 1
8 1
發送站內信

最近要寫一個猜數字遊戲...裡面要有最少一個array、兩個functions(有return value 和沒有return value )
但想來想去也沒有頭緒怎樣開始,有大大可幫幫忙嗎?
本篇文章發表於2006-12-01 21:56
什麼是iT Power資訊報 2010年藍色小舖認證專家風雲榜完全名單
1樓
回應

麒哥
檢舉此回應
請問要用什麼語言寫呀?C?C++?
加油吧?
是哪種猜數字的?
幾A幾B的那種嗎?


本篇文章回覆於2006-12-01 22:35
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

ivcau
檢舉此回應
補充一下,是用C來寫,流程大約是電腦抽一個隨機數(三位的),玩家輸入一個三位數,如輸入的數字其中一個是對的但位置不對,那Right Number = 1 , Right Location = 0,如兩個數字對但位置不對,那就是Right Number = 2 , Right Location = 0,兩個數位置對就是Right Number = 0 , Right Location = 2。


本篇文章回覆於2006-12-01 22:40
--未登入的會員無法查看對方簽名檔--
3樓
回應

Fanta
檢舉此回應


這是我以前打的,給你參考


本篇文章回覆於2006-12-02 19:41
--未登入的會員無法查看對方簽名檔--
4樓
回應

阿洛
檢舉此回應
這是我最近寫的...
本人目前也算初學..
此程式只有一個問題沒解決就是如果玩家輸入的數字相同時還是可以繼續繼續跑..
其他在於電腦亂術出題不從複這邊都應該沒錯!!
也請有看到的高手可以給點建議^^

#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;

int main(int argc, char *argv[])
{

int b[3],e,a[3],f=0;


cout<<"**********************************************"<<"\n";
cout<<"此遊戲為猜數字,範圍1~9且4個數字不可以從複!!"<<"\n";
cout<<"請任意輸入4個數字!!"<<"\n";
cout<<"**********************************************"<<"\n";
srand(time(NULL));

b[0]=rand()%9+1; //隨機變數產生//
b[1]=rand()%9+1; //放入陣列方便檢驗//
b[2]=rand()%9+1;
b[3]=rand()%9+1;

for(int i=0;i<3;i++) //此為圈從複檢驗史亂減少亂數從複機會//
{
if(b[3]==b[2]||b[3]==b[1]||b[3]==b[0]) //驗證如果從複則從新產生//
{
b[3]=rand()%9+1;
}
else
{
f++; //f++是一開始寫的時候在做測試用的不用理他..//
}
if(b[2]==b[3]||b[2]==b[1]||b[2]==b[0])
{
b[2]=rand()%9+1;
}
else
{
f++;
}
if(b[1]==b[3]||b[1]==b[2]||b[1]==b[0])
{
b[1]=rand()%9+1;
}
else
{
f++;
}
if(b[0]==b[3]||b[0]==b[2]||b[0]==b[1])
{
b[0]=rand()%9+1;
}
else
{
f++;
}
}

cout<<"\n";

while(1) //如果輸入的數字超過4位則程式終止//
{
int c=0,d=0;
cin>>e;
if(e>10000)
{
cout<<"請從新輸入";
break;
}
a[3]=e%10;
a[2]=(e/10)%10;
a[1]=(e/100)%10;
a[0]=(e/1000)%10;



for(int j=0;j<4;j++)
{
if(a[j]==b[j])
{
c++;
}
if(c==4)
{
cout<<c<<"A0B";
cout<<"您真利害";
}
}

for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(i==j)
{
continue;
}
if(a[i]==b[j])
{
d++;
}
}
}
cout<<c<<"A"<<d<<"B";
cout<<"\n";
cout<<"\n";

}
system("PAUSE");
return EXIT_SUCCESS;
}



本篇文章回覆於2007-02-08 19:40
--未登入的會員無法查看對方簽名檔--
5樓
回應

阿華哥
檢舉此回應
阿洛你的b[3]和a[3]是不是要改成b[4]和a[4]才夠長...
另外這一個問題[玩家輸入的數字相同時還是可以繼續繼續跑..]
在d++後面多加一個判斷式
d++;
}
}
}
if(c!=4)
{
cout<<c<<"A"<<d<<"B";
c=0;
d=0;
}

}

}




本篇文章回覆於2007-10-11 20:29
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.