Я занимаюсь этой программой на С в течение трех месяцев в свободное от учебы и веселья время.Я пытаюсь создать файл curses в C для самого первого раза, но я, честно говоря, даже не знаю, что такое curses и ncurses, потому что они в любом случае одинаковы ... поэтому я хотел сделать простую квадратную коробку с предположениемправильный номер внутри коробки, чтобы проверить это.Я успешно создал коробку, которая включена в ниже.Я хотел сделать символьные клавиши, которые я только что добавил, внутри поля с клавишами Q для Quit и C для сброса или сброса в getchar
, используя циклы while-do для угадывания правильного или неправильного числа, включая подсчет, сколько раз выдогадался.Кстати: я использовал indent
для форматированных кодов в системе Linux.
Итак, сначала я только что узнал, как создать коробку на экранном шоу, как это (включая код):
lqqqqqqqqqqqqqqqqqqk
xthis is my box x
x x
x x
x x
x x
x x
x x
x x
mqqqqqqqqqqqqqqqqqqj
Код для «Это моя коробка»:
#include <stdio.h>
#include <ncurses.h>
int
main (int argc, char **argv)
{
initscr ();
int height, width, start_y, start_x;
height = 10;
width = 20;
start_y = start_x = 10;
WINDOW *win = newwin (height, width, start_y, start_x);
refresh ();
box (win, 0, 0);
mvwprintw (win, 1, 1, "this is my box");
wrefresh (win);
int c = getch ();
endwin ();
return 0;
}
Мой исходный код, над которым я работал почти три дня:
#include <stdio.h>
#include <ncurses.h> /*This is similar as curses file*/
//using namespace std;
int
main (int argc, char **argv)
{
initscr ();
int height, width, start_y, start_x;
int tries, num, guess;
srand(time(0)); //random number generator
num = rand() % 100 +1; //only 1 through 100
height = 10;
width = 20;
start_y = start_x = 10;
WINDOW *win = newwin (height, width, start_y, start_x);
refresh ();
box (win, 0, 0);
mvwprintw (win, 1, 1, "Guess the correct number!\n");
do {
while((ch = getch()) != ERR) {
switch(ch) {
case 'Q': shutdown();
case 'C': clear(); break;
}
printf("Enter your guess number (1-100): ");
scanf("%d", &guess);
tries++;
if (guess > num){
printf("Try Again Next Time! Press any key to exit!\n");
} else if (guess < num){
printf("Try again...\n");
} else {
printf("\nCORRECT! You got it right after %d guesses!", tries);
}
}
wrefresh (win);
endwin ();
return 0;
}
Это мое ожидание от моей идеи (я скопировал вывод и отредактировал его, например,):
lqqqqqqqqqqqqqqqqqqk
xGuess the correct x
xnumber! x
x x
xEnter your guess x
xnumber (1-100):___x
x x
xTry again... x
x x
mqqqqqqqqqqqqqqqqqqj
для ожидаемого вывода, я все еще могу редактировать размеры, но пока использую текущий размер.Если только вы не хотите добавить «авторазмер», это было бы мило.Спасибо за чтение и помощь.