猜数字腾讯 游戏 流程图源代码

合集下载

一段简单的猜数字代码

一段简单的猜数字代码

⼀段简单的猜数字代码⼀段简单的猜数字代码,要求是1,要猜的数字是随机数字1到9;2,猜数字次数为三次;3,如果猜中就打印提⽰语,并且结束程序;4,如果猜错就打印正确值还有剩下的次数;5,如果次数为0,就打印结束,欢迎下次再来。

⽂件名为:easy_guess.py,代码如下:1# !usr/bin/env python32# *-* coding:utf-8 *-*34'''5⼀个简单的猜数字游戏6要猜的数字为随机数字1到97猜的次数为38如果猜中就打印猜中的提⽰语9如果没猜中就打印正确值,还有剩下的次数10如果次数为0,就打印结束,欢迎下次再来11'''1213from random import randint #导⼊模块141516#num_input = int(input("Please input a number(range 1 to 9 ) to continue: ")) #输⼊数字17 guess_time = 0 #定义猜数字次数1819'''开始主循环'''20while guess_time < 4:21 num_input = int(input("PLease input a number(range 1 to 9) to continue: ")) #开始输⼊字符,因为从终端输⼊python认为是字符串,所以要在最前⾯⽤int()函数强制转化为整型,不然后续⽐较的时候会出现错误;22 number = randint(1,9) #定义随机数字,从1到923 remain_time = 3 - guess_time #定义剩下的猜字次数2425if num_input == number: #⽐较输⼊的数字是否和随机数相等,代码的第21⾏前如果没有转化成整型,这⾥会提⽰str不能与int进⾏⽐较;26print("Great guess, you are right!") #相等就执⾏27break#跳出主循环,后续的代码都不会再执⾏28elif num_input > number: #⽐较输⼊的数字是否⼤于随机数29print("Large\n The right number is: {}\n You have {} chances!".format(number,remain_time)) #满⾜条件就提⽰正确答案和剩余次数30elif num_input < number:31print("Small\n The right number is: {}\n You have {} chances!".format(number,remain_time)) #满⾜条件就提⽰正确答案和剩余次数3233 guess_time += 1 #每次循环完成都让猜字次数(guess_time)⾃加1,直到不满⾜主循环条件guess_time < 4上⾯的代码并不能执⾏如果次数为0 就打印结束,欢迎下次再来,⽽且也没有判断⽤户输⼊,下⾯把代码改⼀下,来完善⼀下,⽂件名为another_easy_guess.py:1# usr/bin/env python32# *-* coding:utf-8 *-*34from random import randint #导⼊模块56 guess_time = 0 #定义猜数字次数78'''开始主循环'''9while guess_time < 4:10 remain_time = 3 - guess_time #定义猜的次数11 num_input = input("Please input a number(integer range 1 to 9) to continue(You have {} times to guess): ".format(remain_time)) #开始输⼊12 number = randint(1,9) #定义随机数131415if guess_time >=0 and guess_time < remain_time: #猜的次数⼤于0还有⼩于剩余次数才会执⾏下⾯的代码块16if not num_input.isdigit(): #判定输⼊的是否是数字17print("Please input a integer to continue.") #如果不是数字,提⽰⽤户输⼊数字18elif int(num_input) < 0 or int(num_input) > 10: #判定是不是在我们设定的数字范围内19print("Please use the number 1 to 9 to compare.") #如果不是就提⽰20elif int(num_input) == number: #判定输⼊的数字是否与随机数相等21print("Great guess, you are right!")22break23elif int(num_input) > number: #判定输⼊数是否⼤于随机数24print("Large\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))25elif int(num_input) < number: #判定输⼊数是否⼩于随机数26print("Small\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))27else:28print("You have arrived the limited, see you next time!") #次数⼩于剩余次数后执⾏29break#跳出循环3031 guess_time += 1 #猜的次数⾃增1直到guess_time < 4;323334'''历史遗留问题:1,上⾯的代码只针对⽤户输⼊的数字,⽤户输⼊字符串也是会计算次数的;35 2,如果都没猜中且次数⽤完,是直接打印最后的You have arrived the limited, see you next time!⽽预期的提⽰正确答案。

Pythontkinter版猜数游戏

Pythontkinter版猜数游戏

Pythontkinter版猜数游戏import randomimport tkinterimport tkinter.messageboximport tkinter.simpledialogroot = ()#窗⼝标题root.title('猜数游戏--by董付国')#窗⼝初始⼤⼩和位置root.geometry('280x80+400+300')#不允许改变窗⼝⼤⼩root.resizable(False, False)#⽤户猜的数varNumber = tkinter.StringVar(root, value='0')#允许猜的总次数totalTimes = tkinter.IntVar(root, value=0)#已猜次数already = tkinter.IntVar(root, value=0)#当前⽣成的随机数currentNumber = tkinter.IntVar(root, value=0)#玩家玩游戏的总次数times = tkinter.IntVar(root, value=0)#玩家猜对的总次数right = tkinter.IntVar(root, value=0)lb = bel(root, text='请输⼊⼀个整数:')lb.place(x=10, y=10, width=100, height=20)#⽤户猜数并输⼊的⽂本框entryNumber = tkinter.Entry(root, width=140, textvariable=varNumber)entryNumber.place(x=110, y=10, width=140, height=20)#只有开始游戏以后才允许输⼊entryNumber['state'] = 'disabled'#关闭程序时提⽰战绩def closeWindow():message = '本次共玩游戏 {0} 次,猜对 {1} 次!\n欢迎下次再玩!'.format(times.get(), right.get())tkinter.messagebox.showinfo('战绩', message)root.destroy()root.protocol('WM_DELETE_WINDOW', closeWindow)#按钮单击事件处理函数def buttonClick():if button['text']=='Start Game':#每次游戏时允许⽤户⾃定义数值范围#玩家必须输⼊正确的数while True:try:start = tkinter.simpledialog.askinteger('允许的最⼩整数', '最⼩数', initialvalue=1)breakexcept:passwhile True:try:end = tkinter.simpledialog.askinteger('允许的最⼤整数', '最⼤数', initialvalue=10)breakexcept:pass#在⽤户⾃定义的数值范围内⽣成随机数currentNumber.set(random.randint(start, end))#⽤户⾃定义⼀共允许猜⼏次#玩家必须输⼊正确的整数while True:try:t = tkinter.simpledialog.askinteger('最多允许猜⼏次?', '总次数', initialvalue=3)totalTimes.set(t)breakexcept:pass#已猜次数初始化为0already.set(0)button['text'] = '剩余次数:' + str(t)#把⽂本框初始化为0varNumber.set('0')#允许⽤户开始输⼊整数entryNumber['state'] = 'normal'#玩游戏的次数加1times.set(times.get() + 1)else:#⼀共允许猜⼏次total = totalTimes.get()#本次游戏的正确答案current = currentNumber.get()#玩家本次猜的数try:x = int(varNumber.get())except:tkinter.messagebox.showerror('抱歉', '必须输⼊整数')returnif x == current:tkinter.messagebox.showinfo('恭喜', '猜对啦')button['text'] = 'Start Game'#禁⽤⽂本框entryNumber['state'] = 'disabled'right.set(right.get() + 1)else:#已猜次数加1already.set(already.get()+1)if x > current:tkinter.messagebox.showerror('抱歉', '猜的数太⼤了')else:tkinter.messagebox.showerror('抱歉', '猜的数太⼩了')#可猜次数⽤完了if already.get()==total:tkinter.messagebox.showerror('抱歉', '游戏结束了,正确的数是:'+str(currentNumber.get())) button['text'] = 'Start Game'#禁⽤⽂本框entryNumber['state'] = 'disabled'else:button['text'] = '剩余次数:' + str(total-already.get())#在窗⼝上创建按钮,并设置事件处理函数button = tkinter.Button(root, text='Start Game', command=buttonClick)button.place(x=10, y=40, width=250, height=20)#启动消息主循环root.mainloop()有时间更改⼀下,感觉还不错哈import tkinterimport mathimport tkinter.messageboximport randomroot =()root.minsize(350,260)root.title('猜数字游戏')number=random.randint(1,20)def say_hello():print('hello,world!')def send_low():tkinter.messagebox.showinfo("messagebox","Your guess is too low.")def check_num():guess=text_guess.get()guess=int(guess)if guess>number:tkinter.messagebox.showinfo("height","Your guess is too height.")if guess < number:tkinter.messagebox.showinfo("low","Your guess is too low.")if guess == number:tkinter.messagebox.showinfo("good","Good job!")def btn_confirm():myName=text_name.get()tkinter.messagebox.showinfo("name",'Well,'+myName+',I am thinking of a number between 1 and 20.') #namelabel=bel(root,text="Wellcome to our game!")label.pack()label_name=bel(root,text="What's your name?")label_name.place(x=10,y=60)text_name=tkinter.Entry(root,width=20)text_name.place(x=10,y=90)btnOK=tkinter.Button(root,text="OK",command=btn_confirm)btnOK.place(x=200,y=90,height=28)#inputlabel_guess=bel(root,text='Take a guess:')label_guess.place(x=10,y=150)text_guess=tkinter.Entry(root,width=10)text_guess.place(x=90,y=150)btnCheck=tkinter.Button(root,text='Guess',command=check_num)btnCheck.place(x=200,y=150,width=45,height=28)root.mainloop()计算2。

猜数字游戏源代码

猜数字游戏源代码

猜数字游戏本案例知识要点●Visual C++ 6.0下创建Win32 Console Application并运行的方法●C++程序中类的定义和实现●C++程序中类文件的引用及类的实例化一、案例需求1.案例描述由计算机产生0到99的随机数,游戏参加者将猜到的数字从键盘输入,计算机对猜数结果进行判断直到猜出正确结果。

2.案例效果图猜数字游戏运行效果如图2-1所示。

3.功能要求(1)所猜0到99的目标数字由计算随机产生。

(2)0到99的随机数的产生、所猜数字和目标数字的比较等过程以类的形式实现。

(3)若游戏参加者所猜数字正确,则提示所猜总次数;若猜数错误,则提示所猜数字比目标数字大还是小。

二、案例分析本案例中设计了一个Guess类,实现产生随机数、进行参加游戏者输入数字与目标数字的比较、计算猜数次数。

主程序中通过类的实例化实现猜数过程。

三、案例设计为了实现猜数过程,设计Guess类,结构如图2-2所示。

●数据成员int Value产生的0到99间的目标数字。

int CompareTimes为游戏者已猜次数。

●函数成员Guess()构造函数,用来产生随机目标数字。

int Compare(int InputValue)用来判断游戏者所猜数字是否正确,其参数InputValue为游戏者所猜数字。

int GetCompareTimes()用来获得游戏者已猜次数。

五、案例实现猜数字游戏源程序代码如下所示。

************************************* // * Guess.h 类声明头文件************************************* #1. #include <time.h>#2. class Guess#3. {#4. private:#5.int Value; //计算机产生的目标数字#6. int CompareTimes; //所猜次数#7. public:#8. Guess(); //构造函数的声明#9. int Compare(int InputValue); #10. int GetCompareTimes();#11. };#12. Guess:: Guess ()//构造函数的实现#13. {#14. CompareTimes=0; //猜数次数置零#15. srand((unsigned)time(NULL)); //产生随机数种子#16. Value=rand()%100;//产生0~99的随机数#17. }#18.int Guess::Compare(int InputValue)//比较猜数是否正确#19. {#20. CompareTimes++; //所猜次数加1 #21. return InputValue-Value;//比较所猜数字和目标数字是否相同,相同//返回0#22. }#23. int Guess::GetCompareTimes()//获得已猜次数#24. {#25. return CompareTimes;#26. }//************************************* //* GuessNumber.cpp 源文件************************************* #1. #include <iostream>#2. #include "Guess.h"//将已定义的类文件包含到主程序文件中#3. using namespace std;#4. int main()#5. {#6. int InputValue;#7.cout<<"\n** 欢迎使用本程序**\n"; #8. for(;;)#9. {#10. char Select;#11. Guess guessobj;//实例化Guess类#12. cout<<"我已经想好数字啦(0~99),请猜吧!\n";#13. for(;;)#14. {#15. int CompareResult; #16. cout<<"\n我想的是:";#17. cin>>InputValue;//获得游戏者输入的所猜数字#18. CompareResult=pare (InputValue);//判断游戏者所猜数字是否正确#19. if(CompareResult==0) //正确#20. {#21. int GuessTimes=guessobj.GetCompareTimes(); #22. cout<<"\n恭喜您,猜对啦!"<<endl <<"您一共猜了"<<GuessTimes<<"次"<<endl;#23. break;#24. }#25. else if(CompareResult>0)#26. {#27. cout<<"\n对不起,您猜的数大啦!\n";#28. }#29. else#30. {#31. cout<<"\n对不起,您猜的数小啦!\n";#32. }#33. }#34. cout<<"\n您还想再玩吗?('n'=No,Others=Yes)\n";#35. cin>>Select;#36. cout<<'\n';#37. if(Select=='n'||Select=='N')#38. {#39. break;#40. }#41. }#42. cout<<"********** 感谢您的使用! **********\n";#43. return 0;#44. }六、案例总结与提高1.案例总结(1)本案例的重点是介绍Visual C++ 6.0下创建并运行一个C++Win32控制台应用程序的基本过程。

c猜数游戏源代码含登录等

c猜数游戏源代码含登录等

c猜数游戏源代码含登录等预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制c++猜数游戏源代码(含登录等)/*c++猜数游戏游戏规则:用户有7/6/5次机会猜测0~99的随机数,猜中+10/20/40分,没猜中-10/20/40分。

用户名、密码、分数被保存在文件中。

制作者:LH*/#include <iostream>#include <fstream>#include <string>#include <ctime>using namespace std;class Users{public:Users(); //构造函数,默认分数为0,用户个数为0,首次使用时建立一个文件void zpm(); //主屏幕private:void choose(); //选择void logo();//主图void dl(); //登录void zc(); //注册void yx_e(); //游戏_简单void yx_m(); //游戏_中等void yx_d(); //游戏_困难void gxsj(); //更新数据void choose_level();//选择级别string name; //当前用户名string mima; //当前密码string rmima; //确认密码int score; //当前分数int num; //计数int n; //用户的个数int score0[50]; //用于查找、比较。

下同。

string name0[50];string mima0[50];};Users::Users(){score=0;num=0;ifstream infile("user.dat");if(!infile) //如果打开失败,即文件不存在{ofstream outfile("user.dat"); //建立此文件outfile<<0<<'\'; //默认用户个数为0 outfile.close();}infile.close();}void Users::zpm(){logo();cout<<"游戏规则:\1.您需要有您的用户名和密码才能登录,如果您是新用户,请注册。

Python小游戏代码

Python小游戏代码

Python5个小游戏代码1. 猜数字游戏import randomdef guess_number():random_number = random.randint(1, 100)attempts = 0while True:user_guess = int(input("请输入一个1到100之间的数字:"))attempts += 1if user_guess > random_number:print("太大了,请再试一次!")elif user_guess < random_number:print("太小了,请再试一次!")else:print(f"恭喜你,猜对了!你用了{attempts}次尝试。

")breakguess_number()这个猜数字游戏的规则很简单,程序随机生成一个1到100之间的数字,然后玩家通过输入猜测的数字来与随机数进行比较。

如果猜测的数字大于或小于随机数,程序会给出相应的提示。

直到玩家猜对为止,程序会显示恭喜消息,并告诉玩家猜对所用的尝试次数。

2. 石头、剪刀、布游戏import randomdef rock_paper_scissors():choices = ['石头', '剪刀', '布']while True:user_choice = input("请选择(石头、剪刀、布):")if user_choice not in choices:print("无效的选择,请重新输入!")continuecomputer_choice = random.choice(choices)print(f"你选择了:{user_choice}")print(f"电脑选择了:{computer_choice}")if user_choice == computer_choice:print("平局!")elif (user_choice == '石头' and computer_choice == '剪刀') or \(user_choice == '剪刀' and computer_choice == '布') or \(user_choice == '布' and computer_choice == '石头'):print("恭喜你,你赢了!")else:print("很遗憾,你输了!")play_again = input("再玩一局?(是/否)")if play_again.lower() != "是" and play_again.lower() != "yes":print("游戏结束。

猜数字游戏源代码

猜数字游戏源代码

#include <stdio.h>#include <stdlib.h>#include <process.h>#include <time.h>int main(){printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t *\n");printf("\t\t *\n");printf("\t\t *\n");printf("\t\t *\n");printf("\n");printf("\t\t *\n");printf("This is a number guessing game.\nJust guess and enjoy it!\nYou should input a number like 1234\n");system("pause");//游戏提示intanswer[4],a=0,b=0,i=0,j=0,guess,g[4],times=0,times_limit=12,win=0,lose=0,best_grade=13,round =0,alter1=1,alter2=1,rank=0,score=0;char face;//变量声明do{round++;times=0;system("cls");printf("Round:%d\tRank:%d\tScore:%d\tBestgrade:%d\n",round,rank,score,best_grade);printf("You will have %d chances to give your answer in this round\n",times_limit);//round初始化for(i=0;i<4;i++){srand((unsigned)time(NULL));answer[i]=rand()%10;for(j=0;j<i;j++){if(answer[j]==answer[i]){answer[i]=rand()%10;j=-1;}}}//随机生成4位answer//测试行printf("The answer is %d%d%d%d\n",answer[0],answer[1],answer[2],answer[3]);do{times++;printf("%2d\t",times);a=0;b=0;//计次,a,b单次初始化scanf("%d",&guess);g[0]=guess/1000;g[1]=(guess-g[0]*1000)/100;g[2]=(guess-g[0]*1000-g[1]*100)/10;g[3]=guess-g[0]*1000-g[1]*100-g[2]*10;//输入求guess各位数字for(i=0;i<4;i++){for(j=0;j<4;j++){b=b+(answer[i]==g[j]&&i!=j);a=a+(answer[i]==g[j]&&i==j);}}if(a!=4) face=1;else face=2;printf("\t%dA%dB\t%c\n",a,b,face);//比较求a,b并输出比较结果if(a<4&&times==times_limit&&score>0){printf("Do you want to get an extra chance with one score?\ny(1)/n(0)\n");scanf("%d",&alter1);if(alter1==1){times--;score--;}}//用分数换次数}while(a!=4&&times<times_limit);//处理给出答案直至答案正确或机会用完if(a==4){printf("Congratulations!\nYou are right!\n");win++;if(times<best_grade) best_grade=times;rank++;times_limit--;score++;}else{printf("Sorry.\nYou are wrong!\nThe answer is %d%d%d%d\n",answer[0],answer[1],answer[2],answer[3]);lose++;}printf("Round:%d\tWin:%d\tLose:%d\tScore:%d\tRank:%d\tBestgrade:%d\n",round,win,lose,score,rank,best_grade);//结果处理if(rank<10){printf("Continue?\ny(1)/n(0)\n");scanf("%d",&alter2);}}while(alter2==1&&rank<10);//等级至顶前选择是否继续system("cls");printf("Game over!\n");printf("Win:%d\tLose:%d\tRank:%d\tBest grade:%d\n",win,lose,rank,best_grade);system("pause");return 0;//结束处理}。

python编写猜数字代码

python编写猜数字代码

python编写猜数字代码Python编写猜数字代码是一项有趣且有挑战性的任务,尤其对于初学者来说。

在本篇文章中,我们将按照以下几个步骤,一步步完成猜数字游戏的编写。

1. 引入随机数模块在Python中,要使用随机数生成器来生成随机数。

可以使用random模块,它可以随机生成整数和浮点数。

首先,我们需要将random模块引入到我们的程序中```pythonimport random```2. 生成随机数在猜数字游戏中,我们需要一个随机数,以便让玩家猜测。

我们可以使用random.randint()函数在指定范围内生成一个随机整数。

例如,如果您想要让玩家猜测的数字在1到10之间,可以使用以下代码:```pythonrandomNumber = random.randint(1, 10)```这将在1到10的范围内生成一个随机整数并存储在名为randomNumber的变量中。

3. 编写主循环现在我们已经有了随机数字,我们可以让玩家开始猜测。

我们需要循环进行以下操作:让玩家输入一个数字,检查它是否等于随机数字,并根据结果给出反馈。

```pythonwhile True:guess = int(input("请输入你猜的数字:"))if guess == randomNumber:print("恭喜你!你猜对了!")breakelif guess < randomNumber:print("不好意思,你猜的数字太小了。

")else:print("不好意思,你猜的数字太大了。

")```我们使用一个while循环来一直询问玩家,直到他猜对了。

我们将玩家的输入转换为整数,然后将其与生成的随机数字进行比较。

如果玩家猜对了,我们使用break跳出循环。

否则,我们根据他猜的数字是过大还是过小,给出相应的反馈。

4. 完整代码最终,我们可以将所有步骤组合成一段完整的代码。

android猜数字游戏程序代码以及效果图

android猜数字游戏程序代码以及效果图

android真机测试运行效果图如下:以下是MainActivity.java文件//*************MainActivity.java************************* package com.example.guessinggame;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {private Button easyBtn; //响应“简单”按钮private Button normalBtn;//响应“标准”按钮private Button hardBtn; //响应“困难”按钮@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);initControl(); //初始化控件}//初始化控件public void initControl(){easyBtn = (Button)findViewById(R.id.easy);normalBtn = (Button)findViewById(R.id.normal);hardBtn = (Button)findViewById(R.id.hard);}//响应button点击事件public void clickButton(View v){Intent intent = new Intent(MainActivity.this , GuessingGame.class);switch (v.getId()) {case R.id.easy:intent.putExtra("numOfData", 3);intent.putExtra("guessNums", 8);startActivity(intent);break;case R.id.normal:intent.putExtra("numOfData", 4);intent.putExtra("guessNums", 10);startActivity(intent);break;case R.id.hard:intent.putExtra("numOfData", 5);intent.putExtra("guessNums", 15);startActivity(intent);break;default:break;}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}以下是GuessingGame.java文件//***************GuessingGame.java****************package com.example.guessinggame;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.graphics.Paint;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnKeyListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageButton;import android.widget.TextView;import android.widget.Toast;public class GuessingGame extends Activity{private int guessNums; //猜测总次数private int guessCounts;//猜测次数统计private int numOfData; //给定猜测的位数private int[] randomNum; //生成随机数// private int countNums; //用户输入数字的位数统计private int[] userInputNum; //用户输入数字private StringBuffer ARight; //已经猜对的数字private int ARightLength; //ARight的长度private List<Integer> list; //用于记录用户按下的数字private ToolMethods toolMth; //获取随机数方法类private EditText editAnswer; //显示输入的答案private TextView guessingInfo;//显示猜测结果private ImageButton imageBtn; //提示按钮private Button createNum; //生成随机数按钮private Button answerBtn; //查看答案private Button guessBtn; //“开始猜”按钮private Button[] numButtons; //拥有0~9数字的button按钮//拥有0~9数字的ID号private int[] numButtonsID = {R.id.zero , R.id.one , R.id.two ,R.id.three , R.id.four , R.id.five ,R.id.six ,R.id.seven , R.id.eight , R.id.nine};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.guessing);init(); //初始化}private void init() {// 数据初始化int temp = 0;temp = getIntent().getIntExtra("guessNums", 0);guessNums = temp;temp = getIntent().getIntExtra("numOfData", 0);numOfData = temp;guessCounts = 0;randomNum = new int[numOfData];// countNums = 0;userInputNum = new int[numOfData];//方法类初始化toolMth = new ToolMethods();//控件初始化editAnswer = (EditText)findViewById(R.id.editAnswer);guessingInfo = (TextView)findViewById(R.id.guessingInfo);imageBtn = (ImageButton)findViewById(R.id.imageBtn);createNum = (Button)findViewById(R.id.randomNum);answerBtn = (Button)findViewById(R.id.answer);guessBtn = (Button)findViewById(R.id.guess);numButtons = new Button[10];for(int i = 0; i < 10; i++){numButtons[i]=(Button)findViewById(numButtonsID[i]);}createNum.setText("随机生成" + numOfData + "位数");editAnswer.setOnKeyListener(new onKeyListener());//输入框响应事件editAnswer.addTextChangedListener(new textWatcher());//输入字符串超过长度响应事件//getApplicationContext()对于整个应用处于运行期间有效toolMth.showDialog(GuessingGame.this , "吴康大侠,您好!", 3000, false, true);}//输入字符串超过长度响应事件public class textWatcher implements TextWatcher{private int selectionStart = 0;private int selectionEnd = 0;private CharSequence temp = null;@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {temp = s;}@Overridepublic void afterTextChanged(Editable s) {selectionStart = editAnswer.getSelectionStart();selectionEnd = editAnswer.getSelectionEnd();if(temp.length() > numOfData){Toast.makeText(GuessingGame.this, "请不要超过" + numOfData + "位数", Toast.LENGTH_SHORT).show();s.delete(selectionStart-1, selectionEnd);int tempSelection = selectionStart;editAnswer.setText(s);editAnswer.setSelection(tempSelection);}}}//输入框响应事件public class onKeyListener implements OnKeyListener{@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if(keyCode == KeyEvent.KEYCODE_DEL){if(editAnswer.getText().toString().length() < numOfData){for(Button tempBtn : numButtons){tempBtn.setEnabled(true);}}editAnswer.requestFocus();}if(keyCode == KeyEvent.KEYCODE_0 || keyCode == KeyEvent.KEYCODE_1 || keyCode == KeyEvent.KEYCODE_2 ||keyCode == KeyEvent.KEYCODE_3 || keyCode == KeyEvent.KEYCODE_4 || keyCode == KeyEvent.KEYCODE_5 ||keyCode == KeyEvent.KEYCODE_6 || keyCode == KeyEvent.KEYCODE_7 || keyCode == KeyEvent.KEYCODE_8 || keyCode == KeyEvent.KEYCODE_9){judgeNumsCount();}return false;}}//响应产生随机数的函数public void createNum(View v){randomNum = toolMth.createNum(numOfData);editAnswer.setVisibility(View.VISIBLE);createNum.setText("不重复的" + numOfData + "位数");createNum.setEnabled(false);answerBtn.setEnabled(true);guessBtn.setEnabled(true);for(int i = 0; i < 10; i++){numButtons[i].setEnabled(true);}}//响应0~9数字按钮的函数public void numButton(View v){for(int i = 0; i < 10; i++){if(v == numButtons[i]){//获取光标的位置int index = editAnswer.getSelectionStart();Editable editable = editAnswer.getText();editable.insert(index, numButtons[i].getText().toString());judgeNumsCount();break;}}}public void judgeNumsCount(){list = new ArrayList<Integer>();//当“输入位数”==“给定猜测的位数”时,数字按钮将失效if(editAnswer.getText().toString().length() == numOfData){for(Button tempBtn : numButtons){tempBtn.setEnabled(false);}int temp = Integer.parseInt(editAnswer.getText().toString());int[] tempNum = new int[numOfData];for(int j = 0; j < numOfData; j++){tempNum[j] = temp % 10;temp = temp/10;}for(int j = numOfData - 1; j >= 0 ; j--){list.add(tempNum[j]);}}else{for(Button tempBtn : numButtons){tempBtn.setEnabled(true);}}}public void guessButton(View v){int Acounts = 0; //统计A的次数int Bcounts = 0; //统计B的次数ARight = new StringBuffer("你已经猜对了:");ARightLength = ARight.length();if(v == guessBtn){if(editAnswer.getText().toString().length() !=numOfData){Toast.makeText(this, "请输入" + numOfData + "位数,不然不能猜的(⊙o⊙)哦~~", Toast.LENGTH_LONG).show();}else if(!toolMth.isRepeated(list)){Toast.makeText(this, "请不要输入重复数字", Toast.LENGTH_LONG).show();}else{judgeNumsCount();for(int i = 0; i < list.size(); i++){userInputNum[i] = list.get(i).intValue();}guessCounts++; //统计已经猜的次数for(int i = 0; i < numOfData; i++)for(int j = 0; j < numOfData; j++){if(userInputNum[i] == randomNum[j]){if(i == j){Acounts++; //统计A的次数ARight.append(userInputNum[i] + " 、");}else Bcounts++; //统计B的次数}}if(guessCounts == guessNums){if(Acounts == numOfData){toolMth.showDialog(GuessingGame.this, "您在最后一次机会中猜对了答案,恭喜您!", 3000, true, false);StringBuffer showStr = new StringBuffer(guessingInfo.getText().toString());showStr.append("\n" + editAnswer.getText().toString() + "---->" + Acounts + "A" + Bcounts + "B");guessingInfo.setText(showStr);}else{AlertDialog.Builder builder = new AlertDialog.Builder(GuessingGame.this).setTitle("可惜...").setMessage("已经超过" + guessNums + "次").setIcon(R.drawable.sad).setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.create().show();}editAnswer.setVisibility(View.INVISIBLE);createNum.setText("随机生成" + numOfData + "位数");createNum.setEnabled(true);guessBtn.setEnabled(false);answerBtn.setEnabled(false);guessingInfo.setText("");guessCounts = 0;ARight.delete(0, ARight.length());}else if(Acounts == numOfData){if(guessCounts == 1){toolMth.showDialog(GuessingGame.this, "您在第一次就猜对了答案,太厉害了!", 3000, true, false);}else{toolMth.showDialog(GuessingGame.this, "恭喜您猜对了!", 3000, true, false);}StringBuffer showStr = new StringBuffer(guessingInfo.getText().toString());showStr.append("\n" + editAnswer.getText().toString() + "---->" + Acounts + "A" + Bcounts + "B");editAnswer.setVisibility(View.INVISIBLE);guessingInfo.setText(showStr);createNum.setText("随机生成" + numOfData + "位数");createNum.setEnabled(true);guessBtn.setEnabled(false);answerBtn.setEnabled(false);guessingInfo.setText("");guessCounts = 0;ARight.delete(0, ARight.length());}else{toolMth.showDialog(GuessingGame.this, "您没有猜对!", 3000, false, false);StringBuffer showStr = new StringBuffer(guessingInfo.getText().toString());showStr.append("\n" + editAnswer.getText().toString() + "---->" + Acounts + "A" + Bcounts + "B");guessingInfo.getPaint().setFakeBoldText(true);guessingInfo.getPaint().setAntiAlias(true);guessingInfo.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);guessingInfo.setText(showStr);}// countNums = 0;for(Button tempBtn : numButtons){tempBtn.setEnabled(true);}if(editAnswer.getText().toString().length() == numOfData){editAnswer.setText("");}}}}public void imageButton(View v){if(v == imageBtn){String tempTitle,tempMessage;if(ARight == null || ARight.length() <= 0){tempTitle = "提示:";tempMessage = "请开始吧!";}else if(ARight.length() == ARightLength){tempTitle = "可惜…";tempMessage = "抱歉,你没有答对";}else{tempTitle = "提示:";tempMessage = ARight.substring(0, ARight.length()-1);}AlertDialog.Builder builder = new AlertDialog.Builder(GuessingGame.this);builder.setTitle(tempTitle).setMessage(tempMessage).setPositiveButton("确定", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {}});builder.create().show();}}public void answerButton(View v){StringBuffer answerStr = new StringBuffer();for(int temp : randomNum){answerStr.append(temp);}AlertDialog.Builder builder = new AlertDialog.Builder(GuessingGame.this);builder.setTitle("答案如下:").setMessage(answerStr).setPositiveButton("确定", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {}});builder.create().show();}public boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu);/** add()方法的四个参数,依次是:1、组别,如果不分组的话就写Menu.NONE,* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单3、顺序,那个菜单现在在前面由这个参数的大小决定* 4、文本,菜单的显示文本*/menu.add(1, 1, 1, "帮助");menu.add(1, 2, 2, "关于");return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {AlertDialog.Builder builder = new AlertDialog.Builder(this);switch (item.getItemId()) {case 1:builder.setTitle("帮助").setMessage(R.string.guessingGame).setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.create().show();break;case 2:builder.setTitle("关于").setMessage("玉树临风,嘿嘿~~").setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.create().show();break;default:break;}return super.onOptionsItemSelected(item);}}以下是ToolMethods.java文件//****************** ToolMethods.java**************** package com.example.guessinggame;import java.util.HashSet;import java.util.List;import java.util.Set;import android.content.Context;import android.view.Gravity;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class ToolMethods {//public int[] createNum(int numOfData) {int[] randomNum = new int[numOfData];int i = 0;String[] tempArray;do{tempArray = getNumber(numOfData);}while(!isRepeated(tempArray));for(String tempNum : tempArray){randomNum[i++] = Integer.parseInt(tempNum);}return randomNum;}//生成随机数(字符串类型)private String[] getNumber(int numOfData) {String[] tempArray = new String[numOfData];for(int i = 0; i < numOfData; i++){int tempNum = (int)(Math.random()*10);tempArray[i] = String.valueOf(tempNum);}return tempArray;}//验证随机数是否重复private boolean isRepeated(String[] tempArray) {Set<String> set = new HashSet<String>();for(String tempStr : tempArray){set.add(tempStr);}if(set.size() != tempArray.length){return false;}return true;}//验证随机数是否重复public boolean isRepeated(List<Integer> list) {Set<Integer> set = new HashSet<Integer>();for(int i = 0; i < list.size(); i++){set.add(list.get(i));}if(set.size() != list.size()){return false;}return true;}public void showDialog(Context context, String message, int milliseconds, boolean useSmileImage, boolean useCoolImage){Toast dialog = Toast.makeText(context, message, Toast.LENGTH_LONG);dialog.setGravity(Gravity.CENTER, 0, 0);LinearLayout dialogView = (LinearLayout)dialog.getView();ImageView useImage = new ImageView(context);if(useSmileImage){useImage.setImageResource(R.drawable.smile);}else if(useCoolImage){useImage.setImageResource(R.drawable.cool);}else{useImage.setImageResource(R.drawable.sad);}dialogView.addView(useImage, 0);dialog.setDuration(milliseconds);dialog.show();}}。

C语言实现猜数字小游戏

C语言实现猜数字小游戏

C语⾔实现猜数字⼩游戏本⽂实例为⼤家分享了C语⾔猜数字的具体代码,供⼤家参考,具体内容如下⼀、描述猜数字游戏。

⼆、程序使⽤srand((unsigned)time(NULL)),产⽣随机数种⼦。

int random = rand() % 100 + 1,产⽣0~100之间的随机数。

应加上头⽂件#include<time.h>#include<stdio.h>#include<windows.h>#include<time.h>void menu(){printf("#######################\n");printf("# 1 Play #\n");printf("# 0 Exit #\n");printf("#######################\n");}void Play(){int m = 0;int random = rand() % 100 + 1;while (1){printf("请输⼊⼀个数字:\n");scanf_s("%d", &m);if (m == random){printf("你猜对了\n");break;}else if (m > random){printf("你猜⼤了,请重新输⼊!");}else{printf("你猜⼩了,请重新输⼊!");}}}int main(){srand((unsigned)time(NULL));int select = 0;do {menu();printf("请选择:");scanf_s("%d", &select);switch (select){case 1:Play();break;case 0:printf("ByeBye!\n");break;default:printf("输⼊错误,请重新输⼊!\n");break;}} while (select);system("pause");return 0;}三、运⾏结果以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

猜数游戏完整代码

猜数游戏完整代码

/**猜数游戏的完整代码*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class GuessNumber_all{public static void compareNum(){ //使用BufferedReader读入数据流try{//获取随机产生的数字int random=(int)(Math.random()*100+1);for( int i=1;;i++){BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.println("请猜数:");int keyBoardNum=Integer.parseInt(br.readLine()); //获取键盘输入的数字//比较两数的大小if(keyBoardNum!=random){if(keyBoardNum>random){System.out.println("大了");}else{System.out.println("小了");}}else{System.out.println("随机数是"+random);System.out.println("恭喜你猜对了,你的战斗力是:"+(int)((1-i/8.0f)*100));break;}if(i>=8){System.out.println("超过次数,尚需努力");System.out.println("正确答案是:"+random);break;}}}catch (Exception e){System.out.println("输入错误,请重新输入");}}public static void GameSet(){System.out.println(" 游戏难度设置:1 :容易 2 :一般3:难");int select=getInput();switch(select){case 1:Easy();break;//处理1:容易case 2:Middle();break;//处理2:一般case 3:Difficult();break;//处理3:难default:System.out.println("程序结束");return;}}public static int getInput(){//从键盘获取数字输入,若输入非数字字符,返回-1int res=-1;try{Scanner x=new Scanner(System.in);//构造一个Scanner对象,其传入参数为System.inres=x.nextInt();}catch(Exception e){//通过异常处理来捕获输入的字符/**System.out.println("非法输入,请重新选择:");rentInVechile(); */}return res;}public static void Easy(){try{//获取随机产生的数字int random=(int)(Math.random()*100+1);for( int i=1;;i++){BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.println("请猜数:");intkeyBoardNum=Integer.parseInt(br.readLine()); //获取键盘输入的数字//比较两数的大小if(keyBoardNum!=random){if(keyBoardNum>random){System.out.println("大了");}else{System.out.println("小了");}}else{System.out.println("随机数是"+random);System.out.println("恭喜你猜对了,你的战斗力是:"+(int)((1-i/8.0f)*100));break;}if(i>=8){System.out.println("超过次数,尚需努力");System.out.println("正确答案是:"+random);break;}}}catch (Exception e){System.out.println("输入错误,请重新输入");}}public static void Middle(){{//获取随机产生的数字int random=(int)(Math.random()*100+1);for( int i=1;;i++){BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.println("请猜数:");intkeyBoardNum=Integer.parseInt(br.readLine()); //获取键盘输入的数字//比较两数的大小if(keyBoardNum!=random){if(keyBoardNum>random){System.out.println("大了");}else{System.out.println("小了");}else{System.out.println("随机数是"+random);System.out.println("恭喜你猜对了,你的战斗力是:"+(int)((1-i/6.0f)*100));break;}if(i>=6){System.out.println("超过次数,尚需努力");System.out.println("正确答案是:"+random);break;}}}catch (Exception e){System.out.println("输入错误,请重新输入");}}public static void Difficult(){try{//获取随机产生的数字int random=(int)(Math.random()*100+1);for( int i=1;;i++){BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.println("请猜数:");intkeyBoardNum=Integer.parseInt(br.readLine()); //获取键盘输入的数字//比较两数的大小if(keyBoardNum!=random){if(keyBoardNum>random){System.out.println("大了");}else{System.out.println("小了");}}else{System.out.println("随机数是"+random);System.out.println("恭喜你猜对了,你的战斗力是:"+(int)((1-i/4.0f)*100));break;}if(i>=4){System.out.println("超过次数,尚需努力");System.out.println("正确答案是:"+random);break;}}}catch (Exception e){System.out.println("输入错误,请重新输入");}}//处理主窗体public static int readSelect(BufferedReader br) {int select=0;while(true){try{System.out.println("请输入您的选择");String s=br.readLine();select=Integer.parseInt(s);if(select>=1 && select<=3)break;System.out.println("无效选择");}catch(Exception ex){System.out.println("请输入数字!");}}return select;}public static void main(String[] args) {System.out.println("请输入一个(0-100)之间的一个数");BufferedReader br=new BufferedReader(new InputStreamReader(System.in));while(true){System.out.println("1.开始猜数");System.out.println("2.游戏参数设置");System.out.println("3.退出");int select=readSelect(br);switch(select){case 1:compareNum();break;case 2:GameSet();break;case 3:System.out.println("程序结束");return;}}}}。

猜数字游戏java源代码

猜数字游戏java源代码

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.util.Random;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.WindowConstants;import java.awt.FlowLayout;public class cszyx extends javax.swing.JFrame {private JLabel jLabel1;private JTextField jTextField1;private JButton jButton1;private int number = 0;private int counter = 0;long startTime = System.currentTimeMillis();long endTime;/***新建一个随机数产生器,然后生成一个1到100之间的整数*/public cszyx() {super ("欢迎来到猜数字游戏");initChuankou();Random random = new Random();number = random.nextInt(100); // 产生一个1-100间的随机数}/***初始化窗口组件*/private void initChuankou() {setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);// 窗口关闭时销毁窗口getContentPane().setLayout(null);// 设置窗口布局为绝对布局JFrame frame = new JFrame("Test Buttons");frame.setLayout(new FlowLayout());jLabel1 = new JLabel();getContentPane().add(jLabel1);jLabel1.setText("<html>欢迎进入有趣的猜数字游戏!请输入1~100中的任意一个数:</html>");jLabel1.setBounds(2, 0, 200, 50);// 设置标签位置jTextField1 = new JTextField();getContentPane().add(jTextField1);jTextField1.setBounds(50, 60, 112, 28);jTextField1.addKeyListener(new KeyAdapter() {// 文本框添加键盘按键监听-监听回车键public void keyPressed(KeyEvent evt) {jTextField1KeyPressed(evt);}});jButton1 = new JButton();getContentPane().add(jButton1);jButton1.setText("确定");jButton1.setBounds(70, 110, 60, 28);jButton1.addActionListener(new ActionListener() {// 按钮添加监听public void actionPerformed(ActionEvent evt) {jButton1ActionPerformed(evt);// 按钮被点击时执行该方法}});pack();this.setSize(250, 200); // 设置窗口大小setLocationRelativeTo(null); // 设置窗口在显示器居中显示} catch (Exception e) {e.printStackTrace();}setVisible(true);}private void jButton1ActionPerformed(ActionEvent evt) {int guess = 0; // 记录玩家所猜测的数字counter++; // 计数器增加一。

用C++编程语言编写猜数字游戏示例

用C++编程语言编写猜数字游戏示例

用C++编程语言编写猜数字游戏示例文章标题:用C++编程语言编写猜数字游戏示例介绍内容:猜数字游戏是一种常见且富有乐趣的游戏,编程语言可以帮助我们实现一个交互式的猜数字游戏程序。

本文将介绍如何使用C++编程语言编写一个简单而有趣的猜数字游戏示例。

首先,我们需要包含C++标准库中的iostream和cstdlib头文件,以便使用输入输出和随机数生成的函数。

接下来,我们可以定义一个范围内的随机数作为答案,然后让玩家进行数字的猜测。

下面是一个示例代码,用于实现一个猜数字游戏:```cpp#include <iostream>#include <cstdlib>#include <ctime>int main() {srand(time(0)); // 根据当前时间设置随机种子int answer = rand() % 100 + 1; // 生成1到100之间的随机数int guess;int attempts = 0;std::cout << "欢迎来到猜数字游戏!\n";std::cout << "我已经想好了一个1到100之间的数字,你来猜猜看吧!\n";do {std::cout << "请输入你的猜测:";std::cin >> guess;if (guess < answer) {std::cout << "猜小了,请再试一次。

\n";} else if (guess > answer) {std::cout << "猜大了,请再试一次。

\n";}attempts++;} while (guess != answer);std::cout << "恭喜你猜对了!答案是" << answer << "。

python初学---猜数字游戏(游戏与AI,原创)

python初学---猜数字游戏(游戏与AI,原创)

python初学---猜数字游戏(游戏与AI,原创)最近在学习python,并⽤python写了⼀个⼩时候玩的益智游戏,猜数字游戏,python语⾔真的是简洁啊,上来就是写代码逻辑,不⽤加⼀堆外壳的东西,话不多说,贴代码,取个名字叫guessL1.py,L1顾名思义是初级版本,就是能玩⽽已,后⾯会出个稍微⾼级⼀点的版本,加点智能化(AI)的东西。

#*********************************L1********************************import randomprint("/*******************************猜数字游戏***********************************/ \游戏规则:系统随机给出1-9的4位数字,您可以输⼊您猜测的4位数字,系统会⽐较并给予反馈,A表⽰数字对,且位置对,B表⽰数字对位置不对,如1A2B表⽰有1位您猜对了数字和位置,有2位您猜对数字,但位置不对。

您总共有6次机会,加油total='123456789'answer=random.sample(total,4)for guessTimes in range(6):guess=""for inputErros in range(3):guess=input("请输⼊4位1-9的不重复数字:")if guess.isdigit()==True and len(guess)==4:guessSet=set(guess)if len(guessSet)==4 and guessSet.isdisjoint(set('0')):breakelse:print("您没有理解游戏规则,游戏结束。

")breakA=0B=0for j in range(4):if guess[j]==answer[j]:A+=1else:for k in range(4):if guess[j]==answer[k]:B+=1if A<4:if guessTimes<5:print("%dA%dB,您还有%d次机会。

C语言编程猜数游戏代码

C语言编程猜数游戏代码

一 实现思路1、游戏模块(1)计算机给出四位随机数,要求数字不重复(2)用户从键盘输入四位数,要求与计算机给出的四位数数字和位数均相同(3)每猜一次,提示信息(x ,y ),x 表示位置和数字均相同的个数,y 表示数字相同,位置 不同的个数。

同时,给出得分「基础分1000分,猜错一次-100,猜对+20」(4)h 键作为帮助键,给出更为准确的信息,具体到某个数字是否正确,每使用一次帮助键-100分;k 键作为答案给出键,得分归零,并结束游戏(5)猜对答案后若选择继续游戏将会以你的得分为基础分进行第二轮游戏2、记录模块(1)每次游戏开始之前,将得分最高的前三名显示出来(2)每次游戏结束后,将前三名分值存盘二 流程图三设计细节(1)头文件的说明stdio.h 包含标准输入输出函数定义的头文件stdlib.h 包含最常用系统函数定义的头文件time.h 包含日期和时间函数定义的头文件conio.h包含通过控制台进行数据输入和数据输出函数定义的头文件string.h包含用字符数组函数定义的头文件(2)自定义函数的说明void start():绘制游戏的进入界面intdifferentnumber():判断电脑生成的四位数字是否一样 voidmakenumber():电脑随机产生四位数并存到一个一维数组中voidinputnumber():用户输入一个四位数并把它们分开存入一个数组中void judge():比较两个数组并给出相关提示voidhelph():帮助键hvoid helpk():帮助键kint game():游戏主流程,详见流程图void reclod():记录函数四系统调试出现的问题1、进入judge函数时,没有对初始的*x和*y重新赋值为0,导致x,y的值在做累加,实数对数值偏大。

2、if-else 语句没有在if后加大括号,只执行到if后一条,第二条则不在if语句的管辖范围内,导致if语句出错3、当两个scanf函数连接较密时,应在第二的scanf里加入空格,以清除缓冲区的内容,以便下一次存储数据(如:scanf(” %c”,&ch)4、文件和源代码没有保存在同一地址下,导致打开文件失败5、显示的内容没有看清楚就被清屏函数清屏,在清屏函数前加一个getch()即可五测试数据及测试结果分析图 1 说明游戏规则按任意键开始游戏图 2 输入一个数字给出提示信息和注解图3 按h键获得帮助图4 按k键正确输入密码后可得到答案同时分数归0图5 按k键输入错误密码无法获得答案图 6 猜对后显示分数图7 将成绩与排行榜比较并显示输入y继续游戏输入n结束游戏六总结c语言对于刚接触的学生,会感到很陌生。

猜数字游戏 流程图+源代码

猜数字游戏  流程图+源代码

1、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。

玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。

A表示位置正确且数字正确,B表示数字正确而位置不正确。

如果4A0B,表示游戏成功。

每次猜错都会有提示,如果八次都未猜对,游戏失败,显示正确答案。

按任意键可以返回主菜单。

主要应运数组和循环实现改功能。

(对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。

)2、功能要求:本游戏显示这样的菜单:(1)随机产生数据(2)用户输入数据(3)退出游戏(4)游戏成功与否都能返回主菜单测试数据:测试数据:3792第一次输入:12340A2B第二次输入:56780A1B第三次输入:08670A1B第四次输入:97861A1B第五次输入:17942A0B第六次输入:27932A2B第七次输入:37924A0B游戏成功3.解题分析利用主函数调用子函数来实现模块化程序设计。

将游戏的每一个功能设计成一个子函数,通过函数调用完成游戏。

主要分为两大模块:随机模式和用户模式。

猜数字游戏的主要功能,由系统自动产生4个随机排列的整数,或者由用户输入4个不同的整数,并给用户8次机会猜测数字的数值和排列顺序。

如果用户在8次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功。

4. 系统总体框图5.函数名称及功能Int main() 主函数void begin(void) 初始页函数void c_input(char *str)输入并判断函数 void c_game(char *temp) 游戏实现函数 void c_rand() 随机模式函数 void c_printf() 用户模式函数 int judgeA(char *a,char *b) 获取A 函数 int judgeB(char *a,char *b) 获取B 函数1. 函数间调用关系7.流程图(1) void c_rand() 随机模式函数流程图(2) void c_printf() 用户模式函数流程图voidc_input(char *str)int judgeA(char *a,char *b)int judgeB(char *a,char *b)(3)主函数流程图8.运行结果(1)起始页(2)随机模式(3)用户输入模式综合题源程序#include <stdio.h>//预处理指令#include <stdlib.h>//stdlib.h里面定义了五种类型、一些宏和通用工具函数#include <conio.h>//定义数据输入、输出的函数,主要是用户通过按键盘操作,如getch()函数#include <string.h>//定义字符处理函数的头文件#include <time.h>//包含系统时间函数的头文件void begin(void);//初始页void c_game(char *temp);void c_rand();int judgeA(char *a,char *b);//获取Aint judgeB(char *a,char *b);//获取Bchar x[4],y[4];//y[4]是用户输入的数字,x[4]是系统随机产生的数字void c_input(char *str)//输入函数{int i,j;//定义两个变量input:gets(str);//输入一个字符串putchar('\n');//格式控制for(i=0;i<4;i++)//循环输入{if(str[i]<'0'||str[i]>'9')//判断输入是否合法{printf("无效输入,请重新输入:");goto input;//无条件转移语句}for(j=0;j<i;j++){if(str[i]==str[j]){printf("无效输入,请重新输入:");goto input;}}}}void c_game(char *temp)//游戏实现函数{int a,b,i;for(i=0;i<8;i++)//for循环实现八次输入{printf("第%d 次输入:",i+1);c_input(y);a=judgeA(temp,y);//获取ab=judgeB(temp,y);//获取bif(a==4)//游戏成功条件{printf("游戏成功,按下任意键返回主菜单。

C语言实现猜数字的小游戏

C语言实现猜数字的小游戏

C语⾔实现猜数字的⼩游戏使⽤C语⾔来实现⼀个猜数字的⼩游戏学习C语⾔有⼏天的时间了,在这期间对C语⾔的语法,程序结构有了了解,⾃⼰也练习过许多的代码,今天分享⼀个猜数字的代码。

⼀、猜数字游戏描述:由程序随机⽣成⼀个1~100之间的数字,由⽤户去猜,直⾄猜对为⽌1.代码代码如下:#include <stdio.h>#include <stdlib.h>#include <time.h>void menu(void){printf("|---------------------------------|\n");printf("|*********************************|\n");printf("|*************1、PLAY*************|\n");printf("|*************0、EXIT*************|\n");printf("|*********************************|\n");printf("|---------------------------------|\n");}void game(void){int randomNum = rand() % 100 + 1;int guessNum = 0;while (1){printf("请输⼊你猜的数字:>\n");scanf("%d",&guessNum);if (guessNum > randomNum)printf("猜⼤了!\n");else if (guessNum < randomNum)printf("猜⼩了!\n");else{printf("恭喜你!猜对了!\n");break;}}}int main(){srand((size_t)time(NULL));int choice = 0;do{menu();printf("请输⼊你的选择:>\n");scanf("%d", &choice);switch (choice){case 0:printf("退出游戏!\n");break;case 1:game();break;default:printf("选择错误!\n请重新选择!\n");break;}} while (choice);return 0;}分析:void menu(void);void game(void);⾸先定义两个函数,分别在main函数中调⽤。

实验任务5-编写猜数游戏

实验任务5-编写猜数游戏

实验任务5-编写猜数游戏【程序题⽬】编写猜数游戏【程序设计思想】⾸先⽤随机⽅法输出1-100的任意整数,输⼊猜的数字,⽤if else 判断与随机数字的⼤⼩,输出判断的结果,当没猜对的时候,⽤do while 循环输出继续游戏输⼊1,否输⼊0,当猜数成功时⽤do while 循环,输⼊0则进⾏下⼀轮循环,输⼊1 ,则退出。

【程序流程图】【源程序】//信1605-1 寇肖萌 20163446import javax.swing.JOptionPane;public class Number{public static void main(String args[]){String RandomNumber;int number1;int i;int c;do {i=(int)(Math.random()*101)+1;do {RandomNumber=JOptionPane.showInputDialog("随机数\n");number1 = Integer.parseInt(RandomNumber);if(number1==i){JOptionPane.showMessageDialog(null,"恭喜您","猜对了",JOptionPane.PLAIN_MESSAGE);}else if(number1<i){JOptionPane.showMessageDialog(null,null,"猜⼩了",JOptionPane.PLAIN_MESSAGE);}else{JOptionPane.showMessageDialog(null,null,"猜⼤了",JOptionPane.PLAIN_MESSAGE);}} while(number1!=i);String Number;Number=JOptionPane.showInputDialog(null,"是否要继续猜数,继续请输⼊1,否输⼊0\n"); c=Integer.parseInt(Number);}while(number1==i&&c==1);}}【实验结果截图】(此时若输⼊0,则退出程序输⼊1,则重新开始⼀个猜数游戏)【编译错误分析】刚开始不能执⾏新的猜数游戏,经过多次调试,我⼜多加⼀个do while 循环,当没猜对数时进⾏⼀直猜数的循环,当猜对之后并且选择继续游戏,输⼊1重新进⾏猜数游戏,输⼊0则退出游戏,当输⼊int型数字的时候,默认存储都是String类型,需要⽤Integer.parseInt()来转换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2A0B 第六次输入: 2793
2A2B 第七次输入: 3792
4A0B 游戏成功!!!
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
退出游戏 随机模式 用户模式 开始游戏
3.解题分析
利用主函数调用子函数来实现模块化程序设计。将游戏的每一个功能设计 成一个子函数,通过函数调用完成游戏。主要分为两大模块:随机模式和用户 模式。
猜数字游戏的主要功能,由系统自动产生 4 个随机排列的整数,或者由用 户输入 4 个不同的整数,并给用户 8 次机会猜测数字的数值和排列顺序。如果 用户在 8 次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜 数字成功名称及功能
Int main() 主函数
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
1、问题描述:
该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。 玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数 字正确,B表示数字正确而位置不正确。如果4A0B,表示游戏成功。每次猜错都 会有提示,如果八次都未猜对,游戏失败,显示正确答案。按任意键可以返回主 菜单。主要应运数组和循环实现改功能。(对该系统有兴趣的同学可以在实现系 统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于 纪录保持者,则为破纪录。)
2、功能要求:
本游戏显示这样的菜单: (1) 随机产生数据 (2) 用户输入数据 (3) 退出游戏 (4)游戏成功与否都能返回主菜单 测试数据: 测试数据: 3792 第一次输入: 1234
0A2B 第二次输入: 5678
0A1B 第三次输入: 0867
0A1B 第四次输入: 9786
1A1B 第五次输入: 1794
相关文档
最新文档