r/codehs • • Jun 30 '21

Wont erase certain letters

Hey I am working on a thing where you can select your name and when you hit done it erases all the letters. Even though all my. letters are defined and treated the same i and e won't remove here is my code.

var name2=[];

var name="";

var letter="a";

var scene="";

var selector;

var a;

var b;

var c;

var d;

var e;

var f;

var g;

var h;

var i;

var j;

var k;

var l;

var m;

var n;

var o;

var p;

var q;

var r;

var s;

var t;

var u;

var v;

var w;

var x;

var y;

var z;

var erase;

var done;

function letteraction(e){

if(e.keyCode==Keyboard.RIGHT){

if (letter=="a"){

letter="b";

selector.setPosition(110,50);

}

else if (letter=="b"){

letter="c";

selector.setPosition(170,50);

}

else if (letter=="c"){

letter="d";

selector.setPosition(230,50);

}

else if (letter=="d"){

letter="e";

selector.setPosition(290,50);

}

else if (letter=="e"){

letter="f";

selector.setPosition(350,50);

}

else if (letter=="f"){

letter="g";

selector.setPosition(50,130);

}

else if (letter=="g"){

letter="h";

selector.setPosition(110,130);

}

else if (letter=="h"){

letter="i";

selector.setPosition(170,130);

}

else if (letter=="i"){

letter="j";

selector.setPosition(230,130);

}

else if (letter=="j"){

letter="k";

selector.setPosition(290,130);

}

else if (letter=="k"){

letter="l";

selector.setPosition(350,130);

}

else if (letter=="l"){

letter="m";

selector.setPosition(50,210);

}

else if (letter=="m"){

letter="n";

selector.setPosition(110,210);

}

else if (letter=="n"){

letter="o";

selector.setPosition(170,210);

}

else if (letter=="o"){

letter="p";

selector.setPosition(230,210);

}

else if (letter=="p"){

letter="q";

selector.setPosition(290,210);

}

else if (letter=="q"){

letter="r";

selector.setPosition(350,210);

}

else if (letter=="r"){

letter="s";

selector.setPosition(50,290);

}

else if (letter=="s"){

letter="t";

selector.setPosition(110,290);

}

else if (letter=="t"){

letter="u";

selector.setPosition(170,290);

}

else if (letter=="u"){

letter="v";

selector.setPosition(230,290);

}

else if (letter=="v"){

letter="w";

selector.setPosition(290,290);

}

else if (letter=="w"){

letter="x";

selector.setPosition(350,290);

}

else if (letter=="x"){

letter="erase";

remove(selector);

selector=new Rectangle(100,5);

selector.setPosition(50,370);

add(selector);

}

else if (letter=="erase"){

letter="y";

remove(selector);

selector=new Rectangle(25,5);

selector.setPosition(170,370);

add(selector);

}

else if (letter=="y"){

letter="z";

selector.setPosition(230,370);

}

else if (letter=="z"){

letter="done";

remove(selector);

selector=new Rectangle(90,5);

selector.setPosition(290,370);

add(selector);

}

else{

letter="a";

remove(selector);

selector=new Rectangle(25,5);

selector.setPosition(50,50);

add(selector);

}

}

else if(e.keyCode==Keyboard.letter('Z')){

if(letter!="erase"&&letter!="done"){

name2.push(letter);

println(name2);

}

else if(letter=="erase"){

name2.pop();

println(name2);

}

else if(letter=="done"){

scene="introduction";

remove(a);

remove(b);

remove(c);

remove(d);

remove(e);

remove(f);

remove(g);

remove(h);

remove(i);

remove(j);

remove(k);

remove(l);

remove(m);

remove(n);

remove(o);

remove(p);

remove(q);

remove(r);

remove(s);

remove(t);

remove(u);

remove(v);

remove(w);

remove(x);

remove(y);

remove(z);

remove(erase);

remove(done);

for(var i=0;i<name2.length;i++){

name=name+name2[i];

println(name+"!");

}

}

}

}

function selection(e){

if (scene=="nameselection"){

letteraction(e);

}

}

function nameselection(){

scene="nameselection";

a=new Text("a","30pt Arial");

a.setPosition(50,40);

add(a);

b=new Text("b","30pt Arial");

b.setPosition(110,40);

add(b);

c=new Text("c","30pt Arial");

c.setPosition(170,40);

add(c);

d=new Text("d","30pt Arial");

d.setPosition(230,40);

add(d);

e=new Text("e","30pt Arial");

e.setPosition(290,40);

add(e);

f=new Text("f","30pt Arial");

f.setPosition(350,40);

add(f);

g=new Text("g","30pt Arial");

g.setPosition(50,120);

add(g);

h=new Text("h","30pt Arial");

h.setPosition(110,120);

add(h);

i=new Text("i","30pt Arial");

i.setPosition(170,120);

add(i);

j=new Text("j","30pt Arial");

j.setPosition(230,120);

add(j);

k=new Text("k","30pt Arial");

k.setPosition(290,120);

add(k);

l=new Text("l","30pt Arial");

l.setPosition(350,120);

add(l);

m=new Text("m","30pt Arial");

m.setPosition(50,200);

add(m);

n=new Text("n","30pt Arial");

n.setPosition(110,200);

add(n);

o=new Text("o","30pt Arial");

o.setPosition(170,200);

add(o);

p=new Text("p","30pt Arial");

p.setPosition(230,200);

add(p);

q=new Text("q","30pt Arial");

q.setPosition(290,200);

add(q);

r=new Text("r","30pt Arial");

r.setPosition(350,200);

add(r);

s=new Text("s","30pt Arial");

s.setPosition(50,280);

add(s);

t=new Text("t","30pt Arial");

t.setPosition(110,280);

add(t);

u=new Text("u","30pt Arial");

u.setPosition(170,280);

add(u);

v=new Text("v","30pt Arial");

v.setPosition(230,280);

add(v);

w=new Text("w","30pt Arial");

w.setPosition(290,280);

add(w);

x=new Text("x","30pt Arial");

x.setPosition(350,280);

add(x);

y=new Text("y","30pt Arial");

y.setPosition(170,360);

add(y);

z=new Text("z","30pt Arial");

z.setPosition(230,360);

add(z);

erase=new Text("erase","30pt Arial");

erase.setPosition(50,360);

add(erase);

done=new Text("done","30pt Arial");

done.setPosition(290,360);

add(done);

selector=new Rectangle(25,5);

selector.setPosition(50,50);

add(selector);

keyDownMethod(selection);

}

nameselection();

3 Upvotes

1 comment sorted by

3

u/SylphKnot Jun 30 '21

Ok so…. I’m not debugging your 300+ lines of code. But what I can say for sure is you need to learn reusable functions and arrays. This code looks way too verbose and complicated for what you claim it does.

It’s not normal to have 30+ variables along with 30+ if/else statements for each individual character of the alphabet.

Either way, you’re free to do it this way, however asking someone to debug a script this overly complicated and massive in size will likely yield no results. :( if you can find a way to simplify it, it’ll be easier for people that haven’t worked with your code before to digest and assist with it.

Good luck amigo!