吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5480|回复: 22
收起左侧

[Java 转载] 【Java】【分享】面向对象之猜拳游戏(适合小白)

  [复制链接]
夏橙M兮 发表于 2018-7-31 10:03
昨天老师布置了猜拳小游戏,我也做了一份。当时自我感觉还不错。结果老师今天花了20分钟讲了一下。发现自己还是不行呀。main方法写的太多。不太简洁。
封上老师的源码:https://www.lanzouj.com/i1j732h
没有比较就没有伤害。下面封上我自己写的源码。我写的代码比较少。
[Java] 纯文本查看 复制代码
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/3  4(返回上一级)");
				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;
			}
			
		}
	}
}

QQ图片20180731100203.png
QQ图片20180731095834.png

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
xlose13720 + 1 哪里有对象,我有对象可以面对,我就不写代码了
吃西瓜 + 1 + 1 谢谢@Thanks!
心病 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

checkz 发表于 2018-7-31 13:47
torboxin 发表于 2018-7-31 11:11
五子棋还是控制台程序?没有界面你还能记住自己在那里有棋吗?

***1****************
***1**0*************
***0****************
********************
********************

这样你能懂吗?
 楼主| 夏橙M兮 发表于 2018-7-31 18:00
checkz 发表于 2018-7-31 15:01
我们学基础的时候就是做的这个  还有一个控制台的  影院售票选座的 对于基础知识很锻炼人的

感觉没有思路呀!有没有源码呀?我钻研一波。
momoo3 发表于 2018-7-31 10:20
checkz 发表于 2018-7-31 10:53
楼主可以尝试写一个五子棋的控制台程序
心病 发表于 2018-7-31 10:53
学习了学习了
吃西瓜 发表于 2018-7-31 10:57
感谢感谢,正学到面向对象这里
torboxin 发表于 2018-7-31 11:11
checkz 发表于 2018-7-31 10:53
楼主可以尝试写一个五子棋的控制台程序

五子棋还是控制台程序?没有界面你还能记住自己在那里有棋吗?
 楼主| 夏橙M兮 发表于 2018-7-31 14:38
checkz 发表于 2018-7-31 10:53
楼主可以尝试写一个五子棋的控制台程序

感觉这个有点难度呀。工程量感觉有点大。
checkz 发表于 2018-7-31 15:01
夏橙M兮 发表于 2018-7-31 14:38
感觉这个有点难度呀。工程量感觉有点大。

我们学基础的时候就是做的这个  还有一个控制台的  影院售票选座的 对于基础知识很锻炼人的
jws6994 发表于 2018-7-31 16:04
问一哈,五子棋可以用python写出来吗???   最近开始学
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 21:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表