A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

jemo

中级黑马

  • 黑马币:139

  • 帖子:39

  • 精华:0

© jemo 中级黑马   /  2019-5-25 20:35  /  804 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在黑马学习Java也已经十多天了,在这十多天之中我学习了基础班的大部分内容。在这我要给大家分享一下关于我这些天所学习的内容,下面我将分享我的部分写的代码,希望对大家的学习有所帮助。
打印图形示例:
    *
   ***
  *****
*******
*********
*******
  *****
   ***
*
代码如下(有两种解法):
package com.itcast.test;

/**
* @作者 wxy
* @日期 2019/5/22
* @时间 10:08
*/
public class Test10 {
    public static void main(String[] args) {
        int endCount = 1;//控制需要打印的次数
        for (int countAll = 1; countAll <= endCount; countAll++) {//countAll 为当前打印的次数,当countAll 大于 endCount 的时候会停止打印
            int count = 1;//当行号大于中间行时可用count来重新找规律
            int sumLine = 9;//定义总行数,必须为奇数
            int caternLine = sumLine / 2 + 1;//得出中间行所在的行数
            for (int i = 1; i <= sumLine; i++) {//打印所有行
                if (i <= caternLine) {//当行数小于等于中间行时
                    for (int i1 = 0; i1 < caternLine - i; i1++) {//空格的数量为 中间行数 减去 所在行数
                        System.out.print(" ");
                    }
                    for (int i1 = 0; i1 < 2 * i - 1; i1++) {//* 的数量为 两倍的行数 减 一
                        System.out.print("*");
                    }
                } else {//当行数大于中间行时
                    for (int i1 = 0; i1 < i - caternLine; i1++) {//空格的数量为 行数 减去 中间行数
                        System.out.print(" ");
                    }
                    for (int i1 = 0; i1 < sumLine - 2 * count; i1++) {//*的数量为 总行数 减去 两倍的新行数
                        System.out.print("*");
                    }
                    count++;
                }
                /*for (int i1 = 1; i1 <= sumLine; i1++) {
                    int j = i;//让j与行数相等
                    if (j > caternLine) {//当行数大于中间行的时候,j的值随行号的增加而减少
                        j = sumLine - i + 1;
                    }
                    if (i1 >= caternLine - j + 1 && i1 <= caternLine + j - 1) {//寻找每行*的个数与行数的规律,用if判断填的是空白还是*
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }*/
                System.out.println();
            }
        }
    }
}


下面是一个猜拳的小游戏:
代码如下:
/*
小游戏:猜拳
本游戏需要运用所学的内容为:
随机数Random 的导入与使用,用于生成答案
输入数据Scanner 的导入与使用,用于输入数据
while 循环,用来形成赛制三局两胜制
if 条件判断语句,用来判断输入的数据是否异常,判断选手是胜利还是失败
switch 语句,用来检测电脑随机生成的随机数,并输出相应的出拳方式
*/
import java.util.Random;
import java.util.Scanner;

public class Game2 {
    public static void main(String[] args) {
        Random r = new Random();//导入随机数
        Scanner sca = new Scanner(System.in);//导入输入数据
        System.out.println("猜拳游戏正式开始");
        System.out.println("规则说明:");
        System.out.println("玩家请输入数字 1,2或3,这三个数字分别代表剪刀,石头与布");
        System.out.println("本游戏为三局两胜制");
        int fufen = 0;//负分,一个赛制中失败之后会减少,一轮游戏失败了两次之后会被判定为负
        int defen = 0;//得分,一个赛制中胜利之后会增加,一轮游戏得胜了两次之后会被判定为胜
        while (!(defen == 2 || fufen == -2)) {//游戏核心内容,只有得分或负分达到2分了之后游戏才会结束
            System.out.println("请输入你想要出的拳相对应的数字1:剪刀;2:石头;3:布");
            int answer = r.nextInt(3) + 1;//电脑随机生成1,2,3中的一个值
            double j = sca.nextDouble();//玩家输入的数据,是玩家想要出的拳
            if (j != 1 && j != 2 && j != 3) {//判断玩家输入的数据是否异常
                System.out.println("您输入的数字异常请重新输入,正确的数字与对应的出拳为1:剪刀;2:石头;3:布");
                continue;//跳出本次循环,直接下一轮,需玩家重新出拳
            }
            switch (answer) {//判断电脑出了什么,用于增加游戏与玩家的互动,便于玩家判断胜负,如无会让玩家觉得赢的莫名其妙或输的莫名其妙
                case 1:
                    System.out.println("电脑出了剪刀");
                    break;
                case 2:
                    System.out.println("电脑出了石头");
                    break;
                default:
                    System.out.println("电脑出了布");
                    break;
            }
            if (j == answer) {//用于判断玩家与电脑谁胜谁负
                System.out.println("本轮比赛是平局");
            } else if ((j == 1 && answer == 2) || (j == 2 && answer == 3) || (j == 3 && answer == 1)) {
                System.out.println("本轮比赛你输了");
                fufen--;
            } else {
                System.out.println("本轮比赛你赢了");
                defen++;
            }
        }
        System.out.println(defen == 2 ? "恭喜你获得最终的胜利!!虽然没啥奖励=。=" : "再来亿把你一定能赢!!");
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马