1、用Java编程这个猜数字游戏
程序我写完了
分有点少 等你看到联系我爸 给你发过去
2、急求!!!!用C语言编写0-99之间的猜数游戏
内容:设计一个猜数字游戏,它能根据游戏规则猜数。
功能:产生原始数字:产生4个随机数,并按任意顺序排列。
游戏提示:用1A2B形式提示玩家当前猜数字的匹配情况。例如1A表示玩家猜测的数字有1个与系统产生的原始数字符合e79fa5e9819331333238643730,并且位置也符合。2B表示玩家猜测的数字有2个与系统产生的原始数字符合,但位置不符合。
原始数字显示:当用户10次仍然不能猜出正确的原始数字和顺序时,系统提示玩家失败,并给玩家显示原始数字和顺序。
#i nclude <stdlib.h>
#i nclude <stdio.h>
#i nclude <time.h>
#i nclude <conio.h>
int times=1;
/*This function makes an array of four differrent numbers.*/
int *make_ans(int ans[])
{
int i,used[10]={0},*t=ans;
static int change_seed=0;
srand(time(0)+change_seed);
if (change_seed<100)change_seed++;else change_seed=0;
for(i=0; i<4; i++)
{
do
{
ans[i]=rand() % 10;
}while(used[ans[i]]);
used[ans[i]]=1;
}
printf("Game Start!\n");
return (t);
}
/*This function gets a num from keyboard and does not echo to the screen.*/
int get_num()
{
char n;
do
{
n=getch();
}
while (n<'0'||n>'9');
printf("%d",n-'0');
return n-'0';
}
int is_success(int *stra, int *strb)
{
int i,j,a=0,b=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if (*(stra+i)==*(strb+j))
{
if (i==j) a+=1;
else b+=1;
}
}
if (a==4)
{
printf("Congratulations!!!\nYou got it!\n");
return (1);
}
printf("%dA%dB",a,b);
if(10-times>0)printf("\t You have %2d times left.",10-times);
printf("\n");
return (0);
}
int num_incorrect(int *arrN)
{
int i,j;
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
if (*(arrN+i)==*(arrN+j))return 1;
return 0;
}
int main()
{
char try_again='n';
clrscr();
do
{
int i,a[4],b[4];
extern int times;
times=1;
make_ans(a);
do
{
for (i=0;i<4;i++)
{
b[i]=get_num();
}
printf("\t");
if(num_incorrect(b))
{
printf("\nYour answer was incorrect!\nPlease input an array of four differrent numbers.\n");
continue;
}
if(is_success(a,b))break;
times++;
}while(times<=10);
if (times>=10)
{
printf("The number was:");
for(i=0;i<4;i++)printf("%d",*(a+i));
printf("\n");
}
printf("Try again?\nPress Y to try again!\nOthers to exit.\n");
try_again=getch();
}
while (try_again=='y');
clrscr();
printf("Thank you for playing this game!\n");
printf("Built By Arliang!\n");
printf("Press any key to exit.\n");
getch();
return (0);
}
/*
21:52 2008-1-9
Built by Arliang
*/
参考一下吧
3、有个手机游戏画面钟表然后让你猜
您好:
您说的这款手机游戏应该是猜数字1A2B,您可以到zd应用宝里面下载猜数字1A2B这款手机游戏的专,打开腾讯电脑管家的工具箱,然后选择打开里面的应用宝,然后搜索猜数字属1A2B就可以看到猜数字1A2B的下载资源了。
腾讯电脑管家企业平台:http://zhidao.baidu.com/c/guanjia/
4、面向对象程序设计猜数字游戏,要求如图
图上的字看不见啊
5、PHP 设计一猜数字游戏
- -" 好眼熟的一道题.~
6、文曲星中的猜数字游戏,要猜一个四位数,有什么通用公式?
算法:主要是复杂的逻辑判断。基本的想法是先在六步里判断出是哪4个数来字,然后一次性根据前面积累的B值判断出正确的位置(如果此时有多个选择则选择其中之一输出,然后根据这次输出的反馈再判断)。
问题的关键是设置什么算法可以再六步内判断出这四个数字?这里给出的自是,前三步总是做固定的猜测,分别是“1,2,3,4”,“2,1,5,6”,“7,8,1,2”, 设每次得到的A反馈分别为A1,A2,A3,然后根据sum=A1+A2+A3的值来做判断。
显然sum>=3,因为没被猜得只有9。如果sum为3,那么9必然在其中,1,2必不在其中,然后可跟别根据A1,A2,A3的值来判断3,4,5,6,7,8 (当然还要更一步判断)。如果sum为4,这四个数必然为3,4,5,6,7,8 中的4个...当然如果你有兴趣,可以对其他的试着做类似的逻辑判断,建立在这些判断之下然后再进一步决定下面猜测什么。
这里给zhidao出C++实现的代码,代码里能看清楚具体怎么根据sum的和来判断,以及怎么根据判断结果继续猜。如果你想让计算机猜的是8327,那么下面是执行的一个界面:
代码测试例子如下:
7、c语言猜数字游戏源代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int EachDiff(int a[],int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(a[i]==a[j])
return 0;
else
return 1;
}
int JudgeA(int a[],int b[],int n)
{
int i,result=0;
for(i=0;i<n;i++)
{
if(a[i]==b[i]) result++;
}
return result;
}
int JudgeB(int a[],int b[],int n)
{
int i,j,result=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i]==b[j]&&i!=j)
return result;
}
void CreateNum(int a[],int n)
{
int i;
srand(time(0));
do
{
for(i=0;i<n;i++)a[i]=rand()%10;
}while(!EachDiff(a,n));
}
int JudgeInput(int a[],int n)
{
int i;
if(!EachDiff(a,n))
return 0;
else
for(i=0;i<n;i++)
if(a[i]>9||a[i]<0)
return 0;
else
return 1;
}
int main()
{
//system();
int a[4],b[4],i;
int fth=1;
printf("作者 Dante -- 谢煜东");
printf("\t\t 欢迎来到猜数字游戏\n\n");
printf(" 计算机想好了一个4位无重复数字,首位可以为零。\n 例如:0913是可以的,3502也是可以的,6787不可以。\n");
printf(" 现在您想办法把这个数字猜出来。\n\n");
printf(" 每猜一个数字,计算机会根据这个数字给出几A几B:\n 其中A前面的数字表示位置正确的数的个数,\n 而B前的数字表示数字正确而位置不对的数的个数。\n\n");
//printf(" 如正确答案为5234,而猜的人猜5346,则是1A2B。\n 其中有一个5的位置对了,记为1A;\n 而3和4这两个数字对了,而位置没对,因此记为2B;\n 合起来就是1A2B。\n\n");
printf(" 记住!1:你共有8次机会,2:输入的数字不能重复。\n\n");
printf(" 当出现\"第几次:\"字样并等待的时候,您就可以输入你要猜测的四位数字,\n 输入完之后回车确认。祝您开心\n\n 明白之后任意键游戏正式e79fa5e9819331333264643133开始!");
getchar();
CreateNum(a,4);
system("cls");
printf("\t\t现在可以输入你要猜的四位数字了,输入之后回车确认。\n");
while(fth<=8)
{
int t=1000;
printf("第%d次: ",fth);
scanf("%d",amp;b[0]);
for(i=0;i<3;i++)
{
b[i+1]=b[i]%t;
b[i]=b[i]/t;
t/=10;
}
for(i=0;i<4;i++)
if(JudgeInput(b,4)==0)
{
printf("您的输入有问题,请重新输入\n");
continue;
}
if(JudgeA(a,b,4)==4)
{
printf("\t结果: 答对了!好聪明!");
system("pause");
//return;
}
printf("\t结果:您有%d个数字和位置都对了,有%d个数字对了而位置没对\n",JudgeA(a,b,4),JudgeB(a,b,4));
fth++;
}
printf("\n很遗憾。正确答案是:");
for(i=0;i<4;i++)
printf("%d",a[i]);
printf("下次再玩吧!88\n");
system("pause");
return 0;
}
8、C#猜数字游戏
//判断是否猜中
bool isTrue = false;
//记录用多少次猜中
int num = 0;
//生成随机数
Random r = new Random();
int randomnum = r.Next(0, 101);
do
{
Console.Write("请输入您认为对的数字:");
int result = Convert.ToInt32(Console.ReadLine());
if (result == randomnum)
{
isTrue = true;
num++;
}
else
{
if (result > randomnum)
{
Console.WriteLine("您输入的数字太大了");
isTrue = false;
num++;
}
else
{
Console.WriteLine("您输入的数字太小了");
isTrue = false;
num++;
}
}
} while (isTrue==false);
switch (num)
{
case 1:
Console.WriteLine("您太有才了!");
break;
case 2:
case 3:
case 4:
case 5:
case 6:
Console.WriteLine("您很聪明!");
break;
default:
Console.WriteLine("小同志,你还需继续努力!");
break;
}
随机数的100不知道是否包括,我给的包括的,如果你不想取到100的话,你可以把101换成100.
本想截图,但是一看太大没法截图,就直接发源码了可能会有点难看,你可以直接复制过去就行。如果不是你想要的,请无视,请勿喷。
9、猜数字游戏
一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数*/
long ltime;
ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/
stime=(unsigned int)ltime/2;
srand(stime);
z=random(9999); /*计算机想一个随机数*/
printf("I have a number with 4 digits in mind,please guess.\n\n");
for(c=1;;c++) /*c: 猜数次数计数器*/
{
printf("Enter a number with 4 digits:");
scanf("%d",&g); /*请人猜*/
a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i<5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
s=g;m=1;
for(t=1;t<5;t++) /*人所猜想的数*/
{
if(a%10==s%10) /*若第i位与人猜的第t位相同*/
{
if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜数字中的位置*/
if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
s/=10;
}
a/=10;
}
printf("Correctly guessed %d digits,",j);
printf("and guessed %d digits in exact position.\n\n",k);
if(k==4) break; /*若位置全部正确,则人猜对了,退出*/
}
printf("Now correctly guessed the whole number after %d times.\n",c);
}
10、VB猜数字游戏程序代码
Option Explicit
Private Sub Command1_Click()
On Error Resume Next
Dim I As Integer
I = MsgBox("下面游戏开始,你准备好了吗?", vbYesNo)
If I = 6 Then Frame1.Visible = True: Text1 = "" Else Frame1.Visible = False
Text1.SetFocus
Randomize (Timer)
Text2 = Int(Rnd() * 10) + 1
Text3 = 0
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Me.Height = 5000
Me.Width = 10500
Me.BorderStyle = 1
Me.Caption = "猜数游戏"
Label1.Left = 0
Label1.Top = 1000
Label1.Caption = "欢迎进入猜数游戏"
Label1.FontName = "楷体_GB2312"
Label1.ForeColor = &H80FF&
Label1.FontSize = 48
Command1.Caption = "开始"
'Command1.Default = True
Command2.Caption = "退出"
Command2.Cancel = True
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 13 Then KeyAscii = 0
If KeyAscii = 13 Then
If Text1 <> "" Then Jysz
End If
End Sub
Private Function Jysz() As Boolean
Text3 = Val(Text3) + 1
If Val(Text1) = Val(Text2) Then
MsgBox "猜对了,你真棒" & Chr(13) & Chr(10) & "请猜下一个……"
Command1_Click
ElseIf Val(Text1) > Val(Text2) Then
MsgBox "猜大了。"
Else
MsgBox "猜小了。"
End If
Text1 = ""
If Val(Text3) >= 3 Then
MsgBox "呵呵,没猜对!正确的答案是" & Text2 & "。别气馁,再来!"
Command1_Click
End If
End Function
具体程序已经发到你的邮箱[email protected]
更多代码请参阅我的博客http://hi.baidu.com/zgmg/blog