thiet ke website

[Lập trình C++] Bài toán rơi chữ và bắt chữ!

Đây là một bài toán dạng game đơn giản, từng chữ cái 1 rơi xuống, và công việc của chúng ta là nhập vào chữ cái đang rơi trước khi nó chạm vào vạch… và tất nhiên là phải nhập đúng rồi, các bạn có thể tham khảo đoạn code dưới đây của mình… Nếu có thắc mắc gì có thể để lại bình luận bên dưới và mình sẽ giải đáp 🙂

rơi chữ c++

c++ bài toán rơi chữ

Sau đây là source code của em nó

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <ctime>

using namespace std;

void gotoxy(short x,short y)
{
	HANDLE hConsoleOutput;
	COORD Cursor_an_Pos = {x,y};
	hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hConsoleOutput,Cursor_an_Pos);
}

void layout(){
	gotoxy(0,0);
	for(int i=0;i<=5;i++) cout << "              \n";
	gotoxy(0,0);
	cout << " ";
	for(char i='A';i<='Z';i++)
		cout << " " << i;
	gotoxy(0,20); cout << "_______________________________________________________";
}

int chardown(int s){
	srand(time(NULL));
	int col=rand()%26+1;
	int i=0;
	while(i<20&&!kbhit()){
		gotoxy(col*2,i);
		cout << " ";
		gotoxy(col*2,i+1);
		cout << char(64+col);
		Sleep(s);
		i++;
	}
	gotoxy(col*2,i); cout << " ";
	gotoxy(col*2,0); cout << char(64+col);
	if(i<20){
		char check=getch();
		if(check==char(96+col)||check==char(64+col))
		return 1;
		else return 0;
	} else {
		gotoxy(col*2,20);
		cout << "_";
		return 0;
	}
}

int main(){
	int lv;
	cout << "1: Level 1\n2: Level 2\n3: Level 3\n4: Level 4\n5: Level 5\n";
	cout << "Nhap level: "; cin >> lv;
	layout();
	int d1=0,d2=0,speed=500/lv;
	while(d1<20&&d2<20&&speed>0){
		if(chardown(speed)==1){
			d1++;
			gotoxy(0,22);
			cout << "Ban duoc " << d1 << " diem!\n";
		}else{
			d2++;
			gotoxy(0,23);
			cout << "May duoc " << d2 << " diem!\n";
		}
		speed-=3;
	}
	gotoxy(0,24);
	system("pause");
	return 0;
}

Đây chỉ là thuật toán cơ bản, chưa hoàn thành tối ưu nên có góp ý hoặc thắc mắc gì các bạn bình luận bên dưới giúp mình nhé! cảm ơn ^^! Chúc các bạn học tập vui vẻ!

Thiet ke logo

Bài viết liên quan

[Java cơ bản] Bài 56: Synchronization

[Java cơ bản] Bài 56: Synchronization

Bài hôm nay sẽ giới thiệu tiếp một kỹ thuật nữa trong Java đó là Synchronization. Synchronization là đồng bộ hóa. Tại sao chúng ta lại cần nó?

[Java cơ bản] Bài 21: Class, Abstract Class và Interface

[Java cơ bản] Bài 21: Class, Abstract Class và Interface

Giới thiệu về Class, Abstract Class và Interface trong Java. Các bạn hãy xem video, nếu có thắc mắc gì hãy để lại bình luận nhé, chúc các bạn học tập tốt.

[C++, Pascal] Tổng các phần tử không cùng hàng cùng cột lớn nhất (Đệ quy)

[C++, Pascal] Tổng các phần tử không cùng hàng cùng cột lớn nhất (Đệ quy)

Đây là một trong những bài toán đơn giản của đệ quy, nói vậy chứ cũng hơi khó hiểu… hehe… Hôm nay mình sẽ giới thiệu bài toán này tới các bạn. Mình viết theo hai loại ngôn ngữ đó là C++ và Pascal tùy…

Vì sao lập trình viên cần giỏi tiếng Anh?

Vì sao lập trình viên cần giỏi tiếng Anh?

Bài viết sẽ giải thích tại sao  việc biết tiếng Anh (dù cho chỉ ở mức trung bình trong tất cả các kỹ năng nghe, nói, đọc và viết) là điều vô cùng quan trọng đối với một lập trình viên nói riêng và dân…

Bình luận ()