类、对象和方法
电脑:
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.同一类下面的不同方法可以直接调用