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

Kinh nghiệm nâng cao kỹ năng lập trình

Kinh nghiệm nâng cao kỹ năng lập trình

0. Bắt đầu Để trở thành một lập trình viên tốt hơn, bạn cần biết rất là nhiều thứ như: thuật toán, cấu trúc dữ liệu, lập trình hướng đối tượng, testing … Lập trình bao gồm rất nhiều kỹ năng, có nghĩa là không…

[Java cơ bản] Bài 33: Overload (Phần 1)

[Java cơ bản] Bài 33: Overload (Phần 1)

Bài hôm nay sẽ giới thiệu tới các bạn khái niệm Overload trong Java. Chúc các bạn học tập tốt!

Những lập trình viên nổi tiếng nhất đương đại là ai?

Những lập trình viên nổi tiếng nhất đương đại là ai?

Những ứng dụng, trò chơi mà bạn dùng hàng ngày đều được viết bởi những lập trình viên. Những nền tảng hệ điều hành, hệ thống phần cứng, các trang web hay toàn bộ thế giới Internet cũng là công sức nghiên cứu trong thời…

[Java cơ bản] Bài 3: Giới thiệu, cài đặt NetBeans và Eclipse

[Java cơ bản] Bài 3: Giới thiệu, cài đặt NetBeans và Eclipse

Video này sẽ hướng dẫn các bạn cách cài đặt NetBeans, Eclipse… sau đó giới thiệu những chức năng cơ bản của 2 ứng dụng này! Chúc các bạn học tập vui vẻ!

Bình luận ()