導航:首頁 > 游戲攻略 > 1a2b猜數字游戲攻略

1a2b猜數字游戲攻略

發布時間:2020-04-08 15:54:48

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

與1a2b猜數字游戲攻略相關的攻略