//intro
void eyeball(int x, int y)
{
stroke(1);
line(x, y, x, (y+1));
line((x+1), y, (x+1), (y+1));
}
////////////////define functions//////////////
void make_slots()
{
stroke(2);
//make slots
//slot 1
line(2, 5, 7, 5);
line(2, 0, 7, 0);
line(2, 5, 2, 0);
line(7, 0, 7, 5);
//slot 2
line(2, 13, 7, 13);
line(2, 8, 7, 8);
line(2, 13, 2, 8);
line(7, 8, 7, 13);
}
//dollar sign
void dollar_sign(int x, int y)
{
stroke(1);
line(x, y, x, (y+3));
line(x, (y+4), (x+3), (y+4));
line((x+3), y, (x+3), (y+4));
line((x+3), y, (x+6), y);
line((x+6), y, (x+6), (y+4));
line((x-1), (y+1), (x+7), (y+1));
line((x-1), (y+3), (x+7), (y+3));
}
void reset_outputs()
{
:0 = 0;
:1 = 0;
:2 = 0;
:3 = 0;
:4 = 0;
:5 = 0;
:6 = 0;
:7 = 0;
}
//make designs
void clear(int slot)
{
stroke(0);
if(slot == 1)
{
line(3, 1, 6, 1);
line(3, 2, 6, 2);
line(3, 3, 6, 3);
line(3, 4, 6, 4);
}
if(slot == 2)
{
line(3, 9, 6, 9);
line(3, 10, 6, 10);
line(3, 11, 6, 11);
line(3, 12, 6, 12);
}
}
void design1(int slot)
{
stroke(1);
if(slot == 1)
{
line(3, 1, 6, 4);
line(3, 4, 6, 1);
}
if(slot == 2)
{
line(3, 12, 6, 9);
line(3, 9, 6, 12);
}
}
void design2(int slot)
{
stroke(1);
if(slot == 1)
{
line(3, 1, 3, 4);
line(3, 1, 6, 1);
line(3, 1, 6, 4);
}
if(slot == 2)
{
line(3, 9, 6, 9);
line(3, 9, 3, 12);
line(3, 9, 6, 12);
}
}
void design3(int slot)
{
stroke(1);
if(slot == 1)
{
line(6, 1, 6, 4);
line(6, 4, 3, 4);
line(3, 1, 6, 4);
}
if(slot == 2)
{
line(6, 9, 6, 12);
line(6, 12, 3, 12);
line(3, 9, 6, 12);
}
}
void design4(int slot)
{
stroke(1);
if(slot == 1)
{
line(4, 1, 4, 4);
line(5, 1, 5, 4);
}
if(slot == 2)
{
line(4, 9, 4, 12);
line(5, 9, 5, 12);
}
}
void design5(int slot)
{
stroke(1);
if(slot == 1)
{
line(3, 2, 3, 3);
design4(1);
line(6, 2, 6, 3);
}
if(slot == 2)
{
line(3, 10, 3, 11);
design4(2);
line(6, 10, 6, 11);
}
}
void design6(int slot)
{
stroke(1);
if(slot == 1)
{
line(6, 1, 6, 4);
line(5, 2, 5, 3);
}
if(slot == 2)
{
line(6, 9, 6, 12);
line(5, 10, 5, 11);
}
}
void design7(int slot)
{
stroke(1);
if(slot == 1)
{
line(3, 1, 3, 4);
line(4, 2, 4, 3);
}
if(slot == 2)
{
line(3, 9, 3, 12);
line(4, 10, 4, 11);
}
}
void design8(int slot)
{
stroke(1);
if(slot == 1)
{
line(4, 2, 4, 3);
line(5, 2, 5, 3);
}
if(slot == 2)
{
line(4, 10, 4, 11);
line(5, 10, 5, 11);
}
}
//main program
//generate random numbers
int rseed = 98;
int bb = 2987;
int mm = 987;
int RAND_MIN = 1;
int RAND_MAX = 8;
int Random()
{
int bl = (rseed*bb+1);
rseed = (bl % mm);
return (RAND_MIN + (rseed % (RAND_MAX+1)));
}
//boolean start_spin = false;
int spinning = 0;
int slot1 = -1;
int slot2 = -2;
//initially make slots
make_slots();
while(true)
{
if((@0 == 0) && (@1 == 1)) //spin on and stop off
{
spinning = 1;
}
if(spinning == 1)
{
//spin
make_slots();
slot1 = Random();
slot2 = Random();
//clear slots
clear(1);
clear(2);
//spin slot 1
if(slot1 == 1)
{
design1(1);
}
else if(slot1 == 2)
{
design2(1);
}
else if(slot1 == 3)
{
design3(1);
}
else if(slot1 == 4)
{
design4(1);
}
else if(slot1 == 5)
{
design5(1);
}
else if(slot1 == 6)
{
design6(1);
}
else if(slot1 == 7)
{
design7(1);
}
else if(slot1 == 8)
{
design8(1);
}
else
{
design1(1);
}
//spin slot 2
if(slot2 == 1)
{
design1(2);
}
else if(slot2 == 2)
{
design2(2);
}
else if(slot2 == 3)
{
design3(2);
}
else if(slot2 == 4)
{
design4(2);
}
else if(slot2 == 5)
{
design5(2);
}
else if(slot2 == 6)
{
design6(2);
}
else if(slot2 == 7)
{
design7(2);
}
else if(slot2 == 8)
{
design8(2);
}
else
{
design1(2);
}
}
if((spinning == 1) && (@1 == 0)) //spin on and stop on
{
//ignore spin button and check values
int i;
//both match
if(slot1 == slot2)
{
//you win
for(i = 0; i < 5; i++)
{
if(slot2 == 1)
{
:0 = 1;
}
else if(slot2 == 2)
{
:1 = 1;
}
else if(slot2 == 3)
{
:2 = 1;
}
else if(slot2 == 4)
{
:3 = 1;
}
else if(slot2 == 5)
{
:4 = 1;
}
else if(slot2 == 6)
{
:5 = 1;
}
else if(slot2 == 7)
{
:6 = 1;
}
else if(slot2 == 8)
{
:7 = 1;
}
else
{
:0 = 1;
}
canvas();
dollar_sign(2, 1);
dollar_sign(2, 8);
pause(10);
canvas();
}
pause(20);
}
//none match
else
{
//you lose
for(i = 6; i > 2; i--)
{
line(i, 1, i, 4);
line(i, 9, i, 12);
pause(10);
}
}
spinning = 0;
}
if(spinning == 0)
{
make_slots();
reset_outputs();
//wait and move eyes
eyeball(4, 2);
eyeball(4, 10);
pause(50);
clear(1);
clear(2);
eyeball(4, 1);
eyeball(4, 9);
pause(55);
clear(1);
clear(2);
eyeball(4, 2);
eyeball(4, 10);
pause(40);
clear(1);
clear(2);
eyeball(4, 3);
eyeball(4, 11);
pause(25);
clear(1);
clear(2);
}
}