实训总结(三)
2016-08-30 17:04
127 查看
如果你需要理由去放弃现在的学习,那么你就要想下你的信念和追求是什么,也许你就能找打正确的学习方法和方向
这些都是比较有意思的,因为在这里面有很多值得我们注意的地方,
比如说,水仙花数的命名规范和杨奎三角的打印格式,这些都是需要按照规定的要求去实现的,
实现代码一般都会有自己命名的行列的数字控制,其实这些都是业务的一种简单的实现吧,网上代码很多,我就放最主要的来说明下
在这个语句中首先把二维数组转换成一位数组组,然后去计算中间不确定值,最后汇总,这也是简化的一种好的方法实现吧
,当然从这个简单的例子里,我了解了更深一步的语句控制的规则,都是在运行着现实中的一些现象,这个其实就是一种队列的实现方式,也许在整理自己的队伍或者去其他的规范中
应该用到这种思想吧
首先是简单软件的分析,猜拳需要的对象有三个人,电脑,和游戏,我们可以设置三个类去实现抽象,然后定义方法去实现逻辑,首先是人需要输入,所以使用到Sanner这个类,然后电脑玩家需要用到的是Random对象产生随机数,在开始的时候我使用的是简单的思维逻辑、
就是运用枚举的方式
代码如下:
后来在老师的指导下,使用的是数字的简单代替和更换,这样的话逻辑也会更加的清晰,当然这样能够类与类之间
的耦合度降低了不少,我只简单的写成这样
这样就简单了不少,而且使用了数组的简单应用节约了内存空间,当然最主要的是在练习中能够学会传值和赋值的运用
关于实训第二天的总结
关于java中简单的控制语句的实现
今天的实训内容依然是逻辑的思考和方法的使用,比如说“水仙花数” 和杨辉三角的实现,这些都是比较有意思的,因为在这里面有很多值得我们注意的地方,
比如说,水仙花数的命名规范和杨奎三角的打印格式,这些都是需要按照规定的要求去实现的,
实现代码一般都会有自己命名的行列的数字控制,其实这些都是业务的一种简单的实现吧,网上代码很多,我就放最主要的来说明下
for(int i=0;i<n;i++){ arr[i]=new int [i+1]; for(int j=0;j<=i;j++){ if (j==0||i==j) { arr[i][j]=1; // System.out.println(arr[i][j]+"\t"); } else{ arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; } System.out.print(arr[i][j]+"\t"); } System.out.println(); }
在这个语句中首先把二维数组转换成一位数组组,然后去计算中间不确定值,最后汇总,这也是简化的一种好的方法实现吧
,当然从这个简单的例子里,我了解了更深一步的语句控制的规则,都是在运行着现实中的一些现象,这个其实就是一种队列的实现方式,也许在整理自己的队伍或者去其他的规范中
应该用到这种思想吧
用一个小游戏来深化面向对象的思想
猜拳游戏在生活中依然是很常见的判断方式,在游戏中我们也可以实现这个逻辑,我们可以创建我们需要的逻辑对象,在这个游戏中,主要实现的逻辑,就是简单的判断,这个游戏在很多的实现方式都有用到,而这里要写的是简单的实现首先是简单软件的分析,猜拳需要的对象有三个人,电脑,和游戏,我们可以设置三个类去实现抽象,然后定义方法去实现逻辑,首先是人需要输入,所以使用到Sanner这个类,然后电脑玩家需要用到的是Random对象产生随机数,在开始的时候我使用的是简单的思维逻辑、
就是运用枚举的方式
代码如下:
import java.util.Random; /** * @version * @author lxh * * 运用枚举去产生随机数 */ public class Enums { private static Random rand=new Random(47); public static <T extends Enum<T>>T random(Class<T> ec){ return random(ec.getEnumConstants()); } public static <T>T random(T[] values){ return values[rand.nextInt(values.length)]; } } /** * 求石头剪刀布的简单随机 * */ import java.util.Random; @SuppressWarnings("unused") enum open{ 石头,剪刀,布 } public class ComputerNumber { public static void main(String[] args) { for(int n=0;n<1;n++){ System.out.print(Enums.random(open.class)+" "); } } }
后来在老师的指导下,使用的是数字的简单代替和更换,这样的话逻辑也会更加的清晰,当然这样能够类与类之间
的耦合度降低了不少,我只简单的写成这样
import java.util.Scanner; public class Game { User user = null; Computer c = null; String[] player = { "", "小明", "小鱼", "小林" }; String[] quans = { "", "石头", "剪刀", "布" }; public void init() { user = new User(); System.out.println("----------Game Start----------"); System.out.println("请输入玩家名字1.小明 2.小鱼 3.小林"); Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); c = new Computer(); c.name = player[i]; startGame(); } public void startGame() { int resutl1 = user.chuquan(); int result2 = c.chuquan(); System.out.println("你出的" + quans[resutl1] + " 电脑玩家" + c.name + "出的是" + quans[result2]); if (resutl1 == result2) { System.out.println("平局"); } else { if ((resutl1 == 1 && result2 == 3) || (resutl1 == 2 && result2 == 1) || (resutl1 == 3 && result2 == 2)) { System.out.println("you win"); } else { System.out.println("you lost"); } } } public static void main(String[] args) { Game game=new Game(); game.init(); } }
这样就简单了不少,而且使用了数组的简单应用节约了内存空间,当然最主要的是在练习中能够学会传值和赋值的运用