引用 | 編輯
codeboy
2005-01-13 14:48 |
樓主
▼ |
||
x0
使用語言:c++發展環境:dev-c++ 4.9.9.1 簡易的猜數字遊戲,可以猜數字,玩的方法就像論壇的猜數字一樣 記得每個數字中間要空格喔!!! #include<iostream> #include<ctime> using namespace std; class Guess { int ans; public: Guess(){}; void Generate(); int Score(const Guess &) const; friend istream& operator>>(istream & is, Guess & g) { is>>g.ans>>g.ans>>g.ans>>g.ans; // 尚未加入輸入控制 return is; } friend ostream& operator<<(ostream& os, const Guess & g) { os<<g.ans<<' '<<g.ans<<' '<<g.ans<<' '<<g.ans; return os; } }; void Guess::Generate() { int x[]={1,2,3,4,5,6,7,8,9}, c, j; for (c=0;c<4;c++) { j=rand()%(9-c)+c; ans=x; x=x; } } .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
s75516
2005-03-11 00:01 |
1樓
▲ ▼ |
版主大大...你做得蠻好的耶!!
可是...有一個小缺點的說... 就是..你沒給它一個定值範圍哦~~~ 這是我同學說的啦... 我沒那麼厲害...看不出來@@" 歹勢哦...>"< x0 |
引用 | 編輯
panasonic732
2005-03-11 21:42 |
4樓
▲ ▼ |
下面是引用s75516於2005-03-11 21:33發表的 : 可以~ 題目的話,您可以整理後放置題目那邊? 範例的話,您可以整理後放置這邊 不過更希望你能針對您不會的地方再提出發問 這樣比較好喔 ^^ x0 |
引用 | 編輯
fredxxx123
2006-01-15 18:07 |
6樓
▲ ▼ |
||||||||||
我也是在學亂數寫的猜數字遊戲^^~
有範圍限制,不過不知道有沒有缺漏就是...哈哈~ 這是用Dev-C++ 4.9.9.2版寫的 複製程式 #include <iostream> #include <conio.h> #include <ctime> #define ttk cout << "※請痛擊鍵盤繼續^^…"; getch(); cout << "\n\n"; #define CLOCKS_PER_SEC 1 using namespace std; void wait(int x) { clock_t ew; ew = clock() + x * CLK_TCK; while (clock() < ew) {} } int main() { short i,j,k; int record[11][3]; int ans[4],temp[4]; bool end1=true,end2=true,end3=true,end4=true; //以上全域 int a1=0,a2=1; //end2部分 int t=0,f=0,kai=0; //end3部分 int b1=0; //end4部分 while (end1) //最外圈 ,整個遊戲是否重新開始 { cout << "NaCl:歡迎~歡迎~^^\n"; //開始遊戲選單 do{cout << "NaCl:現在我們來玩猜數字\n<1>什麼是猜數字?\n<2>開始遊戲!\n請選擇:"; k=getche();}while(k<49||k>50); if (k==50) { cout << "\nNaCl:那…開始囉!\n";} else { cout << "\n────────────────猜數字的規則────────────────\n" << "你和電腦分別選定一個四位數,各位數字不要重複。遊戲開始,由你先猜電腦所選定的\n" << "四位數,電腦將回答你猜測的數字與電腦的數字是否相同,如果不同,電腦也會以A、\n" << "B來提供你參考,例如:\n" << "答案的數字:1234\n" << "你猜的數字:5283,結果為AB\n\n" << "表示你猜對了兩個數字,其中有一個字位置是對的,另一個數字位置不對,例中您猜對\n" << "了2及3但是3的位置錯了,所以電腦給的提示為AB,其中,A表示猜對一個數字且\n" << "位置也對,B表示猜對一個字但是位置不對。\n\n" << "另例:\n" << "答案的數字:1234\n" << "你猜的數字:3261結果為1a2b\n" << "答案的數字:1234\n" << "你猜的數字:8765結果為0a0b\n" << "這樣了解了嗎?\n" << "──────────────────────────────────────\n" << "那麼,開始遊戲。\n"; ttk; cout << endl; } while (end2) //產生謎底 { cout << "產";wait(250); cout << "生";wait(250); cout << "謎";wait(250); cout << "底";wait(250); cout << "中";wait(250); cout << ".";wait(250); cout << ".";wait(250); cout << ".";wait(250); end2=false; srand(int(time(0))); rand(); for (i=0;i<4;i++) { ans[i]=int(double(10*rand())/RAND_MAX); } for (i=0;i<4;i++) { for (j=i+1;j<4;j++) { if (ans[i]==ans[j]) {end2=true;} } } cout << "\b\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b\b\b"; } cout << "\n產生完畢。\n"; cout << "┌ ┐\n 你共有十次機會!\n└ ┘\n\n"; while (end3) //第二圈,玩家猜數字回圈 { end4=true; if (kai!=0) { cout << "┌─┬──┬──┐\n"; for (i=1;i<=kai;i++) { cout << "│ " << i ; if (record[i][0]<1000) { cout << "│0"; } else {cout << "│";} cout << record[i][0] << "│" << record[i][1] << "a" << record[i][2] << "b│\n"; if (i==kai) { cout << "└─┴──┴──┘\n"; } else { cout << "├─┼──┼──┤\n";} } } while (end4) //最內圈,使用者輸入 { while(1) { cout << "請輸入4個數(0123~9876)\n"; cin >> b1; if (b1<0123||b1>9876) {cout << "NaCl:不在範圍內!\n\n";} else {break;} } temp[0]=b1/1000; temp[1]=(b1-temp[0]*1000)/100; temp[2]=(b1-temp[0]*1000-temp[1]*100)/10; temp[3]=(b1-temp[0]*1000-temp[1]*100-temp[2]*10); end4=false; for (int i=0;i<4;i++) { for (int j=i+1;j<4;j++) { if (temp[i]==temp[j]) {end4=true;} }} if ( end4==true ) { cout << "NaCl:有重複的數字!\n\n";} } //判斷 幾A幾B t=0,f=0; for (int i=0;i<4;i++) { for (int j=0;j<4;j++) { if (temp[i]==ans[j]) { if (i==j) {t++;} else { f++;} }}} if (b1<1000) {cout << "0";} cout << b1 << ":" << t << "a" << f << "b\n";kai++; //寫入紀錄 record[kai][0]=b1;record[kai][1]=t;record[kai][2]=f; //判斷是否結束 if (t==4 || kai>9) { end3=false;} } //結尾 if (kai>9) {cout << "\n\nNaCl:喔喔~你沒猜中唷!\n";} else { cout << "\n\nNaCl:水唷~你真強XD\n";} do{ cout << "NaCl:你還要再玩一次嗎?\n<1>好!\n<2>不玩了!\n" ; k=getch();} while (k<49||k>50); if (k==50) {cout << "NaCl:辛苦了^^\n"; end1=false;} else {cout << "NaCl:OK!再來一場!\n";end1=true,end2=true,end3=true,end4=true;a1=0,a2=0;t=0,f=0,kai=0;int b1=0;} } ttk; return 0; }
x0 |
引用 | 編輯
Aeiou-cow
2010-12-24 13:23 |
9樓
▲ ▼ |
#include<stdio.h>
main() { int ans=1100,in,i=1,sum=1; do { printf("第%d次\n",sum); printf("請輸入密碼0000-9999:"); scanf("%d",&in); if(in==ans) printf("被你猜到了\n"); else if(in<=ans) printf("太小了\n"); else printf("太大了\n"); sum =sum+i; }while(in!=ans); i++; system("pause"); } 自己做的@@ x0 |
引用 | 編輯
williamyii77
2010-12-26 14:32 |
10樓
▲ ▼ |
唔錯唔錯.....好好玩啊
x0 |