Table des matières
回复讨论(解决方案)
Maison interface Web tutoriel HTML html制作迷宫_html/css_WEB-ITnose

html制作迷宫_html/css_WEB-ITnose

Jun 24, 2016 am 11:39 AM

大神求帮助 如何用HTML制作出如图的迷宫


回复讨论(解决方案)

方法很多,canvas、svg画图,也可以用表格、div去掉一部分的边框(不过这种CSS要写的很多)。

我走出来了

具体 用表格和div怎么做,用css怎么去掉边框

你是要用于展示还是想在网页上做一个迷宫出来,让人能走?
前者的话,把图片贴上去就行了。
后者的话,用canvas+JS做。

<!doctype html><html lang="en"><head>	<meta charset="UTF-8">	<title> 页面名称 </title><style type="text/css">#map {	width: 124px;	height: 124px;}#map div {	width: 30px;	height: 30px;	float: left;	border: 1px solid transparent;	margin: 0px -1px -1px 0px;}#map .l {border-left: 1px solid #000;}#map .r {border-right: 1px solid #000;}#map .t {border-top: 1px solid #000;}#map .b {border-bottom: 1px solid #000;}</style></head><body><div id="map">	<div class="l t"></div>	<div class="l"></div>	<div class="t"></div>	<div class="t r"></div>	<div class="l"></div>	<div class="t"></div>	<div class="t l"></div>	<div class="r"></div>	<div class="l"></div>	<div class="t"></div>	<div class=""></div>	<div class="l t r"></div>	<div class="l t b"></div>	<div class="b"></div>	<div class="t b"></div>	<div class="r b"></div></div>	</body></html>
Copier après la connexion

Jsoup
Document doc1 = Jsoup.connect("http://www.paperyy.com/").get();

以下是一个 perfect 型迷宫的生成代码, 在边缘任取两处分别作为入口和出口即可



<!DOCTYPE html><html>    <head>        <style>            #myCanvas{                border:1px solid #d3d3d3;            }        </style>    </head>    <body>        <canvas id="myCanvas" width=800 height=600 >            Your browser does not support the HTML5 canvas tag.        </canvas>    </body></html><script>    var canv = document.getElementById("myCanvas");    var cell_width = cell_height = 10;    var edge_blank = cell_width;    var clear_width = cell_width * 2 - 2;    var clear_height = cell_height * 2 - 2;    // 最大逻辑坐标, 坐标起始于 0, 终于 xe, ye    var xe = Math.floor(canv.width / cell_width - 2);    var ye = Math.floor(canv.height / cell_height - 2);    var ctx = canv.getContext("2d");    ctx.beginPath();    var x_end = edge_blank + (xe - 1) * cell_width;    y_end = edge_blank + (ye - 1) * cell_height;    for (var y = edge_blank + cell_height; y <= y_end; y += 2 * cell_height) {        ctx.moveTo(edge_blank + cell_width, y);        ctx.lineTo(x_end, y);    }    for (var x = edge_blank + cell_width; x <= x_end; x += 2 * cell_width) {        ctx.moveTo(x, edge_blank + cell_height);        ctx.lineTo(x, y_end);    }    ctx.strokeStyle = "black";    ctx.stroke();    var maze = Array(xe + 1);    for (var i = 0; i <= xe; i++) {        maze[i] = Array(ye + 1);        for (var j = 0; j <= ye; j++) {            maze[i][j] = {road: false, gen: false};        }    }    var dirs = [], cells = [];    var x = y = 2;    var item_last, dir, visit, randS, randE, dc;    while (true) {        if (maze[x][y].gen) {            if (dirs[dirs.length - 1] == 0xf) {                dirs.pop();                cells.pop();                if (cells.length == 0) {                    // alert('Maze generation completed');                    break;                }                item_last = cells[cells.length - 1];                x = item_last.x;                y = item_last.y;            } else {                item_last = cells[cells.length - 1];                x = item_last.x;                y = item_last.y;                dir = dirs[dirs.length - 1];                visit = 1;                randS = Math.round(Math.random() * 3);                randE = randS | 4;                for (var i = randS; i < randE; i++) {                    if (visit != 0) {                        dc = 1 << (i & 3);                        visit = dir & dc;                        dir |= dc;                        if (visit == 0) {                            switch (dc) {                                case 1:                                    y -= 2;                                    break;                                case 2:                                    x -= 2;                                    break;                                case 4:                                    x += 2;                                    break;                                case 8:                                    y += 2;                                    break;                            }                            dirs[dirs.length - 1] = dir; // dirs.pop(); dirs.push(dir);                        }                    }                }            }        } else { // 可通行点            if (!(0 < x && x < xe && 0 < y && y < ye)) {                item_last = cells[cells.length - 1];                x = item_last.x;                y = item_last.y;            } else {                cells.push({x: x, y: y});                maze[x][y].gen = true;                for (var i = 0; i < 2; i++) {                    maze[x][y].road = true;                    ctx.clearRect(edge_blank + (x - 1) * cell_width + 1, edge_blank + (y - 1) * cell_height + 1, clear_width, clear_height);                    switch (dc) {                        case 1:                            y += 1;                            break;                        case 2:                            x += 1;                            break;                        case 4:                            x -= 1;                            break;                        case 8:                            y -= 1;                            break;                    }                }                switch (dc) {                    case 1:                        y -= 2;                        break;                    case 2:                        x -= 2;                        break;                    case 4:                        x += 2;                        break;                    case 8:                        y += 2;                        break;                }                dc = 1 << Math.round(Math.random() * 3);                dirs.push(dc);                switch (dc) {                    case 1:                        y -= 2;                        break;                    case 2:                        x -= 2;                        break;                    case 4:                        x += 2;                        break;                    case 8:                        y += 2;                        break;                }            }        }    }</script>
Copier après la connexion

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel est le but du & lt; Progress & gt; élément? Quel est le but du & lt; Progress & gt; élément? Mar 21, 2025 pm 12:34 PM

L'article traite du HTML & lt; Progress & GT; élément, son but, son style et ses différences par rapport au & lt; mètre & gt; élément. L'objectif principal est de l'utiliser & lt; Progress & gt; pour l'achèvement des tâches et & lt; mètre & gt; pour stati

Quel est le but du & lt; datalist & gt; élément? Quel est le but du & lt; datalist & gt; élément? Mar 21, 2025 pm 12:33 PM

L'article traite du HTML & lt; Datalist & GT; élément, qui améliore les formulaires en fournissant des suggestions de saisie semi-automatique, en améliorant l'expérience utilisateur et en réduisant les erreurs. COMMANDE COMPRES: 159

Quel est le but du & lt; mètre & gt; élément? Quel est le but du & lt; mètre & gt; élément? Mar 21, 2025 pm 12:35 PM

L'article traite du HTML & lt; mètre & gt; élément, utilisé pour afficher des valeurs scalaires ou fractionnaires dans une plage, et ses applications courantes dans le développement Web. Il différencie & lt; mètre & gt; De & lt; Progress & gt; et ex

Quelle est la balise Meta de la fenêtre? Pourquoi est-ce important pour une conception réactive? Quelle est la balise Meta de la fenêtre? Pourquoi est-ce important pour une conception réactive? Mar 20, 2025 pm 05:56 PM

L'article traite de la balise Meta de la fenêtre, essentielle pour la conception Web réactive sur les appareils mobiles. Il explique comment une utilisation appropriée garantit une mise à l'échelle optimale du contenu et une interaction utilisateur, tandis que la mauvaise utilisation peut entraîner des problèmes de conception et d'accessibilité.

HTML est-il facile à apprendre pour les débutants? HTML est-il facile à apprendre pour les débutants? Apr 07, 2025 am 12:11 AM

HTML convient aux débutants car il est simple et facile à apprendre et peut rapidement voir les résultats. 1) La courbe d'apprentissage de HTML est fluide et facile à démarrer. 2) Il suffit de maîtriser les balises de base pour commencer à créer des pages Web. 3) Flexibilité élevée et peut être utilisée en combinaison avec CSS et JavaScript. 4) Les ressources d'apprentissage riches et les outils modernes soutiennent le processus d'apprentissage.

Quel est le but du & lt; iframe & gt; étiqueter? Quelles sont les considérations de sécurité lorsque vous l'utilisez? Quel est le but du & lt; iframe & gt; étiqueter? Quelles sont les considérations de sécurité lorsque vous l'utilisez? Mar 20, 2025 pm 06:05 PM

L'article traite du & lt; iframe & gt; L'objectif de Tag dans l'intégration du contenu externe dans les pages Web, ses utilisations courantes, ses risques de sécurité et ses alternatives telles que les balises d'objet et les API.

Les rôles de HTML, CSS et JavaScript: responsabilités de base Les rôles de HTML, CSS et JavaScript: responsabilités de base Apr 08, 2025 pm 07:05 PM

HTML définit la structure Web, CSS est responsable du style et de la mise en page, et JavaScript donne une interaction dynamique. Les trois exercent leurs fonctions dans le développement Web et construisent conjointement un site Web coloré.

Quel est un exemple d'une balise de départ dans HTML? Quel est un exemple d'une balise de départ dans HTML? Apr 06, 2025 am 12:04 AM

Anexampleofastartingtaginhtmlis, qui abinginsaparagraph.startingtagsaressentialtinhtmlastheyinitiateelements, définit les éventualités, et la faculté de réduction des pages et de la construction de la création.

See all articles