다음 코드에서는 게임 보드를 그대로 유지했습니다. 사용자가 원하는만큼 여러 번 카드를 재활용 할 수 있도록 프로그램을 반복합니다. 새 줄을 만드는 대신 사용자가 입력 한 문자가 매번 똑같은 위치에 표시되도록하고 싶습니다. 내가 보여주기 위해 그들이 입력하기 전에 입력 한 것을 볼 수 있도록하고 싶습니다. 나는 아직도 코딩에 익숙하지 않고 제 2의 C++ 수업을 듣고 배우고 싶습니다. 내가 연구를 통해 마이크로 소프트 비주얼 스튜디오 2013를 사용하고, 시작하기 나는 내장이 코드를 가지고 :C++ 콘솔에서 매번 같은 위치에 cin show를 만드는 방법
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <Windows.h>
#include <string>
using namespace std;
const TCHAR SUITS[] = { 'H', 'C', 'D', 'S' };
const TCHAR FACES[] = { 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K' };
const TCHAR SPACE = ' ';
const int number_of_cards = 5;
int main() {
char * line_of_stars = "*****************************************************\n";
char * line_of_spaces = "* *\n";
char * top_of_cards = "* ******* ******* ******* ******* ******* *\n";
char * card_sides = "* * * * * * * * * * * *\n";
char quit = 'q';
//Display Screen
cout << line_of_spaces << top_of_cards << card_sides << card_sides << card_sides
<< card_sides << card_sides << top_of_cards << line_of_spaces << line_of_stars;
cout << "\nPress 'q' to quit or any other key to get new cards: ";
DWORD dw;
COORD suitCoord;
COORD faceCoord;
COORD nextMove;
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hStdOut == INVALID_HANDLE_VALUE){
printf("Invalid handle");
}
nextMove.X = 53;
nextMove.Y = 11;
do {
for (int i = 0; i < number_of_cards; i++){
int startX = 6 + (i * 10);
int startY = 3;
//Set coords for the i-nth card
suitCoord.X = (startX);
suitCoord.Y = (startY);
faceCoord.X = (startX);
faceCoord.Y = (startY + 2);
//suit random num
int rand1 = rand() % 4;
TCHAR suit_char = SUITS[rand1];
int rand2 = rand() % 13;
TCHAR face_char = FACES[rand2];
//Print to screen
WriteConsoleOutputCharacter(hStdOut, &suit_char, 1, suitCoord, &dw);
WriteConsoleOutputCharacter(hStdOut, &face_char, 1, faceCoord, &dw);
}
// Cover Last input with a space
WriteConsoleOutputCharacter(hStdOut, &SPACE, 1, nextMove, &dw);
cin.clear();
cin >> quit;
cout << "\b\b";
} while (!(quit == 'q' || quit == 'Q'));
return 0;
}
을 프로그램이 어디에서 초기 사용자가 입력 할 것이라는 자리에 공간을두고 그래서 나는 그것을 가지고 첫 번째 입력. 첫 번째 입력 후 사용자가 'q'또는 'Q'를 입력 할 때까지 cin 문자가 다음 줄에 표시됩니다. 나는 매번 같은 장소에 보여주고 싶다. X coord는 다음과 같아야합니다 : 51 그리고 Y 좌표는 다음과 같아야합니다 : 12. 나는 지난 학기에 그것을 사용했기 때문에 선명한 화면 기술을 사용하지 않으려 고 노력했고 선을 재 인쇄하는 것을 많이 번쩍이 렸습니다.
첫 번째 블록은 {51,12} 일 필요가 있다는 것을 제외하면 완벽하게 작동했습니다. 너무 쉽게 고칠 수있었습니다. 메뉴가 표시되고 잘못된 방식으로 수행 한 경우에도 내 프로그램에서 화면이 선명하지 만 지금은 변경합니다. 두 가지 답변 해 주셔서 감사합니다. – kingcobra1986