From 7167b4341ef290d56fb96e2af10883a4b925d83b Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 26 Mar 2026 19:27:18 +0100 Subject: I found my old code! --- robottino/all_versions/v4.2/Robottino.jar | Bin 0 -> 207946 bytes robottino/all_versions/v4.2/license.txt | 340 ++++++++++++++++++++++++ robottino/all_versions/v4.2/src/Frame.java | 314 ++++++++++++++++++++++ robottino/all_versions/v4.2/src/Main.java | 34 +++ robottino/all_versions/v4.2/src/Robot.java | 72 +++++ robottino/all_versions/v4.2/src/RobotPanel.java | 94 +++++++ robottino/all_versions/v4.2/src/img/birra1.jpg | Bin 0 -> 15478 bytes robottino/all_versions/v4.2/src/img/birra2.jpg | Bin 0 -> 18106 bytes robottino/all_versions/v4.2/src/img/birra3.jpg | Bin 0 -> 14673 bytes robottino/all_versions/v4.2/src/img/birra4.jpg | Bin 0 -> 36627 bytes robottino/all_versions/v4.2/src/img/birra5.gif | Bin 0 -> 13960 bytes robottino/all_versions/v4.2/src/img/boom.png | Bin 0 -> 53636 bytes robottino/all_versions/v4.2/src/img/laoff.gif | Bin 0 -> 4148 bytes robottino/all_versions/v4.2/src/img/laon.gif | Bin 0 -> 4151 bytes robottino/all_versions/v4.2/src/img/lloff.gif | Bin 0 -> 4552 bytes robottino/all_versions/v4.2/src/img/llon.gif | Bin 0 -> 2557 bytes robottino/all_versions/v4.2/src/img/raoff.gif | Bin 0 -> 5137 bytes robottino/all_versions/v4.2/src/img/raon.gif | Bin 0 -> 5121 bytes robottino/all_versions/v4.2/src/img/rloff.gif | Bin 0 -> 4802 bytes robottino/all_versions/v4.2/src/img/rlon.gif | Bin 0 -> 2705 bytes robottino/all_versions/v4.2/src/img/robot.gif | Bin 0 -> 15158 bytes 21 files changed, 854 insertions(+) create mode 100755 robottino/all_versions/v4.2/Robottino.jar create mode 100755 robottino/all_versions/v4.2/license.txt create mode 100755 robottino/all_versions/v4.2/src/Frame.java create mode 100755 robottino/all_versions/v4.2/src/Main.java create mode 100755 robottino/all_versions/v4.2/src/Robot.java create mode 100755 robottino/all_versions/v4.2/src/RobotPanel.java create mode 100755 robottino/all_versions/v4.2/src/img/birra1.jpg create mode 100755 robottino/all_versions/v4.2/src/img/birra2.jpg create mode 100755 robottino/all_versions/v4.2/src/img/birra3.jpg create mode 100755 robottino/all_versions/v4.2/src/img/birra4.jpg create mode 100755 robottino/all_versions/v4.2/src/img/birra5.gif create mode 100755 robottino/all_versions/v4.2/src/img/boom.png create mode 100755 robottino/all_versions/v4.2/src/img/laoff.gif create mode 100755 robottino/all_versions/v4.2/src/img/laon.gif create mode 100755 robottino/all_versions/v4.2/src/img/lloff.gif create mode 100755 robottino/all_versions/v4.2/src/img/llon.gif create mode 100755 robottino/all_versions/v4.2/src/img/raoff.gif create mode 100755 robottino/all_versions/v4.2/src/img/raon.gif create mode 100755 robottino/all_versions/v4.2/src/img/rloff.gif create mode 100755 robottino/all_versions/v4.2/src/img/rlon.gif create mode 100755 robottino/all_versions/v4.2/src/img/robot.gif (limited to 'robottino/all_versions/v4.2') diff --git a/robottino/all_versions/v4.2/Robottino.jar b/robottino/all_versions/v4.2/Robottino.jar new file mode 100755 index 0000000..a3dc9e7 Binary files /dev/null and b/robottino/all_versions/v4.2/Robottino.jar differ diff --git a/robottino/all_versions/v4.2/license.txt b/robottino/all_versions/v4.2/license.txt new file mode 100755 index 0000000..3912109 --- /dev/null +++ b/robottino/all_versions/v4.2/license.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/robottino/all_versions/v4.2/src/Frame.java b/robottino/all_versions/v4.2/src/Frame.java new file mode 100755 index 0000000..6015c41 --- /dev/null +++ b/robottino/all_versions/v4.2/src/Frame.java @@ -0,0 +1,314 @@ +/* +Copyright 2008, 2009 Sebastiano Tronto + +This file is part of Robottino. + + Robottino is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Robottino is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Robottino; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame implements ActionListener { + public static int i; + public static Main main; + public static RobotPanel robotPanel; + public static JLabel label; + public static Timer timer; + public static JMenuBar barraMenu; + public static JMenu file, modifica, azioni, info, raMenu, laMenu, rlMenu, llMenu; + public static JMenuItem raonMenuItem, raoffMenuItem, rachangeMenuItem, laonMenuItem, laoffMenuItem, lachangeMenuItem; + public static JMenuItem rlonMenuItem, rloffMenuItem, rlchangeMenuItem, llonMenuItem, lloffMenuItem, llchangeMenuItem; + public static JMenuItem rinomina, birra, balla, esplodi, informazioni, esci; + public Frame() { + super( "Robottino versione 4.2" ); + i = 0; + main = new Main(); + robotPanel = new RobotPanel(); + label = new JLabel( "Robot: " + main.robot.getName() ); + label.setFont( new Font( "Monospace", 0, 30 ) ); + barraMenu = new JMenuBar(); + rinomina = new JMenuItem( "Cambia nome" ); + birra = new JMenuItem( "Birra" ); + balla = new JMenuItem( "Balla" ); + esplodi = new JMenuItem( "Esplodi" ); + informazioni = new JMenuItem( "Informazioni" ); + esci = new JMenuItem( "Esci" ); + raonMenuItem = new JMenuItem( "Alza" ); + laonMenuItem = new JMenuItem( "Alza" ); + rlonMenuItem = new JMenuItem( "Alza" ); + llonMenuItem = new JMenuItem( "Alza" ); + raoffMenuItem = new JMenuItem( "Abbassa" ); + laoffMenuItem = new JMenuItem( "Abbassa" ); + rloffMenuItem = new JMenuItem( "Abbassa" ); + lloffMenuItem = new JMenuItem( "Abbassa" ); + rachangeMenuItem = new JMenuItem( "Cambia posizione" ); + lachangeMenuItem = new JMenuItem( "Cambia posizione" ); + rlchangeMenuItem = new JMenuItem( "Cambia posizione" ); + llchangeMenuItem = new JMenuItem( "Cambia posizione" ); + esci.addActionListener( this ); + rinomina.addActionListener( this ); + birra.addActionListener( this ); + balla.addActionListener( this ); + esplodi.addActionListener( this ); + informazioni.addActionListener( this ); + raonMenuItem.addActionListener( this ); + raoffMenuItem.addActionListener( this ); + rachangeMenuItem.addActionListener( this ); + laonMenuItem.addActionListener( this ); + laoffMenuItem.addActionListener( this ); + lachangeMenuItem.addActionListener( this ); + rlonMenuItem.addActionListener( this ); + rloffMenuItem.addActionListener( this ); + rlchangeMenuItem.addActionListener( this ); + llonMenuItem.addActionListener( this ); + lloffMenuItem.addActionListener( this ); + llchangeMenuItem.addActionListener( this ); + raMenu = new JMenu( "Braccio destro" ); + raMenu.add( raonMenuItem ); + raMenu.add( raoffMenuItem ); + raMenu.add( rachangeMenuItem ); + laMenu = new JMenu( "Braccio sinistro" ); + laMenu.add( laonMenuItem ); + laMenu.add( laoffMenuItem ); + laMenu.add( lachangeMenuItem ); + rlMenu = new JMenu( "Gamba destra" ); + rlMenu.add( rlonMenuItem ); + rlMenu.add( rloffMenuItem ); + rlMenu.add( rlchangeMenuItem ); + llMenu = new JMenu( "Gamba sinistra" ); + llMenu.add( llonMenuItem ); + llMenu.add( lloffMenuItem ); + llMenu.add( llchangeMenuItem ); + modifica = new JMenu( "Modifica" ); + modifica.add( raMenu ); + modifica.add( laMenu ); + modifica.add( rlMenu ); + modifica.add( llMenu ); + file = new JMenu( "File" ); + file.add( rinomina ); + file.add( esci ); + azioni = new JMenu( "Azioni" ); + azioni.add( birra ); + azioni.add( balla ); + azioni.add( esplodi ); + info = new JMenu( "?" ); + info.add( informazioni ); + barraMenu.add( file ); + barraMenu.add( modifica ); + barraMenu.add( azioni ); + barraMenu.add( info ); + setJMenuBar( barraMenu ); + add( robotPanel, BorderLayout.CENTER ); + add( label, BorderLayout.SOUTH ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, "Vuoi davvero uscire?", "Robottino v4.2", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { "Si", "No" }, "No" ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public void actionPerformed( ActionEvent e ) { + if ( e.getSource() == esci ) { + int selezione = JOptionPane.showOptionDialog( this, "Vuoi davvero uscire?", "Robottino v4.2", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { "Si", "No" }, "No" ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + else if ( e.getSource() == rinomina ) { + String newName = main.robot.getName(); + newName = JOptionPane.showInputDialog( this, "Inserire il nuovo nome per il robottino:", newName ); + if ( newName != null ) { + main.robot.setName( newName ); + label .setText( "Robot: " + main.robot.getName() ); + } + } + else if ( e.getSource() == raonMenuItem ) + main.robot.setRA( true ); + else if ( e.getSource() == raoffMenuItem ) + main.robot.setRA( false ); + else if ( e.getSource() == rachangeMenuItem ) + main.robot.setRA( !main.robot.rightArm ); + else if ( e.getSource() == laonMenuItem ) + main.robot.setLA( true ); + else if ( e.getSource() == laoffMenuItem ) + main.robot.setLA( false ); + else if ( e.getSource() == lachangeMenuItem ) + main.robot.setLA( !main.robot.leftArm ); + else if ( e.getSource() == rlonMenuItem ) + main.robot.setRL( true ); + else if ( e.getSource() == rloffMenuItem ) + main.robot.setRL( false ); + else if ( e.getSource() == rlchangeMenuItem ) + main.robot.setRL( !main.robot.rightLeg ); + else if ( e.getSource() == llonMenuItem ) + main.robot.setLL( true ); + else if ( e.getSource() == lloffMenuItem ) + main.robot.setLL( false ); + else if ( e.getSource() == llchangeMenuItem ) + main.robot.setLL( !main.robot.leftLeg ); + else if ( e.getSource() == birra ) { + ImageIcon birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra5.gif" ) ); + JOptionPane.showMessageDialog( this, "", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE, birra ); + birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra1.jpg" ) ); + JOptionPane.showMessageDialog( this, "", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE, birra ); + birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra2.jpg" ) ); + JOptionPane.showMessageDialog( this, "", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE, birra ); + birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra3.jpg" ) ); + JOptionPane.showMessageDialog( this, "", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE, birra ); + birra = new ImageIcon( ClassLoader.getSystemResource( "img/birra4.jpg" ) ); + JOptionPane.showMessageDialog( this, "", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE, birra ); + JOptionPane.showMessageDialog( this, "Che bevuta!", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE ); + JOptionPane.showMessageDialog( this, "Buuuuuuurp!", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE ); + robotPanel.body = new ImageIcon( ClassLoader.getSystemResource( "img/robot.gif" ) ); + } + if ( e.getSource() == esplodi ) { + String aux = main.robot.getName(); + main.robot.setPositions( false, false, false, false ); + main.robot.setName( "no-name" ); + label.setText( "Robot: " + main.robot.getName() ); + ImageIcon boom = new ImageIcon( ClassLoader.getSystemResource( "img/boom.png" ) ); + JOptionPane.showMessageDialog( this, "", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE, boom ); + JOptionPane.showMessageDialog( this, aux + " si è autodistrutto!", "Robottino v4.2", JOptionPane.WARNING_MESSAGE ); + JOptionPane.showMessageDialog( this, "È stato creato un nuovo robottino: " + main.robot.getName(), "Robottino v4.2", JOptionPane.INFORMATION_MESSAGE ); + } + if ( e.getSource() == informazioni ) { + String aux = main.robot.getName() + ":\n\n"; + if ( main.robot.rightArm ) + aux += "Braccio destro: alzato\n"; + else + aux += "Braccio destro: abbassato\n"; + if ( main.robot.leftArm ) + aux += "Braccio sinistro: alzato\n"; + else + aux += "Braccio sinistro: abbassato\n"; + if ( main.robot.rightLeg ) + aux += "Gamba destra: alzata\n"; + else + aux += "Gamba destra: abbassata\n"; + if ( main.robot.leftLeg ) + aux += "Gamba sinistra: alzata\n"; + else + aux += "Gamba sinistra: abbassata\n"; + JOptionPane.showMessageDialog( this, aux, "Robottino - v4.2", JOptionPane.INFORMATION_MESSAGE ); + } + else if ( e.getSource() == balla ) { + this.i = 0; + main.robot.setPositions( false, false, false, false ); + timer = new Timer( 250, + new ActionListener() { + public void actionPerformed( ActionEvent e ) { + Frame.this.i++; + switch( Frame.this.i ) { + case 1: + Frame.main.robot.setRA( true ); + break; + case 2: + break; + case 3: + Frame.main.robot.setLA( true ); + break; + case 4: + break; + case 5: + Frame.main.robot.setPositions( false, false, false, true ); + break; + case 6: + Frame.main.robot.setPositions( true, true, false, false ); + break; + case 7: + Frame.main.robot.setPositions( false, false, true, false ); + break; + case 8: + Frame.main.robot.setPositions( true, true, false, false ); + break; + case 9: + Frame.main.robot.setPositions( true, false, false, true ); + break; + case 10: + Frame.main.robot.setPositions( false, false, false, false ); + break; + case 11: + Frame.main.robot.setPositions( true, false, false, true ); + break; + case 12: + Frame.main.robot.setPositions( false, true, true, false ); + break; + case 13: + Frame.main.robot.setPositions( false, false, false, false ); + break; + case 14: + Frame.main.robot.setPositions( false, true, true, false ); + break; + case 15: + Frame.main.robot.setPositions( false, false, false, false ); + break; + case 16: + break; + case 17: + Frame.main.robot.setPositions( false, false, true, false ); + break; + case 18: + Frame.main.robot.setPositions( false, false, false, true ); + break; + case 19: + Frame.main.robot.setPositions( false, false, true, false ); + break; + case 20: + Frame.main.robot.setPositions( false, false, false, true ); + break; + case 21: + Frame.main.robot.setPositions( false, false, true, false ); + break; + case 22: + Frame.main.robot.setPositions( false, false, false, true ); + break; + case 23: + Frame.main.robot.setPositions( true, true, true, true ); + break; + case 24: + break; + case 25: + break; + case 26: + Frame.main.robot.setPositions( false, false, false, false ); + break; + case 27: + JOptionPane.showMessageDialog( Frame.this, "Cha fatica!", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE ); + JOptionPane.showMessageDialog( Frame.this, Frame.main.robot.getName() + " è tornato alla posizione di partenza", "Robottino v4.2", JOptionPane.PLAIN_MESSAGE ); + break; + default: + timer.stop(); + break; + } + Frame.this.robotPanel.setImages(); + Frame.this.robotPanel.repaint(); + Frame.this.repaint(); + } + } + ); + timer.start(); + } + try { + this.robotPanel.setImages(); + this.robotPanel.repaint(); + this.repaint(); + } catch ( NullPointerException n ) { } + } +} \ No newline at end of file diff --git a/robottino/all_versions/v4.2/src/Main.java b/robottino/all_versions/v4.2/src/Main.java new file mode 100755 index 0000000..61eecc4 --- /dev/null +++ b/robottino/all_versions/v4.2/src/Main.java @@ -0,0 +1,34 @@ +/* +Copyright 2008, 2009 Sebastiano Tronto + +This file is part of Robottino. + + Robottino is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Robottino is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Robottino; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + +import javax.swing.JFrame; + +public class Main { + public static Robot robot; + public static Frame frame; + public static void main ( String args[] ) { + robot = new Robot( "no-name" ); + frame = new Frame(); + frame.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE ); + frame.setSize( 350, 600 ); + frame.setVisible( true ); + } +} \ No newline at end of file diff --git a/robottino/all_versions/v4.2/src/Robot.java b/robottino/all_versions/v4.2/src/Robot.java new file mode 100755 index 0000000..378f2db --- /dev/null +++ b/robottino/all_versions/v4.2/src/Robot.java @@ -0,0 +1,72 @@ +/* +Copyright 2008, 2009 Sebastiano Tronto + +This file is part of Robottino. + + Robottino is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Robottino is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Robottino; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; + +public class Robot { + boolean leftArm, rightArm, leftLeg, rightLeg; + String nomeRobot; + Robot( String nome ) { + this.leftArm = false; + this.rightArm = false; + this.leftLeg = false; + this.rightLeg = false; + this.nomeRobot = nome; + } + void setLA( boolean la ) { + setPositions( la, this.rightArm, this.leftLeg, this.rightLeg ); + } + void setRA( boolean ra ) { + setPositions( this.leftArm, ra, this.leftLeg, this.rightLeg ); + } + void setLL( boolean ll ) { + setPositions( this.leftArm, this.rightArm, ll, this.rightLeg ); + } + void setRL( boolean rl ) { + setPositions( this.leftArm, this.rightArm, this.leftLeg, rl ); + } + void setPositions( boolean la, boolean ra, boolean ll, boolean rl ) { + this.leftArm = la; + this.rightArm = ra; + this.leftLeg = ll; + this.rightLeg = rl; + } + void setName( String nome ) { + nomeRobot = nome; + } + boolean getLA() { + return leftArm; + } + boolean getRA() { + return rightArm; + } + boolean getLL() { + return leftLeg; + } + boolean getRL() { + return rightLeg; + } + String getName() { + return nomeRobot; + } +} \ No newline at end of file diff --git a/robottino/all_versions/v4.2/src/RobotPanel.java b/robottino/all_versions/v4.2/src/RobotPanel.java new file mode 100755 index 0000000..896723a --- /dev/null +++ b/robottino/all_versions/v4.2/src/RobotPanel.java @@ -0,0 +1,94 @@ +/* +Copyright 2008, 2009 Sebastiano Tronto + +This file is part of Robottino. + + Robottino is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Robottino is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Robottino; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + +import javax.swing.*; +import java.awt.*; + +public class RobotPanel extends JPanel { + public static Main main; + public static ImageIcon ra, la, rl, ll, body; + public static int rax, ray, lax, lay, rlx, rly, llx, lly; + RobotPanel() { + rax = 66; + ray = 248; + lax = 225; + lay = 242; + rlx = 84; + rly = 367; + llx = 148; + lly = 367; + body = new ImageIcon( ClassLoader.getSystemResource( "img/robot.gif" ) ); + ra = new ImageIcon( ClassLoader.getSystemResource( "img/raoff.gif" ) ); + la = new ImageIcon( ClassLoader.getSystemResource( "img/laoff.gif" ) ); + rl = new ImageIcon( ClassLoader.getSystemResource( "img/rloff.gif" ) ); + ll = new ImageIcon( ClassLoader.getSystemResource( "img/lloff.gif" ) ); + } + public void paint ( Graphics g ) { + super.paint( g ); + body.paintIcon( this, g, 100, 60 ); + ra.paintIcon( this, g, this.rax, this.ray ); + la.paintIcon( this, g, this.lax, this.lay ); + rl.paintIcon( this, g, this.rlx, this.rly ); + ll.paintIcon( this, g, this.llx, this.lly ); + } + public void setImages() { + if ( main.robot.rightArm ) { + this.ra = new ImageIcon( ClassLoader.getSystemResource( "img/raon.gif" ) ); + this.rax = 68; + this.ray = 128; + } + else { + this.ra = new ImageIcon( ClassLoader.getSystemResource( "img/raoff.gif" ) ); + this.rax = 66; + this.ray = 248; + } + if ( main.robot.leftArm ) { + this.la = new ImageIcon( ClassLoader.getSystemResource( "img/laon.gif" ) ); + this.lax = 224; + this.lay = 118; + } + else { + this.la = new ImageIcon( ClassLoader.getSystemResource( "img/laoff.gif" ) ); + this.lax = 225; + this.lay = 242; + } + if ( main.robot.rightLeg ) { + this.rl = new ImageIcon( ClassLoader.getSystemResource( "img/rlon.gif" ) ); + this.rlx = 84; + this.rly = 356; + } + else { + this.rl = new ImageIcon( ClassLoader.getSystemResource( "img/rloff.gif" ) ); + this.rlx = 84; + this.rly = 367; + } + if ( main.robot.leftLeg ) { + this.ll = new ImageIcon( ClassLoader.getSystemResource( "img/llon.gif" ) ); + this.llx = 140; + this.lly = 363; + } + else { + this.ll = new ImageIcon( ClassLoader.getSystemResource( "img/lloff.gif" ) ); + this.llx = 148; + this.lly = 367; + } + } +} \ No newline at end of file diff --git a/robottino/all_versions/v4.2/src/img/birra1.jpg b/robottino/all_versions/v4.2/src/img/birra1.jpg new file mode 100755 index 0000000..6cbf8a8 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/birra1.jpg differ diff --git a/robottino/all_versions/v4.2/src/img/birra2.jpg b/robottino/all_versions/v4.2/src/img/birra2.jpg new file mode 100755 index 0000000..3b3caae Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/birra2.jpg differ diff --git a/robottino/all_versions/v4.2/src/img/birra3.jpg b/robottino/all_versions/v4.2/src/img/birra3.jpg new file mode 100755 index 0000000..9bc6971 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/birra3.jpg differ diff --git a/robottino/all_versions/v4.2/src/img/birra4.jpg b/robottino/all_versions/v4.2/src/img/birra4.jpg new file mode 100755 index 0000000..970f2ff Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/birra4.jpg differ diff --git a/robottino/all_versions/v4.2/src/img/birra5.gif b/robottino/all_versions/v4.2/src/img/birra5.gif new file mode 100755 index 0000000..6318d90 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/birra5.gif differ diff --git a/robottino/all_versions/v4.2/src/img/boom.png b/robottino/all_versions/v4.2/src/img/boom.png new file mode 100755 index 0000000..59b507a Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/boom.png differ diff --git a/robottino/all_versions/v4.2/src/img/laoff.gif b/robottino/all_versions/v4.2/src/img/laoff.gif new file mode 100755 index 0000000..49d9db0 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/laoff.gif differ diff --git a/robottino/all_versions/v4.2/src/img/laon.gif b/robottino/all_versions/v4.2/src/img/laon.gif new file mode 100755 index 0000000..1880677 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/laon.gif differ diff --git a/robottino/all_versions/v4.2/src/img/lloff.gif b/robottino/all_versions/v4.2/src/img/lloff.gif new file mode 100755 index 0000000..3db1ceb Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/lloff.gif differ diff --git a/robottino/all_versions/v4.2/src/img/llon.gif b/robottino/all_versions/v4.2/src/img/llon.gif new file mode 100755 index 0000000..ab1ff75 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/llon.gif differ diff --git a/robottino/all_versions/v4.2/src/img/raoff.gif b/robottino/all_versions/v4.2/src/img/raoff.gif new file mode 100755 index 0000000..88aabc4 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/raoff.gif differ diff --git a/robottino/all_versions/v4.2/src/img/raon.gif b/robottino/all_versions/v4.2/src/img/raon.gif new file mode 100755 index 0000000..46190a8 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/raon.gif differ diff --git a/robottino/all_versions/v4.2/src/img/rloff.gif b/robottino/all_versions/v4.2/src/img/rloff.gif new file mode 100755 index 0000000..04bda22 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/rloff.gif differ diff --git a/robottino/all_versions/v4.2/src/img/rlon.gif b/robottino/all_versions/v4.2/src/img/rlon.gif new file mode 100755 index 0000000..447464b Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/rlon.gif differ diff --git a/robottino/all_versions/v4.2/src/img/robot.gif b/robottino/all_versions/v4.2/src/img/robot.gif new file mode 100755 index 0000000..db87686 Binary files /dev/null and b/robottino/all_versions/v4.2/src/img/robot.gif differ -- cgit v1.3