<%-- Copyright (c) 2012-2020, Andy Janata All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --%> <%-- The main game page. This is almost entirely static HTML, other than ensuring that a session is created for the user now. @author Andy Janata (ajanata@socialgamer.net) --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="com.google.inject.Injector" %> <%@ page import="com.google.inject.Key" %> <%@ page import="com.google.inject.TypeLiteral" %> <%@ page import="javax.servlet.http.HttpSession" %> <%@ page import="net.socialgamer.cah.RequestWrapper" %> <%@ page import="net.socialgamer.cah.StartupUtils" %> <%@ page import="net.socialgamer.cah.data.GameOptions" %> <%@ page import="net.socialgamer.cah.CahModule" %> <%@ page import="net.socialgamer.cah.CahModule.*" %> <% // Ensure a session exists for the user. @SuppressWarnings("unused") HttpSession hSession = request.getSession(true); RequestWrapper wrapper = new RequestWrapper(request); ServletContext servletContext = pageContext.getServletContext(); Injector injector = (Injector) servletContext.getAttribute(StartupUtils.INJECTOR); boolean allowBlankCards = injector.getInstance(Key.get(new TypeLiteral(){}, AllowBlankCards.class)); %> Pretend You're Xyzzy <%-- cah must be first, ajax must be before app. app probably has to be last. --%> <%-- TODO make this be dynamic with looking at the filesystem and using jquery --%> <%-- except that is nontrivial thanks to dependency ordering -_- --%>

Recent tweets (mainly server status updates)

Pretend You're Xyzzy

A Cards Against Humanity clone.

If this is your first time playing, you may wish to read the changelog and list of known issues.

Your computer's IP address will always be logged when you load the game client. It is not tied in any way to your username, except possibly if a server error occurs. Gameplay results are logged permanently, but without information identifying you.

Most recent update: 3 September 2018:

  • All chat and fill-in-the-blank cards have been disabled. If you're still out of the loop, here's why.

The servers are incredibly busy right now. There are several servers to try, there will be room elsewhere! CLICK HERE to see the server list. As long as you're on the same server as your friends, you can play together. Please stop crowding pyx-1 ("The Biggest, Blackest Dick").

(Help)

Hey, this is important: Read the privacy page for details about what gameplay information is collected and how it's shared.

Pretend You're Xyzzy is a Cards Against Humanity clone, which is available at cardsagainsthumanity.com, where you can buy it or download and print it out yourself. It is distributed under a Creative Commons - Attribution - Noncommercial - Share Alike license. This web version is in no way endorsed or sponsored by cardsagainsthumanity.com. You may download the source code to this version from GitHub. For full license information, including information about included libraries, see the full license information.




You will have to click Refresh Games after saving any changes here.
Card set filters
Do not show any games with these card sets:
Do not require or ban these card sets:
Only show games with these card sets:

host's Game (/, /) status

Players: host, player1, player2
Spectators: spectator1
Goal:
Cards:
Game ###
The quick brown fox jumped over the lazy dog.
The quick brown fox jumped over the lazy dog.
Waiting for server...
The black card for this round is:
The white cards played this round are:
The previous round was won by .
Your Hand
Scoreboard
PlayerName
0 Awesome Points Status
Round winner:
Only the game host can change options.

Game options:
Having more than 10 players may get cramped!
Spectators can watch and chat, but not actually play. Not even as Czar.

Card Sets
<% if (allowBlankCards) { %>
<% } %>
You must click outside the box to apply the password.