在黑马学习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 ? "恭喜你获得最终的胜利!!虽然没啥奖励=。=" : "再来亿把你一定能赢!!");
}
}
|
|