本文介绍技术2面web方向的题目和相关要求,括号后面为难度系数。如果没有前端三件套(html,css,js)的基础,请一定一定尽量不要选1.0以上的题目,尤其2048和弑君者需要你读懂我们已经提供的代码并实现相关功能

1.设计简易注册登录界面(0.8-1.0)

主要实现2个html文件,login.html和register.html。另外还有一个空的index.html用来作为登陆成功的跳转

基本要求:

  • login.html实现账号密码的输入框,登录和注册按钮,登录成功和失败提示(包括未输入用户名密码和不存在该用户或密码错误)
  • 登陆成功需要跳转到index.html
  • register.html实现账号密码确认密码的输入框,注册按钮,成功和失败的提示
  • login和register输入的用户名密码都要经过一定处理确认满足一定条件后(比如两次密码相同)在发送请求。具体要求见黑马程序员的api接口文档注册账号 - AJAX阶段 (apifox.cn)
  • 接口使用注册账号 - AJAX阶段 (apifox.cn)登录 - AJAX阶段 (apifox.cn)即可,有能力者可以自己写后端接口,算加分项

加分项:

  • 页面设计美观,动画流畅
  • 能够自己写出后端实现(使用nodejs/python/java/go都可以)
  • 使用token和浏览器缓存实现自动登录
  • 考虑用户密码的安全性,使用加密算法对网络传输的数据进行保护(例如http请求被截获,别人获取到的用户输入的原始账号密码然后拿去登录其他网站,qq,微信等)

示例

2.实现2048小游戏的排行榜(1.0-1.2)

我们提供一段2048的源代码,其自身带有排行榜功能是基于浏览器的缓存来实现的,只能看到自己以前的最高分。但我想能看到别人的分数,别人也能看到我的分数。

所以我希望你能够将其改成用http请求从服务器获取排行榜并显示(显示方法自己随意);同时在游戏结束的时候让用户输入名字(提示可以使用js的prompt()),并将结果(名称和分数)上传服务器。下面是一个示例

我们已经提供了api接口,如下:

url: https://chainpray.top:8002/2048
method: "GET"
响应:以换行符隔开的JSON字符串(详细格式点开url查看)
url: https://chainpray.top:8002/2048
method: "POST"
data:{name: XXX ,score:XXX}的JSON字符串。例如{"name": "chainpray","score":"666"}

要求

  • 实现排行榜功能,从服务器获取name和score数据
  • 实现游戏结束时的获取用户昵称和上报分数的功能

加分项

当然,更进一步的话你也可以使用nodejs+sqlite来实现简单的本地数据库服务和2048通讯而不采用我们提供的api

Tips:

application.js是js程序入口,上传分数的程序适合写在html_actuator.js的某个代码块中

3.实现简易的扑克牌类小游戏(1.4+)

规则介绍:弑君者扑克桌游规则 – SZU_TIC

联机版demo:弑君者游戏 (chainpray.top)

你需要完成一个单机版弑君者,并且我们已经实现了两个js文件

  • obj.js实现了扑克牌类,牌堆类,敌人类的封装
  • function.js实现了回合事件,卡牌效果等方法

要求

  • 写一个game.js的游戏主入口,并将三个js文件按顺序(obj->function->game)导入html中,实现弑君者扑克桌游级基本功能
  • 功能不要求和博客的规则一模一样,实现80%的功能就可以
  • css可能也需要写一点

Tips:

  • 弑君者相关的大量游戏逻辑我已经在function.js中了,game.js要写的东西大概只有40行欧(doge
  • 当然你也可以不写弑君者,其他扑克桌游也是完全可以的,只不过是弑君者有单人模式写起来容易、如果你知道或者可以创造一种单人扑克桌游,也欢迎实现(包上大分的,写完可以直接内定了)
深圳大学腾讯创新俱乐部的一名TICer,目前致力于成为全栈工程师
最后更新于 2024-09-10