[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"detail-sidebar-cat-1-en-105":3,"doc-seo-383819-105":53,"doc-detail-383819-en":127},{"code":4,"msg":5,"data":6},0,"success",[7,14,19,24,29,34,39,44,49],{"id":8,"doc_module":9,"doc_module_name":10,"category_name":11,"show_sort_weight":12,"slug":13},11,1,"Template","Presentations",90,"presentations",{"id":15,"doc_module":9,"doc_module_name":10,"category_name":16,"show_sort_weight":17,"slug":18},12,"Resumes",80,"resumes",{"id":20,"doc_module":9,"doc_module_name":10,"category_name":21,"show_sort_weight":22,"slug":23},14,"Invoices",70,"invoices",{"id":25,"doc_module":9,"doc_module_name":10,"category_name":26,"show_sort_weight":27,"slug":28},15,"Posters",60,"posters",{"id":30,"doc_module":9,"doc_module_name":10,"category_name":31,"show_sort_weight":32,"slug":33},16,"Social Media",50,"social-media",{"id":35,"doc_module":9,"doc_module_name":10,"category_name":36,"show_sort_weight":37,"slug":38},17,"Forms",40,"forms",{"id":40,"doc_module":9,"doc_module_name":10,"category_name":41,"show_sort_weight":42,"slug":43},18,"Letters",30,"letters",{"id":45,"doc_module":9,"doc_module_name":10,"category_name":46,"show_sort_weight":47,"slug":48},21,"Paper Templates",5,"papers-templates",{"id":50,"doc_module":9,"doc_module_name":10,"category_name":51,"show_sort_weight":4,"slug":52},158,"General","general-158",{"code":4,"msg":54,"data":55},"ok",{"site_id":56,"language":57,"slug":58,"title":59,"keywords":60,"description":61,"schema_data":62,"social_meta":120,"head_meta":122,"extra_data":124,"updated_unix":126},105,"en","cards-with-friends-a-generic-card-game-engine","Cards with Friends - A Generic Card Game Engine","","Networked and online gaming has expanded card-game communities, yet specific card variations often lack a fast way to be created and played online. This work presents Cards with Friends, a generic card game engine that exposes an API for implementing arbitrary games while providing core online-play functions such as passing, bidding, and receiving cards. The paper reviews prior generic engine efforts, describes the application creation flow and implementation tools, and discusses potential future extensions.",{"@graph":63,"@context":119},[64,80,102],{"@type":65,"itemListElement":66},"BreadcrumbList",[67,71,74,77],{"item":68,"name":69,"@type":70,"position":9},"https://docshare.wps.com","Home","ListItem",{"item":72,"name":10,"@type":70,"position":73},"https://docshare.wps.com/template/",2,{"item":75,"name":11,"@type":70,"position":76},"https://docshare.wps.com/template/presentations/",3,{"item":78,"name":59,"@type":70,"position":79},"https://docshare.wps.com/template/cards-with-friends-a-generic-card-game-engine/383819/",4,{"url":78,"name":59,"@type":81,"image":82,"author":87,"headline":59,"publisher":90,"fileFormat":93,"inLanguage":57,"description":61,"dateModified":94,"datePublished":95,"encodingFormat":93,"isAccessibleForFree":96,"interactionStatistic":97},"DigitalDocument",{"url":83,"@type":84,"width":85,"height":86},"https://docshare.wps.com/thumbnails/cards-with-friends-a-generic-card-game-engine/383819.png","ImageObject",442,249,{"name":88,"@type":89},"Kyle","Person",{"url":68,"name":91,"@type":92},"DocShare","Organization","application/pdf","2026-10-24","2026-09-24",true,{"@type":98,"interactionType":99,"userInteractionCount":101},"InteractionCounter",{"@type":100},"ViewAction",10,{"@type":103,"mainEntity":104},"FAQPage",[105,111,115],{"name":106,"@type":107,"acceptedAnswer":108},"What problem does Cards with Friends address?","Question",{"text":109,"@type":110},"It addresses the lack of a fast, easy way to create and play specific card-game variations online when the needed variation does not already exist online.","Answer",{"name":112,"@type":107,"acceptedAnswer":113},"How does the system enable users to implement card games?",{"text":114,"@type":110},"It provides an API that lets users write arbitrary card games while supplying essential online functions like passing cards, bidding, and playing and receiving cards.",{"name":116,"@type":107,"acceptedAnswer":117},"What does the paper cover after introducing the project?",{"text":118,"@type":110},"It discusses prior attempts at generic card game engines, outlines the creation flow and the implementation tools, and then describes possible future extensions.","https://schema.org",{"og:url":78,"og:type":121,"og:title":59,"og:site_name":91,"og:description":61},"article",{"robots":123,"canonical":78},"index,follow",{"doc_id":125,"site_id":56},383819,1791481176,{"code":4,"msg":5,"data":128},{"doc_id":125,"user_id":129,"nickname":88,"user_avatar":130,"doc_module":9,"category_id":8,"category_name":11,"doc_title":59,"doc_description":61,"doc_content":131,"file_id":132,"file_url":133,"file_type":134,"file_size":135,"view_count":101,"is_deleted":4,"is_public":9,"is_downloadable":9,"audit_status":9,"page_count":136,"language":137,"language_code":57,"site_id":56,"html_lang":57,"table_of_contents":138,"faqs":139,"seo_title":140,"seo_description":61,"update_tm":141,"read_time":76},3985741905716,"https://ap-avatar.wpscdn.com/davatar_994ba38a5ba835b3df7d355c54d3ed8d","Cards with Friends: A Generic Card Game Engine  \n􀀃  \nDavid Ding Dept. of Physics,  \nMathematics, and Astronomy [ding@caltech.edu](ding@caltech.edu)  \nTheresa Lee  \nDept. of Computing and Mathematical Sciences  \n[theresa@caltech.edu](theresa@caltech.edu)  \nMike Qian Dept. of Computing and Mathematical Sciences [mqian@caltech.edu](mqian@caltech.edu)  \nBenjamin Razon Dept. of Computing and Mathematical Sciences [brazon@caltech.edu](brazon@caltech.edu)  \nABSTRACT  \nIn recent years, networked and online gaming have become ubiquitous; in particular, card games like poker and hearts have 􀀍ourished and found dedicated communities online. However, any speci􀀌c card game will have countless variations that are popular within certain circles or regions, and if such a variation that someone wants to play does not exist online, there is currently no fast and easy way for someone to create it. We aim to solve this problem by creating the application Cards with Friends, a generic card game engine. In the application, we provide users an API that they can use to write arbitrary card games, with functions they can use that are necessary for online play (like passing cards, bidding, and playing and receiving cards) . This way, users would be able to implement a non-existing card game from scratch and play it online, or take the implementation of an existing game and make a minor tweak to it. In this paper, we discuss existing previous e􀀋orts for generic card game engines that did not succeed or persist over time. Then, we outline the 􀀍ow of the creation of the application, as well as the tools we used in our implementation. Finally, we go into extensions of the application that we may create in the future.  \nCategories and Subject Descriptors  \nD.2.13 [Software Engineering]: Reusable Software|reusable libraries ; K.8.0 [Personal Computing]: General|games ; K.8.1 [Personal Computing]: Application Packages|freeware/shareware  \nKeywords  \n􀀃 All group members attend the California Institute of Technology and are pursuing a Bachelor of Science in Computer Science.  \nAlexander Wein  \nDept. of Physics, Mathematics, and Astronomy  \n[awein@caltech.edu](awein@caltech.edu)  \nGeneric game playing, card games, AI, Flask, Socket.IO, Gevent, Heroku  \n1. INTRODUCTION  \nThe concept of networked games has been around for a very long time. Back in 1975, people were already playing multiplayer videogames over a network such as STAR, OCEAN, and CAVE. Card games were also popularized on the computer and were easily extended to a multiplayer network format. These games can be played both from standalone applications (e.g. Internet Spades, which is bundled with the Windows operating system) and within the browser (e.g. card games available on Yahoo's website) . Most of the popular card games can be played online in a variety of websites or standalone applications. However, there does not appear tobe a single leading site in online card games, leading to both fragmentation in user base and a need for multiple systems to access all the games the users want. This fragmentation is evident in the dozens of websites providing multiplayer card games, not to mention the numerous standalone applications for speci􀀌c games.  \nThe di􀀎culty in having a single platform for all card games largely stems from the vast number of card games. There are hundreds of di􀀋erent card games, each with many variations. Therefore, as a developer it is practically impossible to manually support all the potential games and variations on your own. However, as crowdsourcing has become more popular, it may be possible to crowdsource the rules implementation to players interested in speci􀀌c games. This system is very attractive for supporting small variations on popular games since making small changes to existing rules should be quite simple and not time-consuming. Supporting completely new games may be di􀀎cult as programmatically entering all the rules to a card game might be too complicated for many ","cbCaida68qPB2p9u","https://ap.wps.com/l/cbCaida68qPB2p9u","pdf",259837,9,"English","# Abstract\n# Categories and Subject Descriptors\n# Keywords\n# 1. Introduction","[{\"question\":\"What problem does Cards with Friends address?\",\"answer\":\"It addresses the lack of a fast, easy way to create and play specific card-game variations online when the needed variation does not already exist online.\"},{\"question\":\"How does the system enable users to implement card games?\",\"answer\":\"It provides an API that lets users write arbitrary card games while supplying essential online functions like passing cards, bidding, and playing and receiving cards.\"},{\"question\":\"What does the paper cover after introducing the project?\",\"answer\":\"It discusses prior attempts at generic card game engines, outlines the creation flow and the implementation tools, and then describes possible future extensions.\"}]","Cards with Friends - A Generic Card Game Engine | PDF",1790259421]