java猜数游戏(产生1-100的随机数,5次没有猜中就退出,猜错了给予提示)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java猜数游戏(产生1-100的随机数,5次没有猜中就退出,猜错了给予提示)相关的知识,希望对你有一定的参考价值。

5次没有猜中就退出怎么搞 我第6次还可以输入这是怎么回事?
public static void main(String[] args)
// 2、猜数游戏(产生1-100的随机数,5次没有猜中就退出,猜错了给予提示)
System.out.println("请输入你猜的数字:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
Random rand = new Random();
int n = rand.nextInt(101);
while (true)
if (a == n)
System.out.println("恭喜你猜对了!");
break;
else
for (int i = 1; i <=5;i++)

System.out.println("不好意思你猜错了...");
a = sc.nextInt();


break;





package cc.icoc.javaxu;

import java.io.IOException;
import java.util.Random;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class GuessActivity extends Activity
/** Called when the activity is first created. */
Button btnOK,btnClean,btnGet;
EditText input;
TextView outputInfo;
MediaPlayer media;

String getStr;
int getNum = 10;
int answer;
int count = 0;
final String TAG = "XU";

public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.guess);
new Thread(new MyRunnable()).start();
System.out.println("运行");
//使用随机数来给answer变量赋值
Random random = new Random();
answer = random.nextInt(100);

input = (EditText)this.findViewById(R.id.input);
outputInfo = (TextView)this.findViewById(R.id.info);

btnOK = (Button)this.findViewById(R.id.btnClick);
btnGet = (Button)this.findViewById(R.id.btnGet);
btnClean = (Button)this.findViewById(R.id.btnClean);
btnOK.setOnClickListener(new ButtonEvent());
btnGet.setOnClickListener(new ButtonEvent());
btnClean.setOnClickListener(new ButtonEvent());

System.out.println("运行1");



public void getNumber()
Random random = new Random();
answer = random.nextInt(100);


class ButtonEvent implements OnClickListener

public void onClick(View v)
getStr = input.getText().toString();
System.out.println("getStr==="+getStr);
System.out.println("文本框当前值"+input.getText());
System.out.println("文本框当前值"+input.getText().toString().length()+"值:"+Integer.parseInt(getStr));

// 点击猜一下按钮的事件
if(v.getId() == R.id.btnClick)

System.out.println("文本框当前值"+input.getText().toString().trim().length());
getNum = Integer.parseInt(getStr);
if(input.getText().toString() == null)

Toast.makeText(GuessActivity.this, "你还没有输入数字", Toast.LENGTH_SHORT).show();

else

if(answer == getNum)

outputInfo.setText("");
outputInfo.setText(R.string.right);
Toast.makeText(GuessActivity.this, "你总共猜了 "+count+" 次", Toast.LENGTH_SHORT).show();
getNumber();


else if(answer > getNum)

outputInfo.setText("");
outputInfo.setText(R.string.tooSmall);


else if(answer < getNum)

outputInfo.setText("");
outputInfo.setText(R.string.tooBig);


count++;


if(v.getId() == R.id.btnGet)

outputInfo.setText("");
outputInfo.setText("答案是: "+answer);
getNumber();


//清除按钮的事件
if(v.getId() == R.id.btnClean)

input.setText("");
System.out.println("Count= "+count);


if(count == 6)

outputInfo.setText("");
outputInfo.setText(R.string.bendan);


if(count == 10)

outputInfo.setText("");
outputInfo.setText(R.string.bendan2);





class MyRunnable implements Runnable

public void run()
System.out.println("MyRunnable"+Thread.currentThread().getId()+Thread.currentThread().getName());
// TODO Auto-generated method stub
System.out.println("运行2");

sound();


private void sound()
// TODO Auto-generated method stub
media = new MediaPlayer();
if (media != null)

media.stop();

media.reset();
media = MediaPlayer.create(GuessActivity.this,R.raw.guess);

try
media.prepare();
catch (IllegalStateException e)
// TODO Auto-generated catch block
e.printStackTrace();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();

media.start();



参考技术A

你程序里 for循环之外 已经输入了一次,所以for循环改成: for (int i = 1; i < 5;i++) 就行,

我修改了下你的代码:

import java.util.Random;
import java.util.Scanner;

public class test9 
public static void main(String[] args) 
// 2、猜数游戏(产生1-100的随机数,5次没有猜中就退出,猜错了给予提示)
System.out.println("请输入你猜的数字:");
Scanner sc = new Scanner(System.in);
Random rand = new Random();
int n = rand.nextInt(101);
System.out.println(n);
int c = 0;
while (sc.hasNextInt()) 
if (sc.nextInt() == n) 
System.out.println("恭喜你猜对了!");
break;
 else 
c++;
System.out.println("不好意思你猜错了...");
if(c == 5)
System.out.println("Game Over");
break;



sc.close();

本回答被提问者采纳
参考技术B while循环条件改成i<5就成了,当i<=5的时候就会循环5次,再加上你前面还有一次输入,所以输错的情况下6次才会退出。追问

但是第五次输入时就没提示了

追答

第五次的时候for循环结束,但是for循环内部还有一句输入语句,所以还能接收一次输入,但是不能进行判断输错还是输对。

参考技术C for (int i = 1; i <=5;i++)

你把=去掉
成for (int i = 1; i <5;i++)就可以了

你前面已经输入了一次 又循环了5次 所以可以6次

以上是关于java猜数游戏(产生1-100的随机数,5次没有猜中就退出,猜错了给予提示)的主要内容,如果未能解决你的问题,请参考以下文章

Java随机数的应用-猜数游戏

猜数游戏:范围时1-100,若错误就提示大了还是小了,猜对则结束,允许猜10次,游戏结束后对玩家评价:1次猜对;5次内猜对;10次内猜对;没有猜对

java实验之猜数游戏

例4-5 猜数游戏 产生随机数

猜数游戏1.0

猜数游戏