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

Một số bài tập và hướng dẫn lập trình hệ thống Assembly (Phần 2)

Một số bài tập và hướng dẫn lập trình hệ thống Assembly (Phần 2)

Mình xin tiếp tục chia sẻ phần 2 vài bài tập lập trình hệ thống Assembly và code của nó. Chúc các bạn học tập tốt, nếu có thắc mắc các bạn có thể để lại bình luận để cùng mọi người trao đổi ^^…

[Java cơ bản] Bài 20: Hướng đối tượng OOP

[Java cơ bản] Bài 20: Hướng đối tượng OOP

Tóm tắt nội dung: Giới thiệu hướng đối tượng trong Java Nội dung: Trong lập trình hướng đối tượng thì có 3 đặc điểm cơ bản chính sau: – Thừa kế (Inheritance). – Đa hình (Polymorphism). – Đóng gói (Encapsulation). Thừa kế: Cho phép các…

Cách đổi icon của ứng dụng console trong C++

Cách đổi icon của ứng dụng console trong C++

Làm thế nào để đổi icon của file .exe sau khi build xong chương trình? Bài viết này sẽ hướng dẫn các bạn cách thêm icon cho chương trình trong C++… Như tiêu đề để thay đổi icon mặc định Console (CMD) của Project (nhớ…

[Java cơ bản] Bài 9: Các kiểu dữ liệu trong Java

[Java cơ bản] Bài 9: Các kiểu dữ liệu trong Java

Các kiểu dữ liêu cơ bản trong java gồm: byte: Dùng để lưu kiểu dữ liệu số nguyên có kích thước là 1byte (8 bit). Phạm vi biểu diễn từ -128 đến 127 giá trị mặc định là 0. char: Dùng để lưu kiểu dữ…

Bình luận ()