fork download
  1.  
  2. int size = 50;
  3.  
  4. int x = size / 2;
  5. int y = size / 2;
  6.  
  7. // 0:right 1:down 2:left 3:up
  8. int direction = 0;
  9.  
  10. void setup(){
  11.  
  12. size(400,400);
  13. }
  14.  
  15.  
  16. void draw() {
  17.  
  18. background(0);
  19. fill(255,255,0);
  20.  
  21. switch (direction) {
  22.  
  23. case 0:
  24. right();
  25. break;
  26.  
  27. case 1:
  28. down();
  29. break;
  30.  
  31. case 2:
  32. left();
  33. break;
  34.  
  35. case 3:
  36. up();
  37. break;
  38. }
  39. }
  40.  
  41. void right() {
  42.  
  43. arc(x,y,size,size,radians(30), radians(330));
  44.  
  45. // 右に動かす
  46. x ++;
  47.  
  48. // 右端に来た → 次回からは下に動かす
  49. if (x >= width - size / 2) {
  50. direction = 1;
  51. }
  52. }
  53.  
  54. void down() {
  55.  
  56. arc(x,y,size,size,radians(-240), radians(60));
  57.  
  58. // 下に動かす
  59. y ++;
  60.  
  61. // 下端に来た → 次回からは左に動かす
  62. if (y >= height - size / 2) {
  63. direction = 2;
  64. }
  65. }
  66.  
  67. void left() {
  68.  
  69. arc(x,y,size,size,radians(-150), radians(150));
  70.  
  71. // 左に動かす
  72. x --;
  73.  
  74. // 左端に来た → 次回からは上に動かす
  75. if (x <= size / 2) {
  76. direction = 3;
  77. }
  78. }
  79.  
  80. void up() {
  81.  
  82. arc(x,y,size,size,radians(-60), radians(240));
  83.  
  84. // 上に動かす
  85. y --;
  86.  
  87. // 上端に来た → 次回からは右に動かす
  88. if (y <= size / 2) {
  89. direction = 0;
  90. }
  91. }
  92.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty