{"id":7125,"date":"2021-11-10T01:15:51","date_gmt":"2021-11-09T18:15:51","guid":{"rendered":"https:\/\/www.phidgets.com\/education\/?page_id=7125"},"modified":"2022-08-30T04:31:19","modified_gmt":"2022-08-29T21:31:19","slug":"red-light","status":"publish","type":"page","link":"https:\/\/www.phidgets.com\/education\/learn\/projects\/red-light\/","title":{"rendered":"Red Light Green Light"},"content":{"rendered":"<p>[et_pb_section bb_built=&#8221;1&#8243; specialty=&#8221;off&#8221; next_background_color=&#8221;#000000&#8243; _builder_version=&#8221;4.4.1&#8243; custom_padding=&#8221;||0px|&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_row _builder_version=&#8221;4.4.1&#8243; use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;3&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column type=&#8221;1_2&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221;][et_pb_code admin_label=&#8221;Red Light, Green Light&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<div class=\"ph-overline-text\"><!-- [et_pb_line_break_holder] -->    <a href=\"\/education\/learn\/projects\">Projects<\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<h1>Red Light, Green Light<\/h1>\n<p>[\/et_pb_code][et_pb_code admin_label=&#8221;Description&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<pee>Use your Getting Started Kit to create a Red Light, Green Light game!<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;ph-button-cta: Start&#8221; _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<a class=\"ph-button-cta\" href=\"#setup\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"ph-button-cta__icon\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  Start<!-- [et_pb_line_break_holder] --><\/a>[\/et_pb_code][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221;][et_pb_image _builder_version=&#8221;4.18.0&#8243; src=&#8221;https:\/\/www.phidgets.com\/education\/wp-content\/uploads\/2022\/08\/redlight_title2.jpg&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; background_pattern_color=&#8221;rgba(0,0,0,0.2)&#8221; background_mask_color=&#8221;#ffffff&#8221; \/][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section bb_built=&#8221;1&#8243; specialty=&#8221;on&#8221; _builder_version=&#8221;4.4.1&#8243; use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;3&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; prev_background_color=&#8221;#000000&#8243;][et_pb_column type=&#8221;1_4&#8243;][et_pb_code admin_label=&#8221;ph-vertical-nav&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; saved_tabs=&#8221;all&#8221;]<\/p>\n<div class=\"ph-vertical-nav ph-vertical-sticky\"><!-- [et_pb_line_break_holder] -->  <a href=\"#prereq\" class=\"ph-vertical-nav-item\">Prerequisites<\/a><!-- [et_pb_line_break_holder] -->  <a href=\"#setup\" class=\"ph-vertical-nav-item\">Setup<\/a><!-- [et_pb_line_break_holder] -->  <a href=\"#write-code\" class=\"ph-vertical-nav-item\">Write Code<\/a><!-- [et_pb_line_break_holder] -->  <a href=\"#run-code\" class=\"ph-vertical-nav-item\">Run Program<\/a><!-- [et_pb_line_break_holder] -->  <a href=\"#practice\" class=\"ph-vertical-nav-item\">Practice<\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][et_pb_column type=&#8221;3_4&#8243; specialty_columns=&#8221;3&#8243;][et_pb_row_inner _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_id=&#8221;prereq&#8221;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Prerequisites&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_id=&#8221;setup&#8221;]<\/p>\n<h2>Prerequisites<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>This project assumes you are familiar with the following<\/pee><!-- [et_pb_line_break_holder] --><\/p>\n<ul><!-- [et_pb_line_break_holder] --><\/p>\n<li><a href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_1\/\" target=\"_blank\" rel=\"noopener noreferrer\">Getting Started Kit &#8211; Advanced Lessons &#8211; Button Events<\/a><\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li><a href=\"\/education\/learn\/getting-started-kit-tutorial\/getting-started-kit-advanced-9-errors\/\" target=\"_blank\" rel=\"noopener noreferrer\">Getting Started Kit &#8211; Advanced Lessons &#8211;  Error Handling<\/a><\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ul>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_id=&#8221;setup&#8221;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Setup&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_id=&#8221;setup&#8221;]<\/p>\n<h2>Setup<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>All you need for this project is the Getting Started Kit.<\/strong><\/pee>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; custom_padding=&#8221;||0px|&#8221;][et_pb_column_inner type=&#8221;1_3&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Part: GSK&#8221; _builder_version=&#8221;4.18.0&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; saved_tabs=&#8221;all&#8221; background_pattern_color=&#8221;rgba(0,0,0,0.2)&#8221; background_mask_color=&#8221;#ffffff&#8221; global_module=&#8221;8489&#8243;]<\/p>\n<div class=\"ph-part-card\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"ph-part-card__top\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"ph-part-card__type\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"ph-overline-text\"><!-- [et_pb_line_break_holder] -->        <a href=\"\">Kit\/<\/a><!-- [et_pb_line_break_holder] -->        <a href=\"\">Getting Started Kit<\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"ph-part-card__title\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<h3>Getting Started Kit<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"ph-part-card__bottom\"><!-- [et_pb_line_break_holder] -->    <img decoding=\"async\" src=\"\/education\/wp-content\/uploads\/2022\/08\/KIT4003_2_Square.jpg\" ><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column_inner][et_pb_column_inner type=&#8221;1_3&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][\/et_pb_column_inner][et_pb_column_inner type=&#8221;1_3&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; custom_padding=&#8221;||0px|&#8221;][et_pb_column_inner type=&#8221;1_3&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][\/et_pb_column_inner][et_pb_column_inner type=&#8221;1_3&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][\/et_pb_column_inner][et_pb_column_inner type=&#8221;1_3&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; disabled_on=&#8221;off|off|off&#8221; disabled=&#8221;off&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_id=&#8221;write-code&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221; (invisible anchor)&#8221; _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_id=&#8221;move&#8221; module_class=&#8221;ph-hidden-anchor&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; \/][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-java&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Write code Java&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write code (Java)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Copy the code below into a new Java project. If you need a reminder of how to do this, revisit the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/configure-ide\">Getting Started Course.<\/a><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->Not your programming language? <a class=\"ph-toggle-settings\">Set your preferences<\/a> so we can display relevant code examples<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample &#8211; Eclipse&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_class=&#8221;ph-user-eclipse&#8221;]<\/p>\n<pre class=\"language-java\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library.<!-- [et_pb_line_break_holder] -->import com.phidget22.*;<!-- [et_pb_line_break_holder] -->import java.util.concurrent.ThreadLocalRandom;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->public class RedLightGreenLight {<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Define<!-- [et_pb_line_break_holder] -->    static boolean playingGame = false;<!-- [et_pb_line_break_holder] -->    static int redScore = 0;<!-- [et_pb_line_break_holder] -->    static int greenScore = 0;<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    public static boolean flashLEDs(DigitalOutput led1, DigitalOutput led2) throws Exception{<!-- [et_pb_line_break_holder] -->        int i = 0;<!-- [et_pb_line_break_holder] -->        while(i < 5){<!-- [et_pb_line_break_holder] -->            led1.setState(true);<!-- [et_pb_line_break_holder] -->            led2.setState(true);<!-- [et_pb_line_break_holder] -->            Thread.sleep(500);<!-- [et_pb_line_break_holder] -->            led1.setState(false);<!-- [et_pb_line_break_holder] -->            led2.setState(false);<!-- [et_pb_line_break_holder] -->            Thread.sleep(500);<!-- [et_pb_line_break_holder] -->            i += 1;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        return true;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    public static int getRandomSleep(){<!-- [et_pb_line_break_holder] -->        \/\/generate a random number between 500 and 4000<!-- [et_pb_line_break_holder] -->        return ThreadLocalRandom.current().nextInt(500, 4000);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    public static void main(String[] args) throws Exception{<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Create<!-- [et_pb_line_break_holder] -->        DigitalInput redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalOutput redLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->        DigitalInput greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalOutput greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Address<!-- [et_pb_line_break_holder] -->        redButton.setHubPort(0);<!-- [et_pb_line_break_holder] -->        redButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        redLED.setHubPort(1);<!-- [et_pb_line_break_holder] -->        redLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenButton.setHubPort(5);<!-- [et_pb_line_break_holder] -->        greenButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenLED.setHubPort(4);<!-- [et_pb_line_break_holder] -->        greenLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event for red button<!-- [et_pb_line_break_holder] -->        redButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                try{<!-- [et_pb_line_break_holder] -->                    \/\/if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->                    if(playingGame && e.getState()){<!-- [et_pb_line_break_holder] -->                        \/\/if green light is on<!-- [et_pb_line_break_holder] -->                        if(greenLED.getState()){<!-- [et_pb_line_break_holder] -->                            redScore += 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        else{<!-- [et_pb_line_break_holder] -->                            redScore -= 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        System.out.println(\"Red Score: \" + redScore);<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        if(redScore == 100){<!-- [et_pb_line_break_holder] -->                            System.out.println(\"Red player wins!\");<!-- [et_pb_line_break_holder] -->                            playingGame = false;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                    }       <!-- [et_pb_line_break_holder] -->                } catch(PhidgetException ex){<!-- [et_pb_line_break_holder] -->                    System.out.println(\"Error: \" + ex);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Event for green button<!-- [et_pb_line_break_holder] -->        greenButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                try{<!-- [et_pb_line_break_holder] -->                    \/\/if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->                    if(playingGame && e.getState()){<!-- [et_pb_line_break_holder] -->                        \/\/if green light is on<!-- [et_pb_line_break_holder] -->                        if(greenLED.getState()){<!-- [et_pb_line_break_holder] -->                            greenScore += 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        else{<!-- [et_pb_line_break_holder] -->                            greenScore -= 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        System.out.println(\"Green Score: \" + greenScore);<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        if(greenScore == 100){<!-- [et_pb_line_break_holder] -->                            System.out.println(\"Green player wins!\");<!-- [et_pb_line_break_holder] -->                            playingGame = false;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                    }               <!-- [et_pb_line_break_holder] -->                } catch(PhidgetException ex){<!-- [et_pb_line_break_holder] -->                    System.out.println(\"Error: \" + ex);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Open <!-- [et_pb_line_break_holder] -->        redLED.open(1000);<!-- [et_pb_line_break_holder] -->        greenLED.open(1000);<!-- [et_pb_line_break_holder] -->        redButton.open(1000);        <!-- [et_pb_line_break_holder] -->        greenButton.open(1000);<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        System.out.println(\"Starting game, wait for LEDs to stop flashing.\");<!-- [et_pb_line_break_holder] -->        playingGame = flashLEDs(redLED, greenLED);<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Game loop<!-- [et_pb_line_break_holder] -->        while(playingGame){<!-- [et_pb_line_break_holder] -->            greenLED.setState(true);<!-- [et_pb_line_break_holder] -->            Thread.sleep(getRandomSleep());<!-- [et_pb_line_break_holder] -->            greenLED.setState(false);<!-- [et_pb_line_break_holder] -->            redLED.setState(true);<!-- [et_pb_line_break_holder] -->            Thread.sleep(getRandomSleep());<!-- [et_pb_line_break_holder] -->            redLED.setState(false);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        System.out.println(\"Game over\");        <!-- [et_pb_line_break_holder] -->    }    <!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample &#8211; Netbeans&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_class=&#8221;ph-user-netbeans&#8221;]<\/p>\n<pre class=\"language-java\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->package redlightgreenlight;<!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library.<!-- [et_pb_line_break_holder] -->import com.phidget22.*;<!-- [et_pb_line_break_holder] -->import java.util.concurrent.ThreadLocalRandom;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->public class RedLightGreenLight {<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Define<!-- [et_pb_line_break_holder] -->    static boolean playingGame = false;<!-- [et_pb_line_break_holder] -->    static int redScore = 0;<!-- [et_pb_line_break_holder] -->    static int greenScore = 0;<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    public static boolean flashLEDs(DigitalOutput led1, DigitalOutput led2) throws Exception{<!-- [et_pb_line_break_holder] -->        int i = 0;<!-- [et_pb_line_break_holder] -->        while(i < 5){<!-- [et_pb_line_break_holder] -->            led1.setState(true);<!-- [et_pb_line_break_holder] -->            led2.setState(true);<!-- [et_pb_line_break_holder] -->            Thread.sleep(500);<!-- [et_pb_line_break_holder] -->            led1.setState(false);<!-- [et_pb_line_break_holder] -->            led2.setState(false);<!-- [et_pb_line_break_holder] -->            Thread.sleep(500);<!-- [et_pb_line_break_holder] -->            i += 1;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        return true;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    public static int getRandomSleep(){<!-- [et_pb_line_break_holder] -->        \/\/generate a random number between 500 and 4000<!-- [et_pb_line_break_holder] -->        return ThreadLocalRandom.current().nextInt(500, 4000);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    public static void main(String[] args) throws Exception{<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Create<!-- [et_pb_line_break_holder] -->        DigitalInput redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalOutput redLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->        DigitalInput greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalOutput greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Address<!-- [et_pb_line_break_holder] -->        redButton.setHubPort(0);<!-- [et_pb_line_break_holder] -->        redButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        redLED.setHubPort(1);<!-- [et_pb_line_break_holder] -->        redLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenButton.setHubPort(5);<!-- [et_pb_line_break_holder] -->        greenButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenLED.setHubPort(4);<!-- [et_pb_line_break_holder] -->        greenLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event for red button<!-- [et_pb_line_break_holder] -->        redButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                try{<!-- [et_pb_line_break_holder] -->                    \/\/if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->                    if(playingGame && e.getState()){<!-- [et_pb_line_break_holder] -->                        \/\/if green light is on<!-- [et_pb_line_break_holder] -->                        if(greenLED.getState()){<!-- [et_pb_line_break_holder] -->                            redScore += 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        else{<!-- [et_pb_line_break_holder] -->                            redScore -= 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        System.out.println(\"Red Score: \" + redScore);<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        if(redScore == 100){<!-- [et_pb_line_break_holder] -->                            System.out.println(\"Red player wins!\");<!-- [et_pb_line_break_holder] -->                            playingGame = false;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                    }       <!-- [et_pb_line_break_holder] -->                } catch(PhidgetException ex){<!-- [et_pb_line_break_holder] -->                    System.out.println(\"Error: \" + ex);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Event for green button<!-- [et_pb_line_break_holder] -->        greenButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                try{<!-- [et_pb_line_break_holder] -->                    \/\/if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->                    if(playingGame && e.getState()){<!-- [et_pb_line_break_holder] -->                        \/\/if green light is on<!-- [et_pb_line_break_holder] -->                        if(greenLED.getState()){<!-- [et_pb_line_break_holder] -->                            greenScore += 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        else{<!-- [et_pb_line_break_holder] -->                            greenScore -= 1;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        System.out.println(\"Green Score: \" + greenScore);<!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        if(greenScore == 100){<!-- [et_pb_line_break_holder] -->                            System.out.println(\"Green player wins!\");<!-- [et_pb_line_break_holder] -->                            playingGame = false;<!-- [et_pb_line_break_holder] -->                        }<!-- [et_pb_line_break_holder] -->                    }               <!-- [et_pb_line_break_holder] -->                } catch(PhidgetException ex){<!-- [et_pb_line_break_holder] -->                    System.out.println(\"Error: \" + ex);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Open <!-- [et_pb_line_break_holder] -->        redLED.open(1000);<!-- [et_pb_line_break_holder] -->        greenLED.open(1000);<!-- [et_pb_line_break_holder] -->        redButton.open(1000);        <!-- [et_pb_line_break_holder] -->        greenButton.open(1000);<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        System.out.println(\"Starting game, wait for LEDs to stop flashing.\");<!-- [et_pb_line_break_holder] -->        playingGame = flashLEDs(redLED, greenLED);<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Game loop<!-- [et_pb_line_break_holder] -->        while(playingGame){<!-- [et_pb_line_break_holder] -->            greenLED.setState(true);<!-- [et_pb_line_break_holder] -->            Thread.sleep(getRandomSleep());<!-- [et_pb_line_break_holder] -->            greenLED.setState(false);<!-- [et_pb_line_break_holder] -->            redLED.setState(true);<!-- [et_pb_line_break_holder] -->            Thread.sleep(getRandomSleep());<!-- [et_pb_line_break_holder] -->            redLED.setState(false);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        System.out.println(\"Game over\");        <!-- [et_pb_line_break_holder] -->    }    <!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample &#8211; Processing&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_class=&#8221;ph-user-processing&#8221;]<\/p>\n<pre class=\"language-java\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library <!-- [et_pb_line_break_holder] -->import com.phidget22.*;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/Define<!-- [et_pb_line_break_holder] -->DigitalOutput redLED;<!-- [et_pb_line_break_holder] -->DigitalOutput greenLED;<!-- [et_pb_line_break_holder] -->DigitalInput redButton;<!-- [et_pb_line_break_holder] -->DigitalInput greenButton;<!-- [et_pb_line_break_holder] -->boolean playingGame = false;<!-- [et_pb_line_break_holder] -->int redScore = 0;<!-- [et_pb_line_break_holder] -->int greenScore = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/Flash LEDs - starting sequence<!-- [et_pb_line_break_holder] -->boolean flashLEDs(DigitalOutput led1, DigitalOutput led2) throws Exception{<!-- [et_pb_line_break_holder] -->  int i = 0;<!-- [et_pb_line_break_holder] -->  while(i < 5){<!-- [et_pb_line_break_holder] -->    led1.setState(true);<!-- [et_pb_line_break_holder] -->    led2.setState(true);    <!-- [et_pb_line_break_holder] -->    delay(500);<!-- [et_pb_line_break_holder] -->    led1.setState(false);<!-- [et_pb_line_break_holder] -->    led2.setState(false);<!-- [et_pb_line_break_holder] -->    delay(500);<!-- [et_pb_line_break_holder] -->    i += 1; <!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  return true;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->int getRandomSleep(){<!-- [et_pb_line_break_holder] -->  \/\/generate a random number between 500 and 4000<!-- [et_pb_line_break_holder] -->  return int(random(500, 4000));<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->void setup(){<!-- [et_pb_line_break_holder] -->  try{<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Create<!-- [et_pb_line_break_holder] -->    redLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->    greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->    redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->    greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Address <!-- [et_pb_line_break_holder] -->    redButton.setHubPort(0);<!-- [et_pb_line_break_holder] -->    redButton.setIsHubPortDevice(true);    <!-- [et_pb_line_break_holder] -->    redLED.setHubPort(1);<!-- [et_pb_line_break_holder] -->    redLED.setIsHubPortDevice(true);    <!-- [et_pb_line_break_holder] -->    greenButton.setHubPort(5);    <!-- [et_pb_line_break_holder] -->    greenButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->    greenLED.setHubPort(4);       <!-- [et_pb_line_break_holder] -->    greenLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Event <!-- [et_pb_line_break_holder] -->    redButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->      public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->        try{<!-- [et_pb_line_break_holder] -->            \/\/if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->            if(playingGame && e.getState()){<!-- [et_pb_line_break_holder] -->                \/\/if green light is on<!-- [et_pb_line_break_holder] -->                if(greenLED.getState()){<!-- [et_pb_line_break_holder] -->                    greenScore += 1;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->                else{<!-- [et_pb_line_break_holder] -->                    greenScore -= 1;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->                print(\"Green Score: \" + greenScore);<!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->                if(redScore == 100){<!-- [et_pb_line_break_holder] -->                    print(\"Green player wins!\");<!-- [et_pb_line_break_holder] -->                    playingGame = false;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }               <!-- [et_pb_line_break_holder] -->        } catch(PhidgetException ex){<!-- [et_pb_line_break_holder] -->            print(\"Error: \" + ex);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Event <!-- [et_pb_line_break_holder] -->    greenButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->      public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->        try{<!-- [et_pb_line_break_holder] -->            \/\/if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->            if(playingGame && e.getState()){<!-- [et_pb_line_break_holder] -->                \/\/if green light is on<!-- [et_pb_line_break_holder] -->                if(greenLED.getState()){<!-- [et_pb_line_break_holder] -->                    greenScore += 1;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->                else{<!-- [et_pb_line_break_holder] -->                    greenScore -= 1;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->                System.out.println(\"Green Score: \" + greenScore);<!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->                if(greenScore == 100){<!-- [et_pb_line_break_holder] -->                    print(\"Green player wins!\");<!-- [et_pb_line_break_holder] -->                    playingGame = false;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }               <!-- [et_pb_line_break_holder] -->        } catch(PhidgetException ex){<!-- [et_pb_line_break_holder] -->            print(\"Error: \" + ex);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Open<!-- [et_pb_line_break_holder] -->    redButton.open(1000);<!-- [et_pb_line_break_holder] -->    greenButton.open(1000);<!-- [et_pb_line_break_holder] -->    redLED.open(1000);<!-- [et_pb_line_break_holder] -->    greenLED.open(1000);<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    playingGame = flashLEDs(redLED, greenLED);<!-- [et_pb_line_break_holder] -->    beginGame();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  }catch(Exception e){<!-- [et_pb_line_break_holder] -->    \/\/Handle Exceptions<!-- [et_pb_line_break_holder] -->    e.printStackTrace();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->void beginGame(){<!-- [et_pb_line_break_holder] -->    try{<!-- [et_pb_line_break_holder] -->    while(playingGame){<!-- [et_pb_line_break_holder] -->      greenLED.setState(true);<!-- [et_pb_line_break_holder] -->      Thread.sleep(getRandomSleep());<!-- [et_pb_line_break_holder] -->      greenLED.setState(false);<!-- [et_pb_line_break_holder] -->      redLED.setState(true);<!-- [et_pb_line_break_holder] -->      Thread.sleep(getRandomSleep());<!-- [et_pb_line_break_holder] -->      redLED.setState(false);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    print(\"Game Over\");<!-- [et_pb_line_break_holder] -->    exit();<!-- [et_pb_line_break_holder] -->  } catch(Exception e){<!-- [et_pb_line_break_holder] -->    \/\/Handle Exceptions<!-- [et_pb_line_break_holder] -->    e.printStackTrace();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-python&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Write code Python&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write code (Python)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Copy the code below into a new Python project. If you need a reminder of how to do this, revisit the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/configure-ide\">Getting Started Course.<\/a><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->Not your programming language? <a class=\"ph-toggle-settings\">Set your preferences<\/a> so we can display relevant code examples<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<pre class=\"language-python\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->#Add Phidgets Library <!-- [et_pb_line_break_holder] -->from Phidget22.Phidget import *<!-- [et_pb_line_break_holder] -->from Phidget22.Devices.DigitalInput import *<!-- [et_pb_line_break_holder] -->from Phidget22.Devices.DigitalOutput import *<!-- [et_pb_line_break_holder] -->#Required for sleep statement <!-- [et_pb_line_break_holder] -->import time<!-- [et_pb_line_break_holder] -->#Required for random number generator<!-- [et_pb_line_break_holder] -->import random<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Flash LEDs - starting sequence<!-- [et_pb_line_break_holder] -->def flash_leds():<!-- [et_pb_line_break_holder] -->    i = 0<!-- [et_pb_line_break_holder] -->    while(i < 5):<!-- [et_pb_line_break_holder] -->        redLED.setState(True)<!-- [et_pb_line_break_holder] -->        greenLED.setState(True)<!-- [et_pb_line_break_holder] -->        time.sleep(0.5)<!-- [et_pb_line_break_holder] -->        redLED.setState(False)<!-- [et_pb_line_break_holder] -->        greenLED.setState(False)<!-- [et_pb_line_break_holder] -->        time.sleep(0.5)<!-- [et_pb_line_break_holder] -->        i += 1<!-- [et_pb_line_break_holder] -->    return True<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Generate a random number between 0.5 and 4.0. Step size of 0.1.<!-- [et_pb_line_break_holder] -->def get_random_sleep():<!-- [et_pb_line_break_holder] -->    return random.randrange(500,4000,100)\/1000.0<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Event<!-- [et_pb_line_break_holder] -->def onRedButton_StateChange(self, state):<!-- [et_pb_line_break_holder] -->    global playing_game<!-- [et_pb_line_break_holder] -->    #if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->    if(state and playing_game):<!-- [et_pb_line_break_holder] -->        #if green light is on<!-- [et_pb_line_break_holder] -->        if(greenLED.getState()):<!-- [et_pb_line_break_holder] -->            redButton.score += 1 <!-- [et_pb_line_break_holder] -->        else:<!-- [et_pb_line_break_holder] -->            redButton.score -= 1<!-- [et_pb_line_break_holder] -->            <!-- [et_pb_line_break_holder] -->        print(redButton.score)<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        if(redButton.score == 100):<!-- [et_pb_line_break_holder] -->            print(\"Red player wins!\")<!-- [et_pb_line_break_holder] -->            playing_game = False<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->#Event<!-- [et_pb_line_break_holder] -->def onGreenButton_StateChange(self, state):<!-- [et_pb_line_break_holder] -->    global playing_game<!-- [et_pb_line_break_holder] -->    #if button is pushed and no one has won<!-- [et_pb_line_break_holder] -->    if(state and playing_game):<!-- [et_pb_line_break_holder] -->        #if green light is on<!-- [et_pb_line_break_holder] -->        if(greenLED.getState()):<!-- [et_pb_line_break_holder] -->            greenButton.score += 1 <!-- [et_pb_line_break_holder] -->        else:<!-- [et_pb_line_break_holder] -->            greenButton.score -= 1<!-- [et_pb_line_break_holder] -->            <!-- [et_pb_line_break_holder] -->        print(greenButton.score)<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        if(greenButton.score == 100):<!-- [et_pb_line_break_holder] -->            print(\"Green player wins!\")<!-- [et_pb_line_break_holder] -->            playing_game = False<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->#Create <!-- [et_pb_line_break_holder] -->redButton = DigitalInput()<!-- [et_pb_line_break_holder] -->redLED =  DigitalOutput()<!-- [et_pb_line_break_holder] -->greenButton = DigitalInput()<!-- [et_pb_line_break_holder] -->greenLED = DigitalOutput()<!-- [et_pb_line_break_holder] --> <!-- [et_pb_line_break_holder] -->#Address <!-- [et_pb_line_break_holder] -->redButton.setHubPort(0)<!-- [et_pb_line_break_holder] -->redButton.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] -->redLED.setHubPort(1)<!-- [et_pb_line_break_holder] -->redLED.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] -->greenButton.setHubPort(5)<!-- [et_pb_line_break_holder] -->greenButton.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] -->greenLED.setHubPort(4)<!-- [et_pb_line_break_holder] -->greenLED.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Subscribe to Events <!-- [et_pb_line_break_holder] -->redButton.setOnStateChangeHandler(onRedButton_StateChange)<!-- [et_pb_line_break_holder] -->greenButton.setOnStateChangeHandler(onGreenButton_StateChange)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Define a score <!-- [et_pb_line_break_holder] -->redButton.score = 0<!-- [et_pb_line_break_holder] -->greenButton.score = 0<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Open <!-- [et_pb_line_break_holder] -->redLED.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] -->greenLED.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] -->redButton.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] -->greenButton.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->print(\"Starting game, wait for LEDs to stop flashing.\")<!-- [et_pb_line_break_holder] -->playing_game = flash_leds()<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Game loop<!-- [et_pb_line_break_holder] -->while(playing_game):<!-- [et_pb_line_break_holder] -->    greenLED.setState(True)<!-- [et_pb_line_break_holder] -->    time.sleep(get_random_sleep())<!-- [et_pb_line_break_holder] -->    greenLED.setState(False)<!-- [et_pb_line_break_holder] -->    redLED.setState(True)<!-- [et_pb_line_break_holder] -->    time.sleep(get_random_sleep())<!-- [et_pb_line_break_holder] -->    redLED.setState(False)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->print(\"Game Over\")<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-csharp&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Write code C#&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write code (C#)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Copy the code below into a new C# project. If you need a reminder of how to do this, revisit the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/configure-ide\">Getting Started Course.<\/a><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->Not your programming language? <a class=\"ph-toggle-settings\">Set your preferences<\/a> so we can display relevant code examples<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<pre class=\"language-csharp\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library<!-- [et_pb_line_break_holder] -->using Phidget22;<!-- [et_pb_line_break_holder] -->using System.Collections;<!-- [et_pb_line_break_holder] -->using System.Collections.Generic;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->namespace SimonSays<!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->    class Program<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->        \/\/Track number of button events<!-- [et_pb_line_break_holder] -->        static int numEvents = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Track user input and solutions<!-- [et_pb_line_break_holder] -->        public static List&lt;int&gt; sequenceKey = new List&lt;int&gt;();<!-- [et_pb_line_break_holder] -->        public static List&lt;int&gt; userAnswer = new List&lt;int&gt;();<!-- [et_pb_line_break_holder] -->        \/\/public static ArrayList sequenceKey = new ArrayList();<!-- [et_pb_line_break_holder] -->        \/\/public static ArrayList userAnswer = new ArrayList();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Define here so they can be used in events<!-- [et_pb_line_break_holder] -->        public static DigitalOutput redLED;<!-- [et_pb_line_break_holder] -->        public static DigitalOutput greenLED;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event<!-- [et_pb_line_break_holder] -->        private static void redButton_StateChange(object sender, Phidget22.Events.DigitalInputStateChangeEventArgs e)<!-- [et_pb_line_break_holder] -->        {<!-- [et_pb_line_break_holder] -->            redLED.State = e.State;<!-- [et_pb_line_break_holder] -->            if (e.State)<!-- [et_pb_line_break_holder] -->            {<!-- [et_pb_line_break_holder] -->                userAnswer.Add(0);<!-- [et_pb_line_break_holder] -->                numEvents++;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event<!-- [et_pb_line_break_holder] -->        private static void greenButton_StateChange(object sender, Phidget22.Events.DigitalInputStateChangeEventArgs e)<!-- [et_pb_line_break_holder] -->        {<!-- [et_pb_line_break_holder] -->            greenLED.State = e.State;<!-- [et_pb_line_break_holder] -->            if (e.State)<!-- [et_pb_line_break_holder] -->            {<!-- [et_pb_line_break_holder] -->                userAnswer.Add(1);<!-- [et_pb_line_break_holder] -->                numEvents++;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        static void Main(string[] args)<!-- [et_pb_line_break_holder] -->        {<!-- [et_pb_line_break_holder] -->            \/\/Determine starting # of colors<!-- [et_pb_line_break_holder] -->            var numColors = 3;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Determine if game should continue looping<!-- [et_pb_line_break_holder] -->            bool continueGame = true; <!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Create<!-- [et_pb_line_break_holder] -->            DigitalInput redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->            DigitalInput greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->            redLED = new DigitalOutput();            <!-- [et_pb_line_break_holder] -->            greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Address<!-- [et_pb_line_break_holder] -->            redButton.HubPort = 0;<!-- [et_pb_line_break_holder] -->            redButton.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] -->            redLED.HubPort = 1;<!-- [et_pb_line_break_holder] -->            redLED.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] -->            greenButton.HubPort = 5;<!-- [et_pb_line_break_holder] -->            greenButton.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] -->            greenLED.HubPort = 4;<!-- [et_pb_line_break_holder] -->            greenLED.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Subscribe to events<!-- [et_pb_line_break_holder] -->            redButton.StateChange += redButton_StateChange;<!-- [et_pb_line_break_holder] -->            greenButton.StateChange += greenButton_StateChange;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Open<!-- [et_pb_line_break_holder] -->            redLED.Open(1000);<!-- [et_pb_line_break_holder] -->            greenLED.Open(1000);<!-- [et_pb_line_break_holder] -->            redButton.Open(1000);<!-- [et_pb_line_break_holder] -->            greenButton.Open(1000);            <!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Creates random number generator<!-- [et_pb_line_break_holder] -->            System.Random RNG = new System.Random();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <!-- [et_pb_line_break_holder] -->            System.Console.WriteLine(\"Starting game, look at the LEDS.\");<!-- [et_pb_line_break_holder] -->            System.Threading.Thread.Sleep(2000);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <!-- [et_pb_line_break_holder] -->            \/\/Loop that keeps game going<!-- [et_pb_line_break_holder] -->            while (continueGame)<!-- [et_pb_line_break_holder] -->            {<!-- [et_pb_line_break_holder] -->                \/\/Generate answer key for this round<!-- [et_pb_line_break_holder] -->                sequenceKey.Clear();<!-- [et_pb_line_break_holder] -->                for (int i = 0; i &lt; numColors; i++)<!-- [et_pb_line_break_holder] -->                {<!-- [et_pb_line_break_holder] -->                    int randomNumber = RNG.Next(0, 2); \/\/randomly generate either 0 or 1<!-- [et_pb_line_break_holder] -->                    sequenceKey.Add(randomNumber);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/Flash the answer key for user to memorize<!-- [et_pb_line_break_holder] -->                for (int i = 0; i &lt; sequenceKey.Count; i++)<!-- [et_pb_line_break_holder] -->                {<!-- [et_pb_line_break_holder] -->                    if (sequenceKey[i] == 0) \/\/0 is assigned to red<!-- [et_pb_line_break_holder] -->                    {<!-- [et_pb_line_break_holder] -->                        redLED.State = true;<!-- [et_pb_line_break_holder] -->                        System.Threading.Thread.Sleep(500);<!-- [et_pb_line_break_holder] -->                        redLED.State = false;<!-- [et_pb_line_break_holder] -->                    }<!-- [et_pb_line_break_holder] -->                    else \/\/1 is assigned to green<!-- [et_pb_line_break_holder] -->                    {<!-- [et_pb_line_break_holder] -->                        greenLED.State = true;<!-- [et_pb_line_break_holder] -->                        System.Threading.Thread.Sleep(500);<!-- [et_pb_line_break_holder] -->                        greenLED.State = false;<!-- [et_pb_line_break_holder] -->                    }<!-- [et_pb_line_break_holder] -->                    System.Threading.Thread.Sleep(500);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/reset before accepting answers<!-- [et_pb_line_break_holder] -->                numEvents = 0; <!-- [et_pb_line_break_holder] -->                userAnswer.Clear();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                System.Console.WriteLine(\"Please enter your answer:\");<!-- [et_pb_line_break_holder] -->                \/\/Wait for user input<!-- [et_pb_line_break_holder] -->                while (numEvents &lt; sequenceKey.Count) <!-- [et_pb_line_break_holder] -->                {<!-- [et_pb_line_break_holder] -->                    System.Threading.Thread.Sleep(150);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/Compare user answers to key<!-- [et_pb_line_break_holder] -->                for (int i = 0; i &lt; sequenceKey.Count; i++)<!-- [et_pb_line_break_holder] -->                {<!-- [et_pb_line_break_holder] -->                    if (userAnswer[i] != sequenceKey[i])<!-- [et_pb_line_break_holder] -->                    {                       <!-- [et_pb_line_break_holder] -->                        System.Console.WriteLine(\"Game Over! You reached level : \" + (numColors-3));<!-- [et_pb_line_break_holder] -->                        System.Console.ReadLine();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                        continueGame = false;                      <!-- [et_pb_line_break_holder] -->                    }<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                if (continueGame) <!-- [et_pb_line_break_holder] -->                {<!-- [et_pb_line_break_holder] -->                    System.Console.WriteLine(\"Congrats! Starting next level...\");<!-- [et_pb_line_break_holder] -->                    System.Threading.Thread.Sleep(2000);<!-- [et_pb_line_break_holder] -->                    numColors++;<!-- [et_pb_line_break_holder] -->                }                <!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-swift&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Write code Swift&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write code (Swift)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Copy the code below into a new Swift project. If you need a reminder of how to do this, revisit the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/configure-ide\">Getting Started Course.<\/a><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->Not your programming language? <a class=\"ph-toggle-settings\">Set your preferences<\/a> so we can display relevant code examples<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<pre class=\"language-swift\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->Code not available.<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_id=&#8221;run-code&#8221;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Run Your Program&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Run Your Program<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>This game requires two players, one will use the red button and one will use the green button. Both LEDs will flash 5 times and then the game will begin! When the green LED is on, press your button as many times as you can to gain points. When the red LED is on, stop pressing your button or you will lose points! First to 100 points wins.<\/pee>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_id=&#8221;practice&#8221;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;Practice&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Practice<\/h2>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<ol><!-- [et_pb_line_break_holder] --><\/p>\n<li>Try adding a sound byte to your code that says either &#8220;Green Light&#8221; or &#8220;Red Light&#8221; depending on which LED is on. Hint: the <a href=\"\/education\/learn\/projects\/rfid-sound-effects\/\" target=\"_blank\" rel=\"noopener noreferrer\">RFID Sound Effects<\/a> project shows how to add audio to your code.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Try adding another Getting Started Kit to make it a four player game. Hint: the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/addressing_1-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">Advanced Lesson: Two or More VINT Hubs<\/a> shows how to use multiple Getting Started Kits.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ol>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;3_4&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;3_4&#8243;][et_pb_code admin_label=&#8221;ph-button-cta: Back to Projects&#8221; _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<a class=\"ph-button-cta\" href=\"\/education\/learn\/projects\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"ph-button-cta__icon\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  Back to Projects<!-- [et_pb_line_break_holder] --><\/a>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][\/et_pb_column][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\/\/Add Phidgets Library.import com.phidget22.*;import java.util.concurrent.ThreadLocalRandom;public class RedLightGreenLight { \/\/Define static boolean playingGame = false; static int redScore = 0; static int greenScore = 0; public static boolean flashLEDs(DigitalOutput led1, DigitalOutput led2) throws Exception{ int i = 0; while(i < 5){ led1.setState(true); led2.setState(true); Thread.sleep(500); led1.setState(false); led2.setState(false); Thread.sleep(500); i += 1; } return true; } public static [&hellip;]\n<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":842,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:paragraph -->\r\n<p>This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:<\/p>\r\n<!-- \/wp:paragraph --><!-- wp:quote -->\r\n<blockquote class=\"wp-block-quote\">\r\n<p>Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like pi\u00f1a coladas. (And gettin' caught in the rain.)<\/p>\r\n<\/blockquote>\r\n<!-- \/wp:quote --><!-- wp:paragraph -->\r\n<p>...or something like this:<\/p>\r\n<!-- \/wp:paragraph --><!-- wp:quote -->\r\n<blockquote class=\"wp-block-quote\">\r\n<p>The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.<\/p>\r\n<\/blockquote>\r\n<!-- \/wp:quote --><!-- wp:paragraph -->\r\n<p>As a new WordPress user, you should go to <a href=\"https:\/\/www.phidgets.com\/education\/wp-admin\/\">your dashboard<\/a> to delete this page and create new pages for your content. Have fun!<\/p>\r\n<!-- \/wp:paragraph -->","_et_gb_content_width":"","footnotes":""},"class_list":["post-7125","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/7125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/comments?post=7125"}],"version-history":[{"count":8,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/7125\/revisions"}],"predecessor-version":[{"id":8562,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/7125\/revisions\/8562"}],"up":[{"embeddable":true,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/842"}],"wp:attachment":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/media?parent=7125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}