您的位置:首页 > 编程语言

C编程之旅:猜数字游戏的简单实现

2008-04-26 15:03 344 查看

#include <iostream>


#include <stdio.h>


#include <stdlib.h>




using namespace std;




int nrand();


int nCin ();


int nCompare ();




int main()




...{


nCompare ();


}




//随机产生四位不同的整数


int nrand()




...{


int a;


//int g1[4] = {0,0,0,0};


while(1)




...{


a=rand();


if(a>=1000&&a<=9999)




...{


int q,b,s,g;


q=a/1000;


b=(a%1000)/100;


s=((a%1000)%100)/10;


g=((a%1000)%100)%10;




if(q!=b&&q!=s&&q!=g&&b!=s&&b!=g&&s!=g)




...{


cout<<a<<endl;


break;


}


}


}




return a;


}






//用户必须输入一个四位数


int nCin ()




...{


int cNumber;




cout<<"please input a number:"<<endl;


while(1)




...{


cin>>cNumber;


long int a0=cNumber/1000,


a1=(cNumber%1000)/100,


a2=((cNumber%1000)%100)/10,


a3=((cNumber%1000)%100)%10;


if(cNumber>=1000&&cNumber<=9999)




...{


if(a0!=a1&&a0!=a2&&a0!=a3&&a1!=a2&&a1!=a3&&a2!=a3)


break;




else cout<<"请输入四个不同的四位数:"<<endl;






}


cout<<"请输入四个不同的四位数:"<<endl;


break;




}


//cout<<"You input number :"<<cNumber<<endl;


//cout<<g2[0]<<endl;


return cNumber;


}




//比较输入,最多只能输入九次;


//用户输入对了就显示对的并把结果显示给用户,超过十次推出游戏并把结果显示给用户。


int nCompare ()




...{


int randnumber = nrand();


int i=8;


for(i;i>=0;i--)




...{




int cinnumber =nCin();




int g1[4] =...{0,0,0,0,};


g1[0]=randnumber/1000;


g1[1]=(randnumber%1000)/100;


g1[2]=((randnumber%1000)%100)/10;


g1[3]=((randnumber%1000)%100)%10;






int g2[4] =...{0,0,0,0};


g2[0]=cinnumber/1000;


g2[1]=(cinnumber%1000)/100;


g2[2]=((cinnumber%1000)%100)/10;


g2[3]=((cinnumber%1000)%100)%10;




int cout1=0,cout2=0;//cout1计数数相同,cout计数数和位置都相同的个数


for(int n=0;n<4;n++)


for(int j=0;j<4;j++)




...{


if(g2
==g1[j])




...{


cout1++;


if(n==j)


cout2++;


}


}


cout<<cout2<<"A";


cout<<cout1<<"B"<<endl;




if(cout1==4&&cout2==4)




...{


cout<<"You are right!! Very good!!"<<endl;


cout<<randnumber<<endl;


break;


}




cout<<"你还有"<<i<<"次机会,加油!"<<endl;


if(i==0)




...{


cout<<"游戏结束,谢谢你的参与!!";


//break;


}










//cout<<cinnumber<<endl;






}


return 0;


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: