From 54428561a9840d5dca80f54526083c33fb8e874b Mon Sep 17 00:00:00 2001
From: Fernando Escobar Robles <zs22016116@estudiantes.uv.mx>
Date: Thu, 20 Feb 2025 11:01:19 -0600
Subject: [PATCH] proyecto subido

---
 pom.xml                                       |  14 ++
 src/main/java/com/mycompany/ascii/Ascii.java  |   8 +
 .../java/com/mycompany/ascii/Ventana.java     | 160 ++++++++++++++++++
 .../classes/com/mycompany/ascii/Ascii.class   | Bin 0 -> 494 bytes
 .../classes/com/mycompany/ascii/MiPanel.class | Bin 0 -> 2685 bytes
 target/classes/com/mycompany/ascii/Nave.class | Bin 0 -> 2926 bytes
 .../classes/com/mycompany/ascii/Ventana.class | Bin 0 -> 805 bytes
 .../compile/default-compile/createdFiles.lst  |   4 +
 .../compile/default-compile/inputFiles.lst    |   2 +
 9 files changed, 188 insertions(+)
 create mode 100644 pom.xml
 create mode 100644 src/main/java/com/mycompany/ascii/Ascii.java
 create mode 100644 src/main/java/com/mycompany/ascii/Ventana.java
 create mode 100644 target/classes/com/mycompany/ascii/Ascii.class
 create mode 100644 target/classes/com/mycompany/ascii/MiPanel.class
 create mode 100644 target/classes/com/mycompany/ascii/Nave.class
 create mode 100644 target/classes/com/mycompany/ascii/Ventana.class
 create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
 create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..1464804
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.mycompany</groupId>
+    <artifactId>Ascii</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>19</maven.compiler.source>
+        <maven.compiler.target>19</maven.compiler.target>
+        <exec.mainClass>com.mycompany.ascii.Ascii</exec.mainClass>
+    </properties>
+</project>
\ No newline at end of file
diff --git a/src/main/java/com/mycompany/ascii/Ascii.java b/src/main/java/com/mycompany/ascii/Ascii.java
new file mode 100644
index 0000000..fb9d3c9
--- /dev/null
+++ b/src/main/java/com/mycompany/ascii/Ascii.java
@@ -0,0 +1,8 @@
+package com.mycompany.ascii;
+
+public class Ascii {
+
+    public static void main(String[] args) {
+       Ventana v=new Ventana(); 
+    }
+}
diff --git a/src/main/java/com/mycompany/ascii/Ventana.java b/src/main/java/com/mycompany/ascii/Ventana.java
new file mode 100644
index 0000000..2156b88
--- /dev/null
+++ b/src/main/java/com/mycompany/ascii/Ventana.java
@@ -0,0 +1,160 @@
+package com.mycompany.ascii;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.util.ArrayList;
+import java.util.Random;
+
+public class Ventana extends JFrame {
+    private MiPanel panel;
+
+    public Ventana() {
+        setTitle("Spacecraft Animation");
+        setSize(800, 400);
+        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        setLocationRelativeTo(null);
+
+        panel = new MiPanel();
+        add(panel);
+        setVisible(true); 
+
+        panel.inicializarEstrellas(); 
+    }
+
+}
+
+class MiPanel extends JPanel implements KeyListener {
+    private Nave nave;
+    private ArrayList<Point> estrellas;
+    private Random rand = new Random();
+
+    public MiPanel() {
+        nave = new Nave(this);
+        setFocusable(true);
+        addKeyListener(this);
+
+        estrellas = new ArrayList<>();
+    }
+
+    public void inicializarEstrellas() {
+        int ancho = Math.max(getWidth(), 800);  
+        int alto = Math.max(getHeight(), 400);
+
+        for (int i = 0; i < 100; i++) { 
+            estrellas.add(new Point(rand.nextInt(ancho), rand.nextInt(alto)));
+        }
+
+        Thread hilo = new Thread(nave);
+        hilo.start();
+    }
+
+    @Override
+    protected void paintComponent(Graphics g) {
+        super.paintComponent(g);
+
+        g.setColor(Color.BLACK);
+        g.fillRect(0, 0, getWidth(), getHeight());
+
+        g.setColor(Color.WHITE);
+        for (Point estrella : estrellas) {
+            g.fillRect(estrella.x, estrella.y, 2, 2);
+        }
+
+        nave.dibujar(g);
+    }
+
+    public void moverEstrellas() {
+        int ancho = getWidth();
+        int alto = getHeight();
+
+        for (Point estrella : estrellas) {
+            estrella.y += 2;
+            if (estrella.y > alto) {
+                estrella.y = 0;
+                estrella.x = rand.nextInt(Math.max(ancho, 800)); 
+            }
+        }
+    }
+
+    public void keyPressed(KeyEvent e) {
+        nave.keyPressed(e);
+    }
+
+    public void keyReleased(KeyEvent e) {
+        nave.keyReleased(e);
+    }
+
+    public void keyTyped(KeyEvent e) {}
+}
+
+class Nave implements Runnable {
+    private int x = 100;
+    private int y = 150;
+    private int xVel = 0;
+    private int yVel = 0;
+    private final int VELOCIDAD = 8;
+    private MiPanel panel;
+
+    public Nave(MiPanel panel) {
+        this.panel = panel;
+    }
+
+    @Override
+    public void run() {
+        while (true) {
+            try {
+                mover();
+                panel.moverEstrellas();
+                panel.repaint();
+                Thread.sleep(30);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public void dibujar(Graphics g) {
+        g.setColor(Color.CYAN);
+        g.drawString("                      oOOOo", x, y);
+        g.drawString("                AAAAAAAAAAA", x, y + 10);
+        g.drawString("            zzzzzzzzzzzzzzzz", x, y + 20);
+        g.drawString("       <><><><><><><><><>", x, y + 30);
+        g.drawString("   XXXXXXXXXXXXXXXXXXXXXX", x, y + 40);
+        g.drawString("XXXXXXXXXXXXXXXXXXXXXXXXX", x, y + 50);
+        g.drawString(" XXX[  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]XXX", x, y + 60);
+        g.drawString("       ~XXXXXXXXXXXXXXX~", x, y + 70);
+        g.drawString("            (    <><><><>    )", x, y + 80);
+        g.drawString("              (    )      (    )    (    )", x, y + 90);
+        g.drawString("            (    )        (   )       (    )", x, y + 100);
+        g.drawString("           (   )          (  )         (   )", x, y + 110);
+        g.drawString("           (  )            ( )         (  )", x, y + 120);
+        g.drawString("            ( )                        ( )", x, y + 130);
+    }
+
+    private void mover() {
+        x += xVel;
+        y += yVel;
+
+        // Evitar que la nave salga de la pantalla
+        if (x < 0) x = 0;
+        if (x > panel.getWidth() - 100) x = panel.getWidth() - 100;
+        if (y < 0) y = 0;
+        if (y > panel.getHeight() - 70) y = panel.getHeight() - 70;
+    }
+
+    public void keyPressed(KeyEvent e) {
+        int keyCode = e.getKeyCode();
+        if (keyCode == KeyEvent.VK_A) xVel = -VELOCIDAD;
+        if (keyCode == KeyEvent.VK_D) xVel = VELOCIDAD;
+        if (keyCode == KeyEvent.VK_W) yVel = -VELOCIDAD;
+        if (keyCode == KeyEvent.VK_S) yVel = VELOCIDAD;
+    }
+
+    public void keyReleased(KeyEvent e) {
+        int keyCode = e.getKeyCode();
+        if (keyCode == KeyEvent.VK_A || keyCode == KeyEvent.VK_D) xVel = 0;
+        if (keyCode == KeyEvent.VK_W || keyCode == KeyEvent.VK_S) yVel = 0;
+    }
+}
diff --git a/target/classes/com/mycompany/ascii/Ascii.class b/target/classes/com/mycompany/ascii/Ascii.class
new file mode 100644
index 0000000000000000000000000000000000000000..1c9e997b066bd015cc061b3b5b2747847f08b062
GIT binary patch
literal 494
zcmZ{g!A`<J5QhIL&_b<(peQjOynzS%02mE1@zm%6)5LgMYJ*GY)|5iRV|gOc#0T)9
zj59#OrS4%i|IF<7@66Bd=Qn^`bX-^{IVgLmz$P>%YN7n8GGqU7G>M~}U|(ya^BY2`
z+Y23331?B7_{oyvyE02(%_6P+FgCd|%7r7mJwm6bYaqRZ@?H8G6Y7CB@xweB#o3b@
zO*zvH(nw81m1)u2WI2D+Gqw%>CH5JaC~XMs?n|(nVVGyyjQhQi>na;Fq*YKR(1LJY
zh~JLI2JSGOXHk5w<)7|)kSlS*1!ReGERd{`qsPkUoA|C=u0S8_@;*l?10@`A^fnEs
yqrs|%Lo_)fj|U7BXzdHm^9r?K2iUmTsPd`>(%v+pg(Fr~1{`xvyiZtLIQ;`xGH2cZ

literal 0
HcmV?d00001

diff --git a/target/classes/com/mycompany/ascii/MiPanel.class b/target/classes/com/mycompany/ascii/MiPanel.class
new file mode 100644
index 0000000000000000000000000000000000000000..cb0b2e5e091f73f3add04303ec8a3f01d04c4e34
GIT binary patch
literal 2685
zcmai0SyL2O6#gzVlV*li0To41afd-1H)3=E1p+ec0fay{FGI^T4n3r&K`?t__RZ`u
zkEvAooRkbntV;5dm%OG@mACv4lhS;*r)SY3m51qj`}SGBbG~!Vo!{>M_!EG$_$q`F
z_%!%+1n`hR<(yoS%aQaI)0&O+4ok~O3Ov+eTBg$`;Hz&K*H9`@uEZjXj+u;%NNXlF
zAA$y75M|IcY|yb0n*?g&srktK3ZDzoT8YSX+%zKtrf1Y|Q;`n)A2b!!P$95=J>@~U
zWQ0(T%?j-nfx7zs^~5|M(S~t_s7l8+Y!~ob)E3yWu8Oi84N-cBjvCYo=xM|0PQ@3~
zaym&ZfBjU$xca_J$8OXKY?L!Iea1?^nRX1zumyJ4XCskUoQSbxSWcwqGofhME3ml`
zY`bksS3QJ1+0-4-aS(?Df=1f0jbu`$1-2HYC$HfGZO{=$qd@7b;Y^q_PQs-p7D5w_
zXo%=IierT7I!sEkIUrq`dATeQsE@@OC|iaTI!-DxL7M3?%-Mva;o+Q~ie)%uT8^Uk
z5gn&-MnJQSWhZ7iDk-j!X0#|iT0OH&(;l4FaSrW-#56GqFE=iZq3Jmz?nE1=G<4=F
z$^9^vunjpALI=8(y>5YR#d;%)mZivGE|pA=j+m<0K-!Tu0hXXoM?VILeL)g(C(ABn
zkq3dQB5Katav@>H({6DLVOYasIz}*B9CBwWnIfZsj{f$}K0+)I>waPSFMxbb=y)8H
z0u^qKRjzWz$qLKIGqbtKdsbfsZ~;%~coI)h^pcrOjxZ%mEomV!EZZSGqvN826`1IW
zjdiJ<PV0z+*(^03!<LSMSXJLpR3I_$JX(fJnAMQbVPei}>TI{>MCdCa(}QHvEt@H&
zk<>8{OErpnyd`J5n6)69v7qBw(79kCiI_TZbS%0jE2=xM=vY=fXfx*Y;+(YA*;O6S
z;dz13Wn*R7HqvQ>fz%ddCf_n$s&`zD%kiR)my}i+wMLAjA*rU}6*h4`<$1kACk98&
zSxY*LHv9HaQF`+I(^4SRt?p=Blu>u4W~i{K-?WUu#rbK&9?Q0VWq&FzljG7h)w_4-
zcM>MsbLYClBsYHqws3I9O_?;WO1rDj)xspN(uyZi^edB&S`ucGi#HC7`hn0kj5;!Y
zc|b0B&P#Ix;=bC<hC)haIcEwH=4z65HqNJ(jQemf;Oc^CK9^YzSZU1r*vf+9Dm0o}
zwBts%sivVmPL8A{k0=^Y$1zd@ftTUq%2~^sr9_P~p1tbsU*kKk1nxDS@uK1L8sF0J
za|av?uR(-wLz`Sfa1|kL%O`nOxr(h}e+Jdza0WYhx`zV$R<ZwE*X-+j?xIPsIs6>U
zo3NL|dmjPq#{mL3N(gW8tDbd&H}MwV1m4aA_?<gH&&FuKzQR}cJr1{Ud%Qwi=eE_?
zwzGWZYt)BtVgGG3PjU^_WN=EYwOrQ_&7f`Knor!k_vdYND1ohOcyzESgYycb4+`U6
zl=2y7ni^5X`Me89(8{$F$Jpq{F^Ur|&XY{dcFMd1o0>%BAui*jdzWYIceLR>?n<Z^
z!29@savxHX1l;8vC&V4P@vAXNVU^)uDW(D(4>zu%xA8j+W-!+1^Qm}Mpczc@@M#{Z
z7&DLqhkpPWzJXobTo(8R&4Z0iw~*p59SBhV=DojEn2i}M6+%3SAibQTx6@4b8SFp{
zNonP?4ZZxIF@ScCybd?aI)ZLtJzU2}ZkXd<m_&(>@d=T8A^n2}4VUhaQGrkMoc+Oo
z0(3T^VsP1N^{@{%dDz>y$zng_ul7$W<QG?wuJ&_R`weQV{XX}VdZC&u?PPNmshjtH
zelVskI_pLVJuIjg3F~EaeZ1WIN!uV154ka^tREz$Dkhch2`{Dq@0KieA?6@Uor<m;
zzPqRtg7N*0b9YFnPy^Cqt)1^BlnQ!@UMbYOy68ZorF5@qyDBS~Phk+B;d7c1YI6RE
pxfdQZH%@aC|6}fpyt!t&RUkycjB03LvdDzUBNBN;U%HAn{ssO&PyGM@

literal 0
HcmV?d00001

diff --git a/target/classes/com/mycompany/ascii/Nave.class b/target/classes/com/mycompany/ascii/Nave.class
new file mode 100644
index 0000000000000000000000000000000000000000..516dc623f493c6f387b45ca96cc13c98fdeb3b87
GIT binary patch
literal 2926
zcma)8U2_vv7=E@*yPI?iX^VxHQX^GJQY3-`YAag$0fj;ft$~6-x5=SRNjG7$X&Y3K
z&r!$E83mmI@xmGIoYAq>@j~yt@+at>_j2KdBR*$0*`&3@csiRs@AH0~=e*~A&-Ryp
ze*6i*%eWap6{=PEbkv|$L2$;HGh%7OoQe%k&WMDqptd_@rtG~6s>6}E9~%5B0y^rT
zE7*|8%*JL5{LLC>A!g(fsZ{KUF((u#3w#Ep{Tdx>rLj_wQiG00Dft%SA}xV+Iv#U?
zLJ?T6V}k_z@&2LV-od_}K55pfV<XxW)Nmz{R<LPkwY3kYMx?qcK#z7EkIOyP%x30<
z6~GhNtfE85lM>wc2yX>z9GCu_ZHaW+$VuNVI<`tj)e>1FW!g2&pB(K0bYh!|r*&*c
zY*_}!rY&J4Ng$UNBFim@4@TlDb|`2sr+Lt{g=OWlwn+9bBt+IuWy}Dc!LvG^lk2U`
zT3l_^HWKH@EF&TO*o{3Zp4agLUL;c|k}+?`dNb*a#YK9@dybIC&~gPc(v6o??A3Yd
zuPA8n)cY+XJDp186lghN7o#+VSNccd8ul@7p;bp_cz8G?m*~^cj{yaNq-D&H+T=c^
zV0|%~Q&%q7H8?0E9#|z}PkCrKsGzNK#fvM3h9LzlMT_peEB`bw7gBv<)uCa8>Qz+|
z)No8eO!}S*g--vU$8j2CV-y)(l3^;wB@J;Nf8~zCQYi73^N5BM3Zima9*$MSmCJK?
zrs1T5ZDrd~sB9roDHUCd8V#>4_oy^+JxUHmcMWG0bjoPOL65Qtv2cYbbs8pCY@*Vl
z6vYb`kv%r4BLOyyHYM!isiZyaTsnhNbxy~WRQahoAW~D)b^s~Ns5q}9Efwp%f);ba
zv}1=vp<hl|igcmWn@I{4rh-Pt(y7H`dDAo|)4Z<gdoyOvHcUHir1PShjjbsNg&%pz
zM0k`w8J1l-lrqJU{OqK##@v97Lz#q;jvH1=%0<v;Pp8;ut*eHW_huJ&Y~@K(VbGA<
zgAUWxt_d2~I~T)YBU@ZRO{OOEGY0R0=86t3wRo3gtgs=Q%H8ehn5grjFk*>ZPB5Qs
z75>XJ>O^TNM_8fd70EbmTIx7ECep%iLIy@Nc`G3XQZnIsoQGqW#&&rc2=TtIf`VDp
z^387x51>kZHk>y<7|xsD3BDWU=Yh5v2g}lq9|q2AiPhi&e=SP$#H;w;8vPzhG?-k3
z8g0O>Mbt;D7ZH>{P0^sXh~{YLB3iz2g5~(TnN)xzd^n8&&Y%Hj(ToW$Vz3Scw%{CW
zS~R=ik;fb*F67W)ez~-yB1ybmB+(IF!lvkVXjwwYeLb}f;U5sa|L~8Y&L!-;|L`}u
zfIHjByT2M`B54wtWkyWyJ43xii!AqhfjP50B5kx<K*5R8QKWQ{@l+BxsWPO3*YSqS
zN=Y(JGBpo6zs0U4bagiNkd(@&ehIyujr&VdFfic&gC4NX1rB*Yy9*rlfUpY;d%#W?
zIO+l2E->l=11|8Y2aLGDaSu4@0^=T#bb(VIV7kC*4_I)4vn8MbS0z$D=Y0q=2lGtP
z0{;Oi@LVrq53_WDc^b!?n877Vm+>Cn!d+a!*SLzGaSgxXI)29u{E3@h`k70w4j$0=
z5;I*T|NC$=PQPl-fD6%aH_^cfS&tOz$*+lme5-e$$-0y$As<$Y5lkk(LPNAHx$63&
zsdSSMO+|2^!c<C(D!1!aQ#&^byn}kYi&nhP?S8;7^@li$k62G1J6n-mMUoZuQw!gg
z_PTcBmzf5)sBd#?@`BvW!kvDpE!guV{L$cFY^t_kpEGAyaelmnH?;*vOL$Y6Q7h8}
ze8OV<ludREn{XQue1={4++h=PSMd_Nn+J7;9BQzGN1>C2tZ+Ykf1^REtE;2xnn&_V
zkz}|;@*eySJtxDGodb}U160szWGex8xXfMl_!sQ!dlhuT9-Xj9r{lkLe04t3xz0dU
GxbZJ8Iat2{

literal 0
HcmV?d00001

diff --git a/target/classes/com/mycompany/ascii/Ventana.class b/target/classes/com/mycompany/ascii/Ventana.class
new file mode 100644
index 0000000000000000000000000000000000000000..f6cb13b89d9b53c83053ac78ef3293477a076c4d
GIT binary patch
literal 805
zcmZ`%ZEq4m5PlY}KyfXFQbDmueLYs~`Ih(rQ)AF3ZSW;RF#2tKY<10XNA8Z+_CJ{T
zS4{MpXyOm>M;T|~zL?;b-JP9hW}bOwe*gLL3&3MMC?bPw9u~(EatxJ^@=$(qq9g6U
zclLHdIaUn0N7~o%Hbd5K4+|(TRQnU@DmRn|aqEe%$1>J|UqlgS^57h2vBJ=BgRwI{
zrgI|wV@F1=*3MA*vGgTFAyV-`#~!6$w|l0l<4LO7k3%ZmX%9`dRgN+$40!_g^$B5@
z?A_hDugbBGa}0IzJyi#C>cw3zh}6r83TJc}EIY;4InLt(RU&LJaA)q<%A@;G4FZN*
z%0M2)PM7!wKG7r&d0hNYAJ6qG=_{{@2C~b<^b$u4o5YWLRUX4eZ&CMYRLAsoh2tu&
zk*0DqVi1cN%!T=vmI=PWVWZ7Zq=tq%()&h7%YJ91Y2YTuEi=q2jm_24(<d@~7R90R
zJQ)$L8;l5E>S<rSn2z^VIFPdh6{C$el%Y0u`f0@<GzBegC>>{qnDm2b=&BuUnDF#}
z%ghy<L^wm+#^@xGW-n3-Ir_Ox)@NktMcXJ&!9*pWU|E#2tup(Ppd@k$)&xsX6F<>-
zdy0+kXbSNS%><X<2rI$$xgow%iVU{s6jTtjgcerlRYDc3H2*T1SVNnvd$c(ZQNuRs
Ta0tog<#7jh$ztR;neP7ut|q(T

literal 0
HcmV?d00001

diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..a870d39
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,4 @@
+com\mycompany\ascii\Ascii.class
+com\mycompany\ascii\Nave.class
+com\mycompany\ascii\MiPanel.class
+com\mycompany\ascii\Ventana.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..53572c9
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,2 @@
+C:\Users\alasn\Desktop\Tareas UV\desarrolloSoftware\asciiArt\Ascii\src\main\java\com\mycompany\ascii\Ventana.java
+C:\Users\alasn\Desktop\Tareas UV\desarrolloSoftware\asciiArt\Ascii\src\main\java\com\mycompany\ascii\Ascii.java