C++コードを実行します。


本論文の実例はC++を共有しました。具体的なコードは以下の通りです。
1.ゲームの説明
蛇を食べることに貪欲なのは小さい時から大きな経典趣味のミニゲームです。蛇は一回の食べ物を食べると、体が会長になります。もし壁にぶつかったら、あるいは自分にぶつかったら、ゲームは終わります。
2.コード実現
1.まず考えなければならない問題は位置出力文字をどう指定しますか?この時点で非常に強力な関数はgotoxy()と呼ばれていますが、現在はライブラリ関数の中にはもうなくなりました。私達自身でしか実現できません。コードの中の注釈は完全で、自分で読めばいいです。
2.どこを目指しているのかを実現したら、ゲームの内容作りを開始できます。まず、土地を囲むことです。つまり地図を描くことです。簡単な循環で手配できるのは明らかです。
3.偉大なリング運動が終わりました。次は蛇を描くことを実現します。私達はdeque双端行列を使って、この操作がもっと便利です。蛇を描いたら食べ物を描いてくれます。食べ物の位置座標はランダムで数えて実現します。簡単ですよね。
4.蛇を動かす。私たちは蛇を上に進めるのを黙認しています。つまり、「w」の方向です。その後はボタンの応答です。これは文法さえわかれば、白は全部実現できます。多くは言いません。
5.食いしん坊蛇の骨組みはこのように組み立てられています。soeasuyですか?
3.飾り部分
走ることができるだけではもちろん、私達の日増しに増加する精神的な需要を満たすことができません。次のコードには点数、等級だけが入っています。他のものは全部プラスしていません。新米のために、早く上手になります。

話は多くなくて、コードをつけます!

#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <deque>
#include <ctime>
#pragma warning(disable:4996)
using namespace std;
HANDLE hOut;
COORD pos;

//1.  gotoxy  
void gotoxy(short x, short y)
{
 hOut = GetStdHandle(STD_OUTPUT_HANDLE); //    
 pos = { x, y };
 SetConsoleCursorPosition(hOut, pos);  //         
}
void HideCursor() //    
{
 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
 CONSOLE_CURSOR_INFO CursorInfo;
 GetConsoleCursorInfo(handle, &CursorInfo);//         
 CursorInfo.bVisible = false;    //       
 SetConsoleCursorInfo(handle, &CursorInfo);//         
}

//2.     
struct Snake
{
 char body;
 short position_x, position_y;    //    
};

//3.     
class Game
{
private:
 char image;
 enum mapSize { width = 60, height = 30 }; //    
 deque<Snake> snake;      //      ,     
 int score = 0;        //    
 char hit = 'w';       //    
 bool eat_Food = false;      //      
 short food_x, food_y;      //    
 int speed = 400;       //    
 bool snake_state = true;     //    
 int level = 1;        //    
public:
 Game();
 void draw_Frame()  //   
 {
 for (int i = 0; i < height; i++)
 {
 gotoxy(0, i);
 cout << "■";
 gotoxy(width, i);
 cout << "■";
 }
 for (int i = 0; i <= width; i += 2) //■            ,   +2
 {
 gotoxy(i, 0);
 cout << "■";
 gotoxy(i, height);
 cout << "■";
 }
 }
 void init_snake()  //    
 {
 snake.push_back({ '#', width / 2, static_cast<short>(height / 2) }); //    
 for (int i = 0; i < 3; i++) //        ,   
 snake.push_back({ char('o'), width / 2, static_cast<short>((height / 2) + 1 + i) });
 snake.push_back({ ' ', width / 2, static_cast<short>((height / 2) + 4) }); //    ,   ,            
 }
 void draw_Snake() //  
 {
 for (int k = 0; k < snake.size(); k++)
 {
 gotoxy(snake[k].position_x, snake[k].position_y);
 cout << snake[k].body;
 }
 }
 void clear_Tail() //    ,         ,    
 {
 int k = snake.size() - 1;
 gotoxy(snake[k].position_x, snake[k].position_y);
 cout << " "; //      (   ),             
 }
 void draw_Food() //   
 {
 while (1)
 {
 food_x = rand() % (width - 4) + 2; //       ,        ,      x           +2, -4      
 food_y = rand() % (height - 2) + 1; //    
 if (wrong_Location() && food_x % 2 == 0)
 break;
 }
 gotoxy(food_x, food_y);
 cout << "O";
 }
 bool wrong_Location() //           
 {
 for (auto i : snake) //c++11        
 {
 if (food_x == i.position_x && food_y == i.position_y) //            
 return 0;
 }
 return 1;
 }
 void judge_eatFood() //        
 {
 if (food_x == snake[0].position_x && food_y == snake[0].position_y)
 eat_Food = true;
 }
 void judge_state() //           
 {
 if (snake.size() >= 2) 
 {
 deque<Snake>::iterator iter = snake.begin() + 1; //     snake      (   )  iter 
 int x = (iter - 1)->position_x, y = (iter - 1)->position_y;
 for (; iter != snake.end(); ++iter) 
 {
 if (iter->position_x == x && iter->position_y == y) //       
  snake_state = false;
 }
 }
 if(snake[0].position_x == 1 ||
 snake[0].position_x == 59 ||
 snake[0].position_y == 0 ||
 snake[0].position_y == 30) //       
 snake_state = false;
 }
 void key_Down() //    
 {
 char key = hit;
 if (_kbhit()) //    
 hit = _getch(); 
 for (int i = snake.size() - 1; i > 0; i--) //      ,     ,                 
 {
 snake[i].position_x = snake[i - 1].position_x;
 snake[i].position_y = snake[i - 1].position_y;
 }
 if ((hit == 'a' || hit == 'A') && hit != 'd')
 {
 hit = 'a'; snake[0].position_x--;
 }
 else if ((hit == 'd' || hit == 'D') && hit != 'a')
 {
 hit = 'd'; snake[0].position_x++;
 }
 else if ((hit == 'w' || hit == 'W') && hit != 's')
 {
 hit = 'w'; snake[0].position_y--;
 }
 else if ((hit == 's' || hit == 'S') && hit != 'w')
 {
 hit = 's'; snake[0].position_y++;
 }
 }
 void show()
 {
 gotoxy(65, 0);
 cout << "     :";
 gotoxy(71, 1);
 cout << score;
 gotoxy(69, 2);
 cout << "  :" << level;
 }
};
Game::Game()
{
 HideCursor();
 srand(static_cast<unsigned int>(time(NULL))); //     
 init_snake();
 draw_Food();
 Snake tail; //  
 while (1)
 {
 draw_Frame();
 tail = snake.back();
 if (eat_Food)
 {
 snake.back().body = 'o'; //            o,           
 snake.push_back(tail); //       ,      
 gotoxy(food_x, food_y);
 cout << " "; //              ,       ,      
 draw_Food();
 score++;
 if (score % 5 == 0)
 {
 speed *= 0.8;
 level++;
 }
 eat_Food = false;
 }
 if (level == 10)
 break;
 key_Down();
 draw_Snake();
 judge_state();
 if (!snake_state)
 break;
 judge_eatFood(); 
 Sleep(speed);
 clear_Tail();
 show();
 }
}
int main()
{
 system("mode con cols=100 lines=40"); //        
 system("color 7C"); //         
 system("title     v1.0");       
 Game game;
 gotoxy(0, 32);
 cout << "Game over!" << endl;
}
今期の教程はここで終わります。
もっと面白い経典ミニゲームはテーマを実現して、みんなに共有します。
C++クラシックミニゲームまとめ
pythonクラシックミニゲームまとめ
pythonテトリスゲーム集合
JavaScript経典ゲームは遊んで止まらないです。
java経典の小さいゲームのまとめ
javascript経典ミニゲームのまとめ
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。