编译猜数字游戏
A. c语言,编写一个猜数字游戏
源码如下:
/*File:guess.c*/
#include<stdio.h>/*standardinput&outputsupport*/
#include<stdlib.h>/*srand()rand()*/
#include<time.h>/*time()*/
/*宏定义*/
#defineNUMBER_LENGTH5/*随机数长度*/
#defineNUMBER_LIMIT10/*随机数限制,每一位0-9*/
#defineINPUT_LENTH128/*输入缓冲区大小*/
chargoal[NUMBER_LENGTH]={0};/*保存随机数*/
charflag[NUMBER_LIMIT]={0};/*保存随机数标志,保证不重复*/
charinput[INPUT_LENTH]={0};/*保存输入*/
/*初始化用于保存数据的数组*/
voidinitData()
{
inti=0;
while(i<NUMBER_LENGTH)
goal[i++]=0;
i=0;
while(i<NUMBER_LIMIT)
{
flag[i++]=0;
}
}
/*初始化用于保存缓冲区的数组*/
voidinitBuffer()
{
inti=0;
while(i<INPUT_LENTH)
input[i++]=0;
}
/*显示猜测结果*/
voiddisplay()
{
intcount=0;
inti=0;
while(i<NUMBER_LENGTH)
{
if(input[i]==goal[i])
{
printf("%c",'o');
count++;
}
else
{
printf("%c",'x');
}
i++;
}
printf(" RIGHT:%dbit(s) ",count);
if(count==NUMBER_LENGTH)
{
printf("Youwin!Thenumberis%s. ",goal);
exit(0);
}
}
/*生成随机数*/
voidgeneral()
{
/*以时间作为时间种子保证生成的随机数真正具有随机性质*/
srand((unsignedint)time(NULL));
inti=0;
while(i<NUMBER_LENGTH)
{
chartmp;
do
{
tmp='0'+((i!=0)?(rand()%10):(1+rand()%9));
}while(flag[tmp]!=0);
flag[tmp]=1;
goal[i++]=tmp;
}
}
/*输入方法,用于猜测*/
voidguess()
{
printf(": ");
scanf("%s",input);
display();
initBuffer();
}
/*主函数,程序主框架*/
intmain(intargc,constchar*argv[])
{
initData();
initBuffer();
general();
while(1)guess();
return0;
}
==============================================
运行结果见附图,希望我的回答能够对你有所帮助。
B. 用JAVA语言编写一个“猜数字游戏”的程序
int num = (int)(Math.random()*100)+1;
Scanner sc = new Scanner(System.in);
int guessNum = -1;
while (guessNum != num) {
System.out.println("请输入1-100之间整数");
guessNum = sc.nextInt();
if (guessNum == num) {
System.out.println("中啦");
} elseif (guessNum < num) {
System.out.println("小啦");
} else {
System.out.println("大了");
}
}
(2)编译猜数字游戏扩展阅读:
编写思路
1、成1-100之间随机数
(int)(Math.random()*100)+1;
提示用户输入数字,
Scannersc=newScanner(System.in);
intguessNum= sc.nextInt();
需要将随机数和用户输入的数字进行比较。
猜一次:
Scanner sc = new Scanner(System.in);
int num = (int)(Math.random()*100)+1;
System.out.println("请输入0-100之间整数");
int guessNum = sc.nextInt();
if (guessNum == num) {
System.out.println("中啦");
}elseif(guessNum < num) {
System.out.println("小啦");
}else{
System.out.println("大了");
}
二、使用while循环
publicstaticvoid main(String[] args) {
int num = (int)(Math.random()*100)+1;
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入1-100之间整数");
int guessNum = sc.nextInt();
if (guessNum == num) {
System.out.println("中啦");
} elseif (guessNum < num) {
System.out.println("小啦");
} else {
System.out.println("大了");
}
}
}
三、最后用while() 括号中的条件表达式,当用户猜测的数和系统生成的数字不相等时,就需要继续循环。
C. 猜数游戏的C语言编译代码
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
time_t t;
int a[4];
char q[5]="1234";
void youxizuorenjieshao()
{
void zhuye();
system("cls");
printf("\n\n\n");
printf(" 游戏制作人介绍\n");
printf(" 姓名 :蔡砚刚\n");
printf(" 年龄 :18\n");
printf(" 性别 :男\n");
printf(" 出生年月(阳历):1989年12月4日\n");
printf(" 出生年月(阴历):1989年十一月初七\n");
printf(" 学校 :浙江工商大学\n");
printf(" 毕业学校 :安丘八中\n");
printf(" 出生地 :山东潍坊安丘\n");
printf(" 班级 :软件0701\n");
printf(" 院系 :计算机与信息工程学院\n");
printf(" 寝室 :钱江湾生活区41#518\n");
printf(" 电话 :15858263646\n");
printf(" 这就是对菜鸟的介绍:你想评价一下他的游戏么?\n");
printf(" 返回主菜单按任意键:");
getchar();getchar();
zhuye();
}
void youxiguize()
{
void zhuye();
system("cls");
printf("\n\n\n\n");
printf(" 游戏介绍:\n");
printf(" 1输入一个各位上数字互不相等的四位数\n");
printf(" 2如果你输入的数字中有n个相同的数字返回nA\n");
printf(" 3如果你输入的数字中有m个相同且位置相同返回mB\n");
printf(" 4当返回值是4A4B时即为猜中数字\n");
printf(" 5还可以提前偷窥数字但要输入密码\n");
printf(" 现在你已知道游戏规则,那么赶快玩魅力小菜猜数字游戏吧!\n");
printf(" 按任意键返回主采单:");
getchar();getchar();
zhuye();
}
void suijishu()
{
a[0]=rand() %10;
while(1){
a[1]=rand()%10;
if(a[1]!=a[0]) break;
}
while(1){
a[2]=rand()%10;
if((a[2]!=a[0])&&(a[2]!=a[1])) break;
}
while(2){
a[3]=rand()%10;
if((a[3]!=a[0])&&(a[3]!=a[1])&&(a[3]!=a[2])) break;
}
}
void xiaofanhui()
{
int n;
void panan();
void youxi();
void zhuye();
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf(" 现在你已经成功完成游戏\n");
printf(" 按1继续游戏\n");
printf(" 按2返回主菜单\n");
printf(" 按3返回上一级\n");
printf(" 请选择:");
scanf("%d",&n);
switch(n){
case 1:suijishu();printf(" 请输入所猜数字:");
panan();break;
case 2:zhuye();break;
case 3:youxi();break;
default:system("cls");printf(" 这个功能码不正确\n");break;
}
}
void panan()
{
long n;
int i,j,k,l;
char b[5];
j=0;l=0;
scanf("%s",b);
for(i=0;i<4;i++)
b[i]=b[i]-'0';
for(i=0;i<4;i++) {
if(a[i]==b[i]) j++;
for(k=0;k<4;k++)
if(a[i]==b[k]){ l++;break;}
}
if((j==4)&&(l==4)){
printf(" 4A4B\n");
printf(" 恭喜你,干的不错,想记入排行榜么?");
for(n=1;n<=300000000;n++);
xiaofanhui();
}
else{
printf(" %dA%dB",l,j);
printf("请输入所猜数字:");
panan();
}
}
void print()
{
printf("\n\n\n\n\n\n\n");
printf(" 魅力小菜猜数字游戏现在开始\n");
printf(" 你做好准备了么?\n");
printf(" 如果你用最少的次数猜中的话,还有望进入小菜排行榜呢\n");
printf(" 请输入所猜数字:");panan();
}
void mima()
{
int i,j;
char p[5];
void youxi();
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf(" 你可真偷懒!偷懒需要密码吆!你知道密码么?\n");
printf(" 请输入密码:");
for(i=1;i<3;i++){
scanf("%s",p);
if(strcmp(p,q)==0){ system("cls"); printf("偷窥答案是:%d%d%d%d\n",a[0],a[1],a[2],a[3]);print();}
else{ printf(" 密码错误\n");
printf(" 请输入密码:");
}
}
scanf("%s",p);
if(strcmp(p,q)==0){ system("cls"); printf("偷窥答案是:%d%d%d%d\n",a[0],a[1],a[2],a[3]);print();}
else printf(" 密码错误\n");
printf(" 你已输入3次密码还错误,看来偷鸡不成蚀把米\n");
printf(" 还是本分点玩游戏吧:");
for(j=1;j<=500000000;j++);
youxi();
}
void youxi()
{
int m;
system("cls");
suijishu();
printf("\n\n\n\n\n\n\n\n");
printf(" 魅力无限的猜数字游戏现在开始:\n");
printf(" 按1现在开始游戏\n");
printf(" 按2提前偷窥(需要4位密码吆)\n");
printf(" 请输入:");
scanf("%d",&m);
switch(m){
case 1:system("cls");print();panan();break;
case 2:mima();break;
}
}
void paihang()
{
char ch;
FILE *fp;
void zhuye();
if((fp=fopen("paihangbang.txt","r"))==NULL){
printf("无信息\n");
}
while(!feof(fp)){
ch=fgetc(fp);
putchar(ch);
}
if(fclose(fp)){
printf("不能关闭文件\n");
}
printf("\n看到了吧,你想成为其中一员吗?赶快来玩吧!小菜给你无限惊喜!返回主菜单请按任意键");
getchar();getchar();
zhuye();
}
void zhuyexuanze()
{
int n;
long i;
void zhuye();
scanf("%d",&n);
switch(n){
case 1:youxi();break;
case 2:system("cls"); paihang();break;
case 3:youxiguize();break;
case 4:youxizuorenjieshao();break;
case 5:break;
default:printf(" 您输入的功能码有误,请重新输入:\n");
for(i=1;i<=300000000;i++);
system("cls"); zhuye();
}
}
void zhuye()
{
system("cls");
printf("$$$$$$$哈!哈!累了吧,无聊了吧!玩一下小菜猜数字游戏八!¥¥¥¥¥¥¥¥\n");
printf(" 制作人:蔡砚刚");
printf("\n\n\n");
printf(" 小菜猜数字\n\n\n");
printf(" 下面玩一下吧!\n");
printf(" 按下以下数字选择你所要的功能:\n");
printf(" 1开始游戏\n");
printf(" 2查看排行榜\n");
printf(" 3游戏规则介绍\n");
printf(" 4制作人介绍\n");
printf(" 5退出游戏\n\n\n\n\n");
printf(" 请输入你所要选择的功能:");
zhuyexuanze();
}
main()
{
srand((unsigned) time(&t));
zhuye();
D. c语言编程,编译猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
void main()/*主函数*/
{
int a,b,times=0,i,j,guess=0,answer[5],g[5];
for(i=0;i<5;i++)/*随即产生5个数*/
{
srand((unsigned int)time(NULL));/*以当前时间为种子*/
answer[i]=rand()%9+1;/*保证为1-9的数,rand产生随即0-65535的数,对9取余为0-8,都加1就是1-9了*/
for(j=0;j<i;j++)
while(answer[i]==answer[j])/*检查有没有重复的数据,有就重新生成*/
{
answer[i]=rand()%9+1;
j=-1;/*新生成的数要重新检查,此步后马上执行j++*/
}
}
printf("随即的5个数是:");
for(i=0;i<5;i++)
printf("%d",answer[i]);/*输出结果到屏幕,便于测试*/
printf("\n");
printf("请输入猜测数字:\n%");
a=0;
while(a!=5)/*a记录位置对并且数也对的,如果5个都对就是猜对了*/
{
a=0;
b=0;/*b记录数是有的,但位置不对的个数*/
times++;
printf("第 %d 次猜测:\t",times);
scanf("%d",&guess);
while(guess<12345||guess>99999)/*如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次*/
{
printf("你输入了一个非常规数据,请重新输入:\t");
scanf("%d",&guess);
}
for(i=4;i>-1;i--)/*把玩家猜的5个数放到数组中,便于检查对错*/
{
g[i]=guess%10;
guess=(guess-g[i])/10;
}
for(i=0;i<5;i++)/*检查数据对错*/
{
for(j=0;j<5;j++)
{
if(g[i]==answer[j])/*如果猜得的数与结果的某个数一样就把b加1*/
{
b++;
if(i==j)/*如果位置也对,那就是a加1了,对应的b已经加过,应该减1*/
{
a++;
b--;
}
}
}
}
printf("猜测结果:%dA%dB\n",a,b);
if(a==5)
printf("\t答案正确\n"); /*如果a=5就是猜对了*/
}
}
E. C语言编写猜数字游戏
#include<stdio.h>
#include<time.h>
#include<math.h>
int main()
{
int i,a,n;
srand((int)time(NULL));
n=rand()%100+1;
for(i=0; i<5; i++)
{
printf("请输入一个介于1到100的整数:");
scanf("%d",&a);
if(a<n)
printf("猜小了!\n");
if(a>n)
printf("猜大了!\n");
if(a==n)
{
printf("猜对了!\n");
break;
}
}
return 0;
}
F. 应用C++编译猜数字游戏 1到100内 使用者想数字由电脑来猜 使用者告诉电
【程序】
#include<stdio.h>
void main()
{ int n,g,l,h,i;
char c[256];
while ( 1 )
{ printf("请输入一个数字: "); scanf("%d",n);
printf("请想一个1到%d的数字\n\n",n);
l=1; h=n; i=1;
while ( 1 )
{ g=(h-l)/2+l;
if ( i>1 ) printf("那么");
printf("您想的数字是%d ? : ",g); scanf("%s",c);
if ( c[0]=='y' ) break;
else if ( c[0]=='l' ) { l=g; i++; }
else if ( c[0]=='h' ) { h=g; i++; }
}
printf("\n用了%d次猜出了您想的数字!!\n",i);
printf("\n要从新进行游戏么 ? Y?"); scanf("%s",c);
if ( c[0]!='y' ) break;
}
printf("\n再见!\n");
}
【运行结果】
请输入一个数字: 100请想一个1到100的数字
您想的数字是50 ? : l
那么您想的数字是75 ? : l
那么您想的数字是87 ? : h
那么您想的数字是81 ? : h
那么您想的数字是78 ? : h
那么您想的数字是76 ? : y
用了6次猜出了您想的数字!!
要从新进行游戏么 ? Y?y
请输入一个数字: 50
请想一个1到50的数字
您想的数字是25 ? : h
那么您想的数字是13 ? : y
用了2次猜出了您想的数字!!
要从新进行游戏么 ? Y?n
再见!