上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
satanupup 喜歡上這裡的冒險者
註冊時間: 2007-05-29 文章: 80
68.10 果凍幣
|
發表於: 2009-5-17, PM 4:53 星期日 文章主題: 猜數字遊戲 |
|
|
代碼: | // fq001.cpp : 義主控台應用程式的進入點。
//
#include "stdafx.h"
string int2str(int &);
int main(void)
{
//**************************************************
string idStr;
int hand=0, count = 0,numA=0,numB=0;
int sum;
string s;
srand(time(NULL));
sum=(rand()%9001)+1000;
s = int2str(sum); //整數sum 轉換成字串 s
bool isID=false;
string num="0123456789";
do {
count++;
cout<<"請輸入四個數字 :";
cin >>idStr;
cout<<"你輸入的是"<<idStr<<endl; //輸入數字的部份
if(idStr[0] == idStr[1] || idStr[0] == idStr[2] || idStr[0] == idStr[3] || idStr[1] == idStr[2] || idStr[1] == idStr[3] || idStr[2] == idStr[3])
{
cout<<"出現重複數字 YOU LOSE"<<endl;
main();
}
cout<<sum<<endl;//答案
// if (idStr.substr(0,3).find_first_not_of("0123") != string::npos) //確認是否輸入的是數字
// cout<<"請輸入數字! "<<endl;
//***************************************************************************
if(s[0] == s[1] || s[0] == s[2] || s[0] == s[3] || s[1] == s[2] || s[1] == s[3] || s[2] == s[3])
{
cout<<"出現重複數字 遊戲提早結束"<<endl;
main();
}
if(s[0]==idStr[0])
numA++;
if(s[1]==idStr[1])
numA++;
if(s[2]==idStr[2])
numA++;
if(s[3]==idStr[3])
numA++;
//******************************************
if( s[1] == idStr[0] || s[2] == idStr[0] || s[3] == idStr[0])
numB++;
if(s[0] == idStr[1] || s[2] == idStr[1] || s[3] == idStr[1])
numB++;
if(s[0] == idStr[2] || s[1] == idStr[2] || s[3] == idStr[2])
numB++;
if(s[0] == idStr[3] || s[1] == idStr[3] || s[2] == idStr[3])
numB++;
cout<<numA<<"A"<<numB<<"B"<<endl;
numA=0;
numB=0;
//***************************************************************************
// if (idStr.substr(0,3).find_first_not_of("0123") != string::npos)
if ( idStr == s){ //輸入的數字 等於 隨機亂數的話遊戲過關
isID=true;
cout<<"you win"<<"共輸入了: "<<count<<" 次";}
}while (!isID);
//***************************************************/
system("pause");
}
string int2str(int &i) {
string s;
stringstream ss(s);
ss << i;
return ss.str();
} |
|
|
回頂端 |
|
|
hk8100_00 偶而上來逛逛的過客
註冊時間: 2009-06-27 文章: 10
255.69 果凍幣
|
發表於: 2009-8-10, PM 12:47 星期一 文章主題: |
|
|
你的程式運行不到 !!
你寫C++ ??
Why not #include <iostream> |
|
回頂端 |
|
|
yag Site Admin
註冊時間: 2007-05-02 文章: 689
2704.11 果凍幣
|
發表於: 2009-8-11, AM 9:43 星期二 文章主題: |
|
|
hk8100_00 寫到: | 你的程式運行不到 !!
你寫C++ ??
Why not #include <iostream> |
他使用了先行編譯標頭檔 -- stdafx.h
你要使用vc++的專案建置精靈去建置一個console專案才能copy他的程式碼 |
|
回頂端 |
|
|
hk8100_00 偶而上來逛逛的過客
註冊時間: 2009-06-27 文章: 10
255.69 果凍幣
|
發表於: 2009-8-13, PM 12:15 星期四 文章主題: |
|
|
我的版本
代碼: |
#include <iostream>
#include <windows.h> // 引入SetConsoleTitle
#include <ctime> // 引入亂數
using namespace std;
int main()
{
SetConsoleTitle("猜數字遊戲 V3.1"); // 標題
system("color b"); // 文字顏色
cout << "關於本程式" << endl;
cout << "撰寫語言 : C++" << endl;
cout << "作者 : C++初學者" << endl << endl;
system("pause");
system("cls"); // 進入下一頁
int p,u;
cout << "請設定最高猜錯數字值(最高值 : " << INT_MAX << ") : "; // 設定
cin >> p;
cout << "請設定猜數字範圍(最高值 : " << INT_MAX << ") : "; // 設定
cin >> u;
system("cls"); // 進入下一頁
cout << "猜數字遊戲 V3.1" << endl;
cout << "猜數字範圍 : " << u << endl;
cout << "猜錯最高數字 : " << p << endl << endl;
system("pause");
system("cls"); // 進入下一頁
// -------------------------------------------------------------------------------
char q;
int l=0;
do // 第一層迴圈
{
srand(time(NULL)); // 設定亂數種子
int z=rand()%u;
int c;
do // 第二層迴圈
{
cout << "猜錯次數 : " << l << endl;
cout << "請輸入數字 : ";
cin >> c;
if(c>z) // 數字大過z就進入這處
{
cout << "這數字太大了 !!" << endl << endl;
l++; // 每猜錯一次,l就增加1 l++ <-- l=l+1
}
else if(c<z) // 數字小過z就進入這處
{
cout << "這數字太小了 !!" << endl << endl;
l++; // 每猜錯一次,l就增加1 l++ <-- l=l+1
}
else if(c==z) // 猜中的話進入這處
{
cout << endl << "你猜中了 !!" << endl << endl;
break; // 跳出第二層迴圈
}
if(l==p) // 當l達到p的時候,就進入這處
{
cout << "< < < < < < < Game over > > > > > > >" << endl << endl;
break; // 跳出第二層迴圈
}
}while(c!=z); // 當c不等於z的時候就進入迴圈
cout << "你還要繼續 !!" << endl;
cout << "Y 繼續 || 任何鍵 Exit" << endl;
cout << "指令 : ";
cin >> q;
system("cls");
l=0; // 因為是進入新遊戲,所以將l設置0
}while(q=='Y'||q=='y'); // 當輸入y的時候就進行迴圈
}
|
|
|
回頂端 |
|
|
|