This one is a coat hanger walker based on the book “Absolute Beginners Guide in Building Robot’s” by Gareth Branwyn.
And here's another very simple BEAM walking robot made from old toy gears. Enjoy :D
/*imports the required packages*/
import javax.swing.*;
import java.awt.*;
import java.sql.*;
/*Creates a class named UseJDBC. extends JFrame means that UseJDBC is not just some class
it's also a Frame */
public class UseJDBC extends JFrame
{
/* Create a container named ca.*/
Container ca=getContentPane();
/* Create a borderlayout which will be used later to position our panel1
on the north portion of the container*/
BorderLayout border=new BorderLayout(2,2);
/* Create a gridlayout with 3 rows and 2 columns.
Will be used to arrange our labels and textfields in a grid format*/
GridLayout grid=new GridLayout(3,2,1,1);
/*Create a panel named panel1. this is where we will add our controls later*/
JPanel panel1=new JPanel();
/*Creates our textboxes where we want o display our records later*/
JTextField IDtextbox=new JTextField();
JTextField Fnametextbox=new JTextField();
JTextField Lnametextbox=new JTextField();
public UseJDBC()
{
/*Applies the borderlayout to our container*/
ca.setLayout(border);
/*Applies the gridlayout to our panel*/
panel1.setLayout(grid);
/*Add our controls to the panel*/
panel1.add(new JLabel("ID:"));
panel1.add(IDtextbox);
panel1.add(new JLabel("Firstname:"));
panel1.add(Fnametextbox);
panel1.add(new JLabel("Lastname:"));
panel1.add(Lnametextbox);
/*Adds the panel to our container and position it to the north(top)
* portion of the container
*/
ca.add(panel1,BorderLayout.NORTH);
/*Setup our frame*/
setContentPane(ca);
setSize(294,155);
setLocation(0,0);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("View Records");
setVisible(true);
/* Creates a connection object named connectionobj*/
Connection connectionobj;
try {
/*Creates a new instance of our jdbc driver*/
Class.forName("com.mysql.jdbc.Driver").newInstance();
/*Connect to our database named dbNames using the
username dbusername and password dbpassword*/
connectionobj = DriverManager.getConnection( "jdbc:mysql://localhost:3306/dbNames","dbusername","dbpassword");
/*Create a statement object named statementobj*/
Statement statementobj = connectionobj.createStatement() ;
/*Specify how we want to retrieve the record from MySQL Workbench
* by using the executeQuery method of our statement object. Since we want all records from
* all columns so we entered "Select * from tblNames" as a sql statement
* The resultset will be stored in a variable named resultSet
*/
ResultSet resultSet = statementobj.executeQuery( "SELECT * From tblNames" ) ;
/*Points the record pointer to the first record*/
resultSet.first( );
/*Retrieve the values of each fieldname or columns and store it to our local variables*/
String strid = Integer.toString(resultSet.getInt("intid"));
String strfname = resultSet.getString("chrfname");
String strlname = resultSet.getString("chrlname");
/*Display our first records on their appropriate controls*/
IDtextbox.setText(strid);
Fnametextbox.setText(strfname);
Lnametextbox.setText(strlname);
/*Close the database connection*/
connectionobj.close() ;
}
catch (Exception e)
{
}
}
/* Creates our main method*/
public static void main (String[] args)
{
UseJDBC UseJDBCinstance=new UseJDBC();
}
}
import javax.swing.*;
import java.awt.*;
import java.sql.*;
public class UseJDBC extends JFrame
{
Container ca=getContentPane();
BorderLayout border=new BorderLayout(2,2);
GridLayout grid=new GridLayout(3,2,1,1);
JPanel panel1=new JPanel();
JTextField IDtextbox=new JTextField();
JTextField Fnametextbox=new JTextField();
JTextField Lnametextbox=new JTextField();
public UseJDBC()
{
ca.setLayout(border);
panel1.setLayout(grid);
panel1.add(new JLabel("ID:"));
panel1.add(IDtextbox);
panel1.add(new JLabel("Firstname:"));
panel1.add(Fnametextbox);
panel1.add(new JLabel("Lastname:"));
panel1.add(Lnametextbox);
ca.add(panel1,BorderLayout.NORTH);
setContentPane(ca);
setSize(294,155);
setLocation(0,0);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("View Records");
setVisible(true);
Connection connectionobj;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connectionobj = DriverManager.getConnection( "jdbc:mysql://localhost:3306/dbNames","dbusername","dbpassword");
Statement statementobj = connectionobj.createStatement() ;
ResultSet resultSet = statementobj.executeQuery( "SELECT * From tblNames" ) ;
resultSet.first( );
String strid = Integer.toString(resultSet.getInt("intid"));
String strfname = resultSet.getString("chrfname");
String strlname = resultSet.getString("chrlname");
IDtextbox.setText(strid);
Fnametextbox.setText(strfname);
Lnametextbox.setText(strlname);
connectionobj.close() ;
}
catch (Exception e)
{
}
}
public static void main (String[] args)
{
UseJDBC UseJDBCinstance=new UseJDBC();
}
}
*Turns on the printer SET PRINTER ON *Prevent the data being printed from appearing on the screen SET CONSOLE OFF *Sends whatever specified in the @SAY command directly to the printer *This is one of the important lines of code, without this, the image * will not be printed at all SET DEVICE TO PRINTER *Displays an explainatory text just to let the user know that the data is being printed WAIT WINDOW 'Printing...' TIMEOUT 3 *Displays our image in a specified row and column coordinate *We use stretch so that the size of the image will adjust to *the size of the image control @ 1,5 SAY Thisform.iconimagecontrol.picture BITMAP SIZE 5,10 STRETCH * Displays our text @ 6,5 SAY 'Application Name:' + thisform.Appnamelabel.Caption *Ejects the paper EJECT *Stops sending data to the printer SET PRINTER OFF3. Here's the code again and this time I’ve omitted the comments coz it's kinda messy or something:
SET PRINTER ON SET CONSOLE OFF SET DEVICE TO PRINTER WAIT WINDOW 'Printing...' TIMEOUT 3 @ 1,5 SAY Thisform.iconimagecontrol.picture BITMAP SIZE 5,10 STRETCH @ 6,5 SAY 'Application Name:' + thisform.Appnamelabel.Caption EJECT SET PRINTER OFF
*Quits the form RELEASE THISFORM
#pragma endregion
//declare two variables. intrandom will handle the generated random numbers
//intcounter will handle the number of incorrect guesses
int intrandom;
int intcounter;
private: System::Void guessbutton_Click(System::Object^ sender, System::EventArgs^ e) {
//create a random object named randgen based on the Random class
Random^ randgen=gcnew Random();
//generate a random number from 1 to 31 and store the generated number into a variable named intrandom
intrandom=randgen->Next(1,31);
//if the date inputted by the user is lesser than the generated number
if (int::Parse(this->datetextBox->Text)statuslabel->Text="Sorry. Your guess is wrong. Perhaps you need some crystal ball?";
//if its lesser than the generated number obviously the user has guessed it wrong so we acummulate the value
//of the intcounter variable.
intcounter=intcounter + 1;
}
//if its greate than the generated number
else if (int::Parse(this->datetextBox->Text)>intrandom)
{
//display this message
this->statuslabel->Text="It's not what the audienced had picked.Perhaps you need some chant or something.";
//if its greater than the generated number obviously the user has guessed it wrong again so we acummulate the value
//of the intcounter variable.
intcounter=intcounter + 1;
}
else
{
//if the user has guessed it right. display the follwing message and disable the textbox.
this->statuslabel->Text="You guessed it right. Congratulations! You are now a fullfledge magician.";
this->datetextBox->Enabled=false;
}
//if the user has guessed it wrong thrice
if ( intcounter>2)
{
//dsiplay this then disbale the textbox.
this->statuslabel->Text="You have failed the test. Your remaining magic powers will be taken from you.";
this->datetextBox->Enabled=false;
}
}
};
}
#pragma endregion
//I wont add comments on this one coz it’s practically the same code. we only //added random responses from the user if the answer is the answer is wrong
int intrandom;
int intcounter;
private: System::Void guessbutton_Click(System::Object^ sender, System::EventArgs^ e) {
Random^ randgen=gcnew Random();
intrandom=randgen->Next(20,50);
if (int::Parse(this->agetextBox->Text)Next(1,2);
if (intrandom==1)
{
this->statuslabel->Text="Im flattered but I'm not that young.";
}
else
{
this->statuslabel->Text="I have a feeling that you are just making fun of me.";
}
intcounter=intcounter + 1;
}
else if (int::Parse(this->agetextBox->Text)>intrandom)
{
intrandom=randgen->Next(1,2);
if (intrandom==1)
{
this->statuslabel->Text="That's rude, I'm not that old.";
}
else
{
this->statuslabel->Text="Are you stupid or something?";
}
intcounter=intcounter + 1;
}
else
{
this->statuslabel->Text="Congratulations! You have won the 3 billion dollars.";
this->agetextBox->Enabled=false;
}
if ( intcounter>2)
{
this->statuslabel->Text="You have used the maximum number of guesses and won nothing.";
this->agetextBox->Enabled=false;
}
}
};
}
So there...enjoy game programming :)