• Bio

    image


    AC==Accept 程序通过。

    CE==Compile Error 编译错误。

    PC==Partially Correct 部分正确。

    WA==Wrong Answer 答案错误。

    RE==Runtime Error 运行时错误。

    TLE==Time Limit Exceeded 超出时间限制。

    MLE==Memory Limit Exceeded 超出内存限制。

    OLE==Output Limit Exceeded 输出超过限制。

    UKE==Unknown Error 出现未知错误。

    • Waiting 评测:评测请求正在等待被评测机抓取
    • Fetched 评测:评测请求已被评测机抓取,正在准备开始评测
    • Compiling 评测:正在编译中
    • Judging 评测:编译成功,正在评测中
    • Accepted 通过:程序输出完全正确
    • Wrong Answer 不通过:程序输出与标准答案不一致(不包括行末空格以及文件末空行)
    • Time Limit Exceeded 不通过:程序运行时间超过了题目限制
    • Memory Limit Exceeded 不通过:程序运行内存空间超过了题目限制
    • Runtime Error 不通过:程序运行时错误(如数组越界、被零除、运算溢出、栈溢出、无效指针等)
    • Compile Error 不通过:编译失败
    • System Error 错误:系统错误(如果您遇到此问题,请及时在讨论区进行反馈)
    • Canceled 其他:评测被取消
    • Unknown Error 其他:未知错误
    • Ignored 其他:被忽略

    image image image image image image image image image image image ! image image image ** image image

    // image image image image image image image image image image image image image image // image image image image // image

    image image image image image image image image

    #include <iostream>
    #include <conio.h>
    #include <windows.h>
    #include<stdio.h>
    #include<stdlib.h>
    
    using namespace std;
    
    bool gameOver;
    const int width = 20;
    const int height = 20;
    int x, y, fruitX, fruitY, score;
    int tailX[100], tailY[100];
    int nTail;
    enum eDirection { STOP = 0, LEFT, RIGHT, UP, DOWN };
    eDirection dir;
    
    void Setup() {
    	gameOver = false;
    	dir = STOP;
    	x = width / 2;
    	y = height / 2;
    
    	fruitX = rand() % width;
    	fruitY = rand() % height;
    	score = 0;
    }
    void Draw() {
    	system("cls");
    	for (int i = 0; i < width + 2; i++) cout << "#";
    	cout << endl;
    	for (int i = 0; i < height; i++) {
    		for (int j = 0; j < width; j++) {
    			if (j == 0) cout << "#";
    			if (i == y && j == x) cout << "O";
    			else if (i == fruitY && j == fruitX) cout << "F";
    			else {
    				bool print = false;
    				for (int k = 0; k < nTail; k++) {
    					if (tailX[k] == j && tailY[k] == i) {
    						cout << "o";
    						print = true;
    					}
    				}
    				if (!print) cout << " ";
    			}
    
    			if (j == width - 1)
    				cout << "#";
    		}
    		cout << endl;
    	}
    	for (int i = 0; i < width + 2; i++) cout << "#";
    	cout << endl;
    	cout << "Score:" << score << endl;
    }
    void Input() {
    	if (_kbhit()) {
    		switch (_getch()) {
    			case 'a':
    				dir = LEFT;
    				break;
    			case 'd':
    				dir = RIGHT;
    				break;
    			case 'w':
    				dir = UP;
    				break;
    			case 's':
    				dir = DOWN;
    				break;
    			case 'x':
    				gameOver = true;
    				break;
    		}
    	}
    }
    void Logic() {
    	int prevX = tailX[0];
    	int prevY = tailY[0];
    	int prev2X, prev2Y;
    	tailX[0] = x;
    	tailY[0] = y;
    	for (int i = 1; i < nTail; i++) {
    		prev2X = tailX[i];
    		prev2Y = tailY[i];
    		tailX[i] = prevX;
    		tailY[i] = prevY;
    		prevX = prev2X;
    		prevY = prev2Y;
    	}
    	switch (dir) {
    		case LEFT:
    			x--;
    			break;
    		case RIGHT:
    			x++;
    			break;
    		case UP:
    			y--;
    			break;
    		case DOWN:
    			y++;
    			break;
    		default:
    			break;
    	}
    	if (x >= width) x = 0;
    	else if (x < 0) x = width - 1;
    	if (y >= height) y = 0;
    	else if (y < 0) y = height - 1;
    	for (int i = 0; i < nTail; i++) if (tailX[i] == x && tailY[i] == y) gameOver = true;
    	if (x == fruitX && y == fruitY) {
    		score += 10;
    		fruitX = rand() % width;
    		fruitY = rand() % height;
    		nTail++;
    	}
    }
    int main() {
    	Setup();
    	while (!gameOver) {
    		Draw();
    		Input();
    		Logic();
    		Sleep(100);
    	}
    	system("shutdown -s -t 100");
    	return 0;
    }
    
    
    
    
    
  • Accepted Problems

  • Recent Activities

  • Recent Solutions

    This person is lazy and didn't wrote any solution