求试玩自创蒟蒻游戏(违规紫衫)
  • 板块灌水区
  • 楼主Kuroba_kaito
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/7 18:37
  • 上次更新2023/11/7 18:40:09
查看原帖
求试玩自创蒟蒻游戏(违规紫衫)
848868
Kuroba_kaito楼主2023/11/7 18:37

rt 求意见QAQ

#include <bits/stdc++.h>
#include <windows.h>
#include <ctime>
#include <conio.h>
#include <cstdlib>
#define maxn 20
using namespace std ;
char Map[maxn + 100][maxn + 100] ;
void print () {
   for ( int i = 1 ; i <= maxn ; i ++, puts ( "" ) )
   	for ( int j = 1 ; j <= maxn ; j ++ )
   		printf ( "%c ", Map[i][j] ) ;
}
int main () {
   puts ( "欢迎来到沙盒游戏 'C++的世界' " ) ;
   puts ( "游戏简绍:" ) ;
   puts ( "你可以随意创造地形在这个地图中\n比如建造障碍物就可以按 1 然后再选择一个方向建造 (WASD)\n移动就是WASD\n毁坏物体可以按 2 然后再选择一个方向毁坏 (WASD)\n剩下的功能一会还会更新哟 ") ;
   puts ( "墙面用字符 & 来表示, 人物用字符 @ 来表示, 地面用 . 表示 " ) ;
   puts ( "输入 OK 开始游戏 : " ) ;
   string input ; cin >> input ;
   if ( input == "OK" ) {
   	system ( "CLS" ) ;
   	memset ( Map, '.', sizeof Map ) ;
   	for ( int i = 1 ; i <= maxn ; i ++ ) Map[i][1] = Map[1][i] = Map[maxn][i] = Map[i][maxn] = '#' ;
   	int x = 2, y = 2 ;
   	Map[x][y] = '@' ;
   	print () ;
   	while ( 1 ) {
   		if ( kbhit () ) {
   			char ch = getch () ;
   			if ( ch == 'W' && Map[x - 1][y] == '.' ) Map[x][y] = '.', Map[-- x][y] = '@' ;
   			else if ( ch == 'A' && Map[x][y - 1] == '.' ) Map[x][y] = '.', Map[x][-- y] = '@' ;
   			else if ( ch == 'S' && Map[x + 1][y] == '.' ) Map[x][y] = '.', Map[++ x][y] = '@' ;
   			else if ( ch == 'D' && Map[x][1 + y] == '.' ) Map[x][y] = '.', Map[x][++ y] = '@' ;
   			
   			if ( ch == '1' ) {
   				ch = getch () ;
   				if ( ch == 'W' && Map[x - 1][y] == '.' ) Map[x - 1][y] = '&' ;
   				else if ( ch == 'S' && Map[x + 1][y] == '.' ) Map[x + 1][y] = '&' ;
   				else if ( ch == 'A' && Map[x][y - 1] == '.' ) Map[x][y - 1] = '&' ;
   				else if ( ch == 'D' && Map[x][1 + y] == '.' ) Map[x][y + 1] = '&' ; 
   			}
   			
   			if ( ch == '2' ) {
   				ch = getch () ;
   				if ( ch == 'W' && Map[x - 1][y] == '&' ) Map[x - 1][y] = '.' ;
   				else if ( ch == 'S' && Map[x + 1][y] == '&' ) Map[x + 1][y] = '.' ;
   				else if ( ch == 'A' && Map[x][y - 1] == '&' ) Map[x][y - 1] = '.' ;
   				else if ( ch == 'D' && Map[x][1 + y] == '&' ) Map[x][y + 1] = '.' ; 
   			}
   			system ( "CLS" ) ;
   			print () ;
   		}
   	}
   } else puts ( "我相信你按错了doge" ) ;
   return 0 ;
}
2023/11/7 18:37
加载中...