psuedo-turtle 그래픽 프로그램을 만드는 것이 임무입니다. 나는 이미 처음에 붙어있다. 거북이는 왼쪽 상단에서 시작하여 펜을 위로 향하게합니다 (그림에서 T입니다). 사용자가 penDown()
을 사용하려고 할 때를 나타 내기 위해 T를 소문자 t로 변경하는 방법을 알 수 없습니다. 처음에도 display()
을 사용하면 빈 공간으로 채워진 50x50 캔버스가 제대로 그려 지지만 구석에 초기 T는 표시되지 않습니다.C로 거북 그래픽을 만들었으므로 배열의 요소 값을 변경할 수 없습니다.
0으로 채워진 50x50 배열을 사용해야합니다. 배열의 1은 타일에 그려진 것을 나타냅니다. 펜이 위 아래로 있는지를 나타 내기 위해 2와 3을 사용했습니다.
#include <stdio.h>
#include <stdlib.h>
/*
*
*/
void penUp(int input);
void penDown(void);
int turnRight(void);
int turnLeft (void);
int draw (void);
void display (void);
int end (void);
char turtle, tile;
static int canvas[50][50];
char drawing[50][50];
int i, j, input, a, b;
int main(int argc, char** argv){
for(i = 0; i < 50; i++){
for(j = 0; j < 50; j++){
canvas[i][j] = 0;
}
}
for(i = 0; i < 50; i++){
for(j = 0; j < 50; j++){
drawing[i][j] = ' ';
}
}
canvas[0][0] = 2;
input = 1;
printf("Controls: \n");
printf("1 for pen up (capital T means pen is up) \n");
printf("2 for pen down (lowercase t means pen is down) \n");
printf("3 for turn right \n");
printf("4 for turn left \n");
printf("5 for drawing, followed by an int value for how many tiles to draw \n");
printf("6 to display drawing \n");
printf("9 to end program \n");
do{
printf("Enter command: ");
scanf("%d", &input);
if(input == 2){
penDown();
}
else if(input == 6){
display();
}
else if(input == 9){
}
}while(input != 0);
return 0;
}
void penDown(void){
for(i = 0; i < 50; i++){
for(j = 0; j < 50; j++){
if(canvas[i][j] == 2){
canvas[i][j] == 3;
break;
}
}
}
}
void display(void){
for(i = 0; i < 50; i++){
for(j = 0; j < 50; j++){
if(canvas[i][j] == 2){
drawing[i][j] == 'T';
}
else if(canvas[i][j] == 3){
drawing[i][j] == 't';
}
}
}
for(a = 0; a < 50; a++){
for(b = 0; b < 50; b++){
printf("%c", drawing[a][b]);
}
printf("\n");
}
}
'penUp()'은 어디에 있습니까? – iBug
표준 C에는 그래픽이 없습니다. 원한다면 외부 라이브러리를 사용해야합니다. 모든 경고와 디버그 정보로 코드를 컴파일하십시오. 'gcc -Wall -Wextra -g'. 그것을 향상시켜 경고를 얻지 마십시오. ** 디버거 **'gdb'를 사용하십시오. 당신의 질문에 SO –
@BasileStarynkevitch에 [MCVE]가 없기 때문에 주제가 (모든 * fix-my-code * 또는 * do-my-homework * 질문과 같이) @BasileStarynkevitch에 있습니다. OP가 ASCII 그래픽을 사용하지 않는다고 생각합니다. 외부 라이브러리가 필요합니다. – cdlane