类、对象和方法

电脑:

package com.game2;

public class Computer {
String name;
int score;

public int showFist(){
int num = (int)(Math.random()*10) % 3+1;
switch(num){
case 1:
System.out.println("电脑出:剪刀");
break;
case 2:
System.out.println("电脑出:石头");
break;
case 3:
System.out.println("电脑出:布");
break;
}
return num;
}
}

人:

package com.game2;

import java.util.Scanner;

public class Person {
String name;
int score;

public int showFist(){
Scanner input = new Scanner(System.in);
System.out.println("请出拳:1.剪刀 2.石头 3.布");
int num = input.nextInt();
switch(num){
case 1:
System.out.println("你出:剪刀");
break;
case 2:
System.out.println("你出:石头");
break;
case 3:
System.out.println("你出:布");
break;
}
return num;
}
}

比赛规则:

package com.game2;

import java.util.Scanner;

public class Game {

// Person person;
// Computer computer;
//计数
int count = 0;

public void startGame(){
Person p = new Person();
Computer computer = new Computer();

//走一下过场
System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------");
System.out.println("\n\t\t******************");
System.out.println ("\t\t** 猜拳, 开始 **");
System.out.println ("\t\t******************");

System.out.println("\n出拳规则:1.剪刀 2.石头 3.布");

Scanner input = new Scanner(System.in);
System.out.println("请选择电脑的角色:1.鸣人 2.路飞 3.草稚京");
int role = input.nextInt();
switch(role){
case 1:
computer.name = "鸣人";
break;
case 2:
computer.name = "路飞";
break;
case 3:
computer.name = "草稚京";
break;
}
System.out.println("请输入你的名字:");
p.name = input.next();

//正式开始
System.out.println("要开始吗?(y/n)");
String start = input.next();

//1,.正式开始:电脑出拳 人出拳
while(start.equals("y")){
int n1 = computer.showFist();
int n2 = p.showFist();//比较谁赢了,那个赢了,人赢了,p.score++ 电脑赢了computer.score++
if(n1==1&&n2==1){
System.out.println(computer.name+"出剪刀,"+p.name+"出剪刀,打成平手,不计分");
}
else if(n1==1&&n2==2){
System.out.println(computer.name+"出剪刀,"+p.name+"出石头,"+p.name+"得一分");
p.score++;
}
else if(n1==1&&n2==3){
System.out.println(computer.name+"出剪刀,"+p.name+"出布,"+computer.name+"得一分");
computer.score++;
}
else if(n1==2&&n2==2){
System.out.println(computer.name+"出石头,"+p.name+"出石头,打成平手,不计分");
}
else if(n1==2&&n2==3){
System.out.println(computer.name+"出石头,"+p.name+"出布,"+p.name+"得一分");
p.score++;
}
else if(n1==2&&n2==1){
System.out.println(computer.name+"出石头,"+p.name+"出剪刀,"+computer.name+"得一分");
computer.score++;
}
else if(n1==3&&n2==3){
System.out.println(computer.name+"出布,"+p.name+"出布,打成平手,不计分");
}
else if(n1==3&&n2==1){
System.out.println(computer.name+"出布,"+p.name+"出剪刀,"+p.name+"得一分");
p.score++;
}
else if(n1==3&&n2==2){
System.out.println(computer.name+"出布,"+p.name+"出石头,"+computer.name+"得一分");
computer.score++;
}
count++;//计数,一共比较了多少盘
System.out.println("还要继续吗?(y/n)");//循环是否继续
String con = input.next();
if(con.equals("y"))
continue;
else
break;
}//做总结
if(p.score>computer.score){
System.out.println(computer.name+"和"+p.name+"共比赛"+count+"局,其中"+computer.name+"得"+computer.score+"分,"+p.name+"得"+p.score"分,故本轮比赛"+p.name+"胜出");
}
else if(p.score<computer.score){
System.out.println(computer.name+"和"+p.name+"共比赛"+count+"局,其中"+computer.name+"得"+computer.score+"分,"+p.name+"得"+p.score"分,故本轮比赛"+computer.name+"胜出");
}
else{
System.out.println(computer.name+"和"+p.name+"共比赛"+count+"局,其中"+computer.name+"得"+computer.score+"分,"+p.name+"得"+p.score"分,故本轮比赛打平");
}
}
}

实现游戏:

package com.game2;

public class Test {

public static void main(String[] args) {
Game g = new Game();
g.startGame();
}
}

上述代码体现了实际编程的过程,为了提高效率和质量,程序的编写也可以借用工厂的生产模式,达到效率的提升和成本压缩。

需要注意几点:

1.不同的类下面引用其它类的方法需要先实例化一个对象,用对象加"."引用方法

2.同一类下面的不同方法可以直接调用

posted @ 2017-03-26 23:08  zixinrensheng  阅读(126)  评论(0编辑  收藏  举报