黑马程序员技术交流社区
标题:
分享一个自己的小练习(详细标明了注释)...
[打印本页]
作者:
张周飞
时间:
2014-7-2 17:46
标题:
分享一个自己的小练习(详细标明了注释)...
本帖最后由 张周飞 于 2014-7-4 10:00 编辑
/**
通过控制台命令方式实现一个猜拳的游戏,用户通过输入与(1/剪刀.2/石头.3/布),
与电脑PK,最后通过积分的多少判定胜负。
*/
/*
思路-----1:在控制台中提示玩法--2:是否开始游戏(接收1/是,0/否)---3:接收游戏的局数
---4:循环接收用户的出拳(1/剪刀.2/石头.3/布)----5:系统也要随机出拳
-----6:每一次猜完拳进行记录一次胜的次数。----7:公布结果.
*/
import java.util.Scanner;
//控制台包/类
//import java.util.Arrays; 排序包/类,应该用Arrays.sort(num);
import java.util.Random;
//随机数包/类
public class HomeWork{
public static void main(String[] args ){
Game g=new Game();
g.begin();
}
}
/**猜拳游戏类**/
class Game{
/*开始游戏的方法*/
public void begin(){
System.out.println("****************************");
System.out.println("猜拳游戏的开始");
System.out.println("***游戏的规则:1/剪刀.2/石头.3/布*****");
Scanner input=new Scanner(System.in);
//实例 控制台包/类
System.out.println("***输入1表示游戏开始!/输入0表示退出游戏不玩了");
int result=input.nextInt();
//控制台输入
if(result==1){
System.out.println("请输入猜拳的次数");
int
num
=input.nextInt();
//输入猜拳到次数
play(
num
);
//也可以写成这样 this.play();表示 本类中 在这个方法中 调用带一个参数的方法。
}else{
System.out.println("不玩了,GOODBAY BYE BYE!!!!");
}
}
public void play(
int num
){
//带一个参数的方法或者叫函数。
/****以下代码是
play(
int num
) 的
----核心方法****/
int userscore=0;
//用户胜局的记录
int pcscore=0;
//电脑胜局的记录
//电脑随机出来的数(拳)
Random R=new Random();
//实例 随机数包/类 数
while(
num
>0){
int
X
=R.nextInt(3)+1;
//随机生成数
System.out.println("请输入出的拳:1 2 3");
Scanner input=new Scanner(System.in);
int
S
=input.nextInt();
//用户输入的数/拳 1 2 3
if(
S
==1){
//第一种情况
switch(
X
){
case 1:
System.out.println("平局,你出的是剪刀!电脑出的也是剪刀");
break;
case 2:
System.out.println("电脑胜了!,你出的是剪刀!电脑出的也是石头");
pcscore++;
break;
case 3:
System.out.println("你胜了!,你出的是剪刀!电脑出的也是布");
userscore++;
break;
}
}
if(
S
==2){
//第二种情况
switch(
X
){
case 1:
System.out.println("你胜了!,你出的是石头!电脑出的也是剪刀");
userscore++;
break;
case 2:
System.out.println("平局,你出的是石头!电脑出的也是石头");
break;
case 3:
System.out.println("电脑胜了!,你出的是石头!电脑出的也是布");
pcscore++;
break;
}
}
if(
S
==3){
//第三种情况
switch(
X
){
case 1:
System.out.println("电脑胜了!,你出的是布!电脑出的也是剪刀");
pcscore++;
break;
case 2:
System.out.println("你胜了!,你出的是布!电脑出的也是石头");
userscore++;
break;
case 3:
System.out.println("平局,你出的是布!电脑出的也是布");
break;
}
}
num
--;
//每循环一次减去1,
}
//whlie()循环结束
System.out.println("***********************");
System.out.println("你胜:"+ userscore);
System.out.println("电脑胜:"+ pcscore);
if(userscore==pcscore){
System.out.println("平手....");
}else if(userscore>pcscore){
System.out.println("你赢了!");
}else{
System.out.println("你输了!");
}
}
//play()结束
}
//Game类结束
:)大家不妨可以试试做做 javac java 一下.........................................
作者:
luheqi
时间:
2014-7-2 18:02
代码可优化:
剪刀 1 石头 2 布 3
当两者出的相等 平局
若 人出的数 perNum - PCNum == 1 || perNum - PCNum == -2 人赢了
else 电脑赢。。。
作者:
张周飞
时间:
2014-7-2 20:48
luheqi 发表于 2014-7-2 18:02
代码可优化:
剪刀 1 石头 2 布 3
当两者出的相等 平局
已修改
作者:
张周飞
时间:
2014-7-2 20:50
本人 已修改...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2