ppp会不会是新庞氏bug?

1857人阅读
算法(14)
java(89)
学习总结(72)
工作(30)
& & & & & & & & &
作者:Vashon
时间: & 发布时间:
一、拿到问题,首先分析并理清思路。
判断三点是否在同一条直线上需满足以下几点:
1、两点共点(p1与p2共点,p1与p3共点,p2与p3共点)
2、三点纵坐标相等,横坐标不相等
3、三点横坐标相等,且纵坐标不相等(横坐标不相等则不存在除数为0问题)
4、三点共点(可考虑可不考虑)
以上几点需要把斜率考虑在内(斜率相等(除数不能为0,且满足随机输入))
二、创建一个点的实体:
package com.ywx.
public class Point{
public Point(float x,float y){
public float getX() {
public void setX(float x) {
public float getY() {
public void setY(float y) {
三、判断三点是否共线(包含历史测试代码):
package com.ywx.
public class IsOnLine {
public static boolean IsLine(Point p1,Point p2,Point p3){
boolean flag=
float k1=0.0f;//斜率
float k2=0.0f;//斜率
//1、两点共点(p1与p2共点,p1与p3共点,p2与p3共点)
if((p1.getX()==p2.getX()&&p1.getY()==p2.getY())
||(p1.getX()==p3.getX()&&p1.getY()==p3.getY())
||(p2.getX()==p3.getX()&&p2.getY()==p3.getY())){
//2、三点纵坐标相等,横坐标不相等
if((p1.getY()==p2.getY())&&(p1.getY()==p3.getY())
&&(p1.getX()!=p2.getX())&&(p1.getX()!=p3.getX())){
//3、三点横坐标相等,且纵坐标不相等
if((p1.getX()==p2.getX())&&(p1.getX()==p3.getX())
&&(p1.getY()!=p2.getY())&&(p1.getY()!=p3.getY())){
}else{//横坐标不相等则不存在除数为0问题
k1=(p3.getY()-p2.getY())/(p3.getX()-p2.getX());
k2=(p1.getY()-p2.getY())/(p1.getX()-p2.getX());
if(k1==k2){
//4、三点共点
if(p1.getX()==p2.getX()&&p1.getX()==p3.getX()
&&p1.getY()==p2.getY()&&p1.getY()==p3.getY()){
//5、斜率相等(除数不能为0,且满足随机输入)
//&&&&&中间点p2作为除数,则可以随机输入
float n=p3.getX()-p2.getX();
float m=p1.getX()-p2.getX();
if(n!=0&&m!=0){//除数不能为0
k1=(p3.getY()-p2.getY())/n;
k2=(p1.getY()-p2.getY())/m;
if(k1==k2){
@SuppressWarnings(&static-access&)
public static void main(String args[]){
//三点共点
boolean bool=new IsOnLine().IsLine(new Point(0.0f,0.0f), new Point(0.0f,0.0f), new Point(0.0f,0.0f));
bool=new IsOnLine().IsLine(new Point(0.0f,0.0f), new Point(0.0f,0.0f), new Point(1.0f,1.0f));
bool=new IsOnLine().IsLine(new Point(1.0f,2.0f), new Point(2.0f,4.0f), new Point(4.0f,8.0f));
bool=new IsOnLine().IsLine(new Point(2.0f,3.0f), new Point(2.0f,5.0f), new Point(2.0f,8.0f));
bool=new IsOnLine().IsLine(new Point(1.0f,1.0f), new Point(1.0f,1.0f), new Point(1.0f,1.0f));
//三点随机输入测试
bool=new IsOnLine().IsLine(new Point(0.0f,2.0f), new Point(1.0f,1.0f), new Point(2.0f,0.0f));
bool=new IsOnLine().IsLine(new Point(1.0f,1.0f), new Point(2.0f,0.0f), new Point(0.0f,2.0f));
bool=new IsOnLine().IsLine(new Point(2.0f,0.0f), new Point(0.0f,2.0f), new Point(1.0f,1.0f));
System.out.println(&三点是否共线:&+bool);
}四、用Junit测试(此部分主要是学习Junit测试):
package com.ywx.
import org.junit.A
import org.junit.A
import org.junit.B
import org.junit.BeforeC
import org.junit.I
import org.junit.T
import com.ywx.count.IsOnL
import com.ywx.count.P
@SuppressWarnings(&static-access&)
public class IsOnLineTest{
public void test1(){//测试三点在原点(或共点)
boolean bool=new IsOnLine().IsLine(new Point(0.0f,0.0f),new Point(0.0f,0.0f),
new Point(0.0f,0.0f));
bool=new IsOnLine().IsLine(new Point(3.0f,3.0f),new Point(3.0f,3.0f),
new Point(3.0f,3.0f));
System.out.println(&三点是否共线:&+bool);
public void test2(){//三点随机输入
boolean bool=new IsOnLine().IsLine(new Point(0.0f,2.0f), new Point(1.0f,1.0f), new Point(2.0f,0.0f));
bool=new IsOnLine().IsLine(new Point(1.0f,1.0f), new Point(2.0f,0.0f), new Point(0.0f,2.0f));
bool=new IsOnLine().IsLine(new Point(2.0f,0.0f), new Point(0.0f,2.0f), new Point(1.0f,1.0f));
System.out.println(&三点是否共线:&+bool);
public void test3(){//横坐标相等
boolean bool=new IsOnLine().IsLine(new Point(1.0f,2.0f), new Point(1.0f,2.0f), new Point(1.0f,5.0f));
System.out.println(&三点是否共线:&+bool);
public void test4(){//纵坐标相等
boolean bool=new IsOnLine().IsLine(new Point(5.0f,2.0f), new Point(1.0f,2.0f), new Point(3.0f,2.0f));
System.out.println(&三点是否共线:&+bool);
public void test5(){//斜率测试1
boolean bool=new IsOnLine().IsLine(new Point(1.0f,2.0f),new Point(2.0f,4.0f),
new Point(3.0f,6.0f));
bool=new IsOnLine().IsLine(new Point(0.0f,-1.0f),new Point(1.0f,0.0f),
new Point(2.0f,1.0f));
System.out.println(&三点是否共线:&+bool);
public void test6(){//斜率测试2
boolean bool=new IsOnLine().IsLine(new Point(0.0f,-1.0f),new Point(1.0f,0.0f),
new Point(2.0f,1.0f));
bool=new IsOnLine().IsLine(new Point(1.0f,0.0f),new Point(2.0f,1.0f),
new Point(0.0f,-1.0f));
bool=new IsOnLine().IsLine(new Point(2.0f,1.0f),new Point(0.0f,-1.0f),
new Point(1.0f,0.0f));
System.out.println(&三点是否共线:&+bool);
public void test7(){
boolean bool=
Assert.assertTrue(&返回结果:&, new IsOnLine().IsLine(new Point(0.0f,-1.0f),new Point(1.0f,0.0f),
new Point(2.0f,1.0f)));
Assert.assertTrue(&返回结果:&, new IsOnLine().IsLine(new Point(0.0f,-1.0f),new Point(1.0f,0.0f),
new Point(2.0f,1.0f)));
Assert.assertTrue(&返回结果:&, new IsOnLine().IsLine(new Point(0.0f,-1.0f),new Point(1.0f,0.0f),
new Point(2.0f,1.0f)));
public void test0(){
Assert.assertTrue(&返回结果:&, new IsOnLine().IsLine(new Point(1.0f,0.0f),new Point(2.0f,0.0f),
new Point(3.0f,0.0f)));
Assert.assertTrue(&返回结果:&, new IsOnLine().IsLine(new Point(0.0f,1.0f),new Point(0.0f,2.0f),
new Point(0.0f,3.0f)));
public void test8(){
System.out.println(&开始测试。。。&);
public void test9(){
System.out.println(&测试结束。。。&);
后记:最后得感谢当时带我的在一线打拼十余年的技术大牛,虽然这是一个小程序,但在他的苛刻要求及耐心指引下意识到很多,这将会在我以后的工作中能派上用场。
总结:小小事情,大感悟。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:195815次
积分:3729
积分:3729
排名:第6363名
原创:169篇
转载:73篇
评论:106条
(2)(6)(1)(5)(6)(12)(13)(10)(3)(14)(23)(9)(7)(5)(6)(7)(14)(16)(34)(31)是否是BUG求证:沙纳尔神殿
疑似[del]利好[/del]BUG超市日常萨格雷 做完了之后要塞日常打沙塔斯也自动完成了 能交任务 有奖励 没成就纪录 这blz总该不会是赶工+懒癌到把沙塔斯的萨格雷直接摆神殿上了才有这奇葩效果的吧[s:ac:惊]
我接了基尔加丹王座的任务,在鸦人那里转了一圈居然也完成了。
昨天是这样,随便打了个塔纳安的区域奖励,进度条走完沙塔斯的也完成了,不过今天的800水晶日常不行,没试过黑石矿坑日常是否完成,这绝对是BUG
黑石的确能完成[s:ac:嘲笑1]昨天就这样的,奇怪的是我在码头杀怪不涨进度条一气之下回城发现任务能交了
[b]Reply to [pid=16737,1]Reply[/pid] Post by [uid=]魔法少女乔布斯[/uid] ( 06:27)[/b]有时候不涨条是真不涨...小退回来就好了
[b]Reply to [pid=16737,1]Reply[/pid] Post by [uid=1507874]幽蓝微澜[/uid] ( 01:57)[/b]意思就是1000的被blz玩坏了800的好好的?
[b]Reply to [pid=16737,1]Reply[/pid] Post by [uid=4567742]稻草假面[/uid] ( 08:52)[/b]似乎区域奖励的进度条共享了?今天早起做日常发现的。
[b]Reply to [pid=16737,1]Reply[/pid] Post by [uid=9493730]Mythorandar[/uid] ( 08:53)[/b]怎么个共享法?比如那个做两个区域奖励的日常 我熔炉刷到30%改去铁城港了 起手30%这样?[s:ac:咦]
[quote][pid=16737,1]Reply[/pid] [b]Post by [uid=4567742]稻草假面[/uid] ( 09:03):[/b][b]Reply to [pid=16737,1]Reply[/pid] Post by [uid=9493730]Mythorandar[/uid] ( 08:53)[/b]怎么个共享法?比如那个做两个区域奖励的日常 我熔炉刷到30%改去铁城港了 起手30%这样?[s:ac:咦][/quote]好像是,今天早上我做任务的时候就是这样的。我当时也纳闷呢,& &但是需要验证一下。
[b]Reply to [pid=16737,1]Reply[/pid] Post by [uid=9493730]Mythorandar[/uid] ( 09:30)[/b]这个改动感觉蛮合理的 不过能多带完成一个任务大概完全是碧油机...}

我要回帖

更多关于 头疼会不会是肿瘤 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信