【Java】【分享】面向对象之猜拳游戏(适合小白)
昨天老师布置了猜拳小游戏,我也做了一份。当时自我感觉还不错。结果老师今天花了20分钟讲了一下。发现自己还是不行呀。main方法写的太多。不太简洁。封上老师的源码:https://www.lanzouj.com/i1j732h
没有比较就没有伤害。下面封上我自己写的源码。我写的代码比较少。
package day06;
import java.util.Scanner;
class Computer{
private int score;
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public int punch()
{
int rd=(int)(Math.random()*3+1);
switch(rd){
case 1:System.out.println("电脑出了石头");break;
case 2:System.out.println("电脑出了剪刀");break;
case 3:System.out.println("电脑出了布");
}
return rd;
}
}
class Person{
private int score;
private int rd;
public int getScore() {
return score;
}
public int getRd() {
return rd;
}
public void setRd(int rd) {
this.rd = rd;
}
public void setScore(int score) {
this.score = score;
}
public int punch()
{
switch(rd){
case 1:System.out.println("玩家你出了石头");break;
case 2:System.out.println("玩家你出了剪刀");break;
case 3:System.out.println("玩家你出了布");
}
return rd;
}
}
public class GuessFistGame {
public static int play(Computer c,Person p,int a){
int cFist=c.punch();
int pFist=p.punch();
System.out.println("----------------游戏结束------------");
if(cFist==pFist)
System.out.println("平局");
else if((cFist==1 && pFist==2) || (cFist==2 && pFist==3) || (cFist==3 && pFist==1))
System.out.println("电脑赢,你输了!");
else{
a++;
System.out.println("恭喜你,赢了电脑。");
}
return a;
}
public static void result(int a,int b){
System.out.println("总共游戏"+a+"次"+"你赢了电脑"+b+"次");
}
public static void main(String[] args) {
int winP=0;
int times=0;
boolean menu=true;
Computer c=new Computer();
Person p=new Person();
Scanner in= new Scanner(System.in);
while(menu)
{
System.out.println("-----------------猜拳游戏-------------\n"
+ "\t\t1.开始-------(1代表石头,2代表剪刀,3代表石头)\n"
+ "\t\t2.查看总记录\n"
+ "\t\t3.退出游戏\n");
System.out.print("请输入您的选项:");
int tab=in.nextInt();
switch(tab){
case 1:
while(true){
System.out.println("游戏开始,请输入你输入数字1/2/34(返回上一级)");
int rd=in.nextInt();
if(rd==4)
break;
p.setRd(rd);
times++;
winP=play(c,p,winP);
System.out.println("----------------------------");
}
break;
case 2:
result(times,winP);
break;
case 3:
menu=false;
}
}
}
}
torboxin 发表于 2018-7-31 11:11
五子棋还是控制台程序?没有界面你还能记住自己在那里有棋吗?
***1****************
***1**0*************
***0****************
********************
********************
这样你能懂吗? checkz 发表于 2018-7-31 15:01
我们学基础的时候就是做的这个还有一个控制台的影院售票选座的 对于基础知识很锻炼人的
感觉没有思路呀!有没有源码呀?我钻研一波。 学习了,正在学习编程中。 楼主可以尝试写一个五子棋的控制台程序 学习了学习了 感谢感谢,正学到面向对象这里 checkz 发表于 2018-7-31 10:53
楼主可以尝试写一个五子棋的控制台程序
五子棋还是控制台程序?没有界面你还能记住自己在那里有棋吗? checkz 发表于 2018-7-31 10:53
楼主可以尝试写一个五子棋的控制台程序
感觉这个有点难度呀。工程量感觉有点大。 夏橙M兮 发表于 2018-7-31 14:38
感觉这个有点难度呀。工程量感觉有点大。
我们学基础的时候就是做的这个还有一个控制台的影院售票选座的 对于基础知识很锻炼人的 问一哈,五子棋可以用python写出来吗??? 最近开始学