<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%8D%B0%EB%B8%94%EC%8A%A4%EC%BA%A0%ED%94%842005%2F%EA%B8%88%EC%9A%94%EC%9D%BC%2FOneCard</id>
	<title>데블스캠프2005/금요일/OneCard - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%8D%B0%EB%B8%94%EC%8A%A4%EC%BA%A0%ED%94%842005%2F%EA%B8%88%EC%9A%94%EC%9D%BC%2FOneCard"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%8D%B0%EB%B8%94%EC%8A%A4%EC%BA%A0%ED%94%842005/%EA%B8%88%EC%9A%94%EC%9D%BC/OneCard&amp;action=history"/>
	<updated>2026-05-16T17:24:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EB%8D%B0%EB%B8%94%EC%8A%A4%EC%BA%A0%ED%94%842005/%EA%B8%88%EC%9A%94%EC%9D%BC/OneCard&amp;diff=46115&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%8D%B0%EB%B8%94%EC%8A%A4%EC%BA%A0%ED%94%842005/%EA%B8%88%EC%9A%94%EC%9D%BC/OneCard&amp;diff=46115&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; # -*- coding: UTF-8 -*-&lt;br /&gt;
 &lt;br /&gt;
 import random&lt;br /&gt;
 &lt;br /&gt;
 class Card:&lt;br /&gt;
 	def __init__(self, shape=None, number=None):&lt;br /&gt;
 		self.shape = shape&lt;br /&gt;
 		self.number = number&lt;br /&gt;
 	def __str__(self):&lt;br /&gt;
 		s = &amp;#039;%s %s&amp;#039; % (self.shape, self.number)&lt;br /&gt;
 		return s&lt;br /&gt;
 &lt;br /&gt;
 def shuffleCards():&lt;br /&gt;
 	cards = []&lt;br /&gt;
 	cardsNums = range(2,11) + [&amp;#039;J&amp;#039;, &amp;#039;Q&amp;#039;, &amp;#039;K&amp;#039;, &amp;#039;Q&amp;#039;, &amp;#039;A&amp;#039;]&lt;br /&gt;
 	cardShapes = [&amp;#039;◆&amp;#039;,&amp;#039;♠&amp;#039;,&amp;#039;♣&amp;#039;,&amp;#039;♥&amp;#039;]&lt;br /&gt;
 &lt;br /&gt;
 	for number in cardsNums:&lt;br /&gt;
 		for shape in cardShapes:&lt;br /&gt;
 			cards.append(Card(shape, number))&lt;br /&gt;
 	&lt;br /&gt;
 	random.shuffle(cards)&lt;br /&gt;
 	return cards&lt;br /&gt;
 &lt;br /&gt;
 def printCardDeck(pcCards, myCards, cardOnTable):&lt;br /&gt;
 	jobs = [pcCards, [cardOnTable], myCards]&lt;br /&gt;
 &lt;br /&gt;
 	for job in jobs:&lt;br /&gt;
 		if job != None:&lt;br /&gt;
 			printDeck(job)&lt;br /&gt;
 &lt;br /&gt;
 def printDeck(cards):&lt;br /&gt;
 	leftUp = &amp;#039;┌&amp;#039;&lt;br /&gt;
 	post = &amp;#039;│&amp;#039;&lt;br /&gt;
 	rightUp = &amp;#039;┐&amp;#039;&lt;br /&gt;
 	leftDown = &amp;#039;└&amp;#039;&lt;br /&gt;
 	rightDown = &amp;#039;┘&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 	crossBar = &amp;#039;─&amp;#039;*len(cards)*3&lt;br /&gt;
 	allCards = &amp;#039;&amp;#039;&lt;br /&gt;
 	&lt;br /&gt;
 	for card in cards:&lt;br /&gt;
 		allCards += str(card) + &amp;#039;, &amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 	allCards = allCards[0:len(allCards)-2]&lt;br /&gt;
 	&lt;br /&gt;
 	upperCrossBar = leftUp+crossBar+rightUp&lt;br /&gt;
 	lowerCrossBar = leftDown+crossBar+rightDown&lt;br /&gt;
 	spaces = &amp;#039; &amp;#039; * (len(upperCrossBar)-len(allCards)-4)&lt;br /&gt;
 	allCards += spaces&lt;br /&gt;
 	&lt;br /&gt;
 	print upperCrossBar&lt;br /&gt;
 	print &amp;#039;%s%s%s&amp;#039; % (post, allCards, post)&lt;br /&gt;
 	print lowerCrossBar&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 def game():&lt;br /&gt;
 	cards =  shuffleCards()&lt;br /&gt;
 	&lt;br /&gt;
 	pcCards = cards[1:10]&lt;br /&gt;
 	myCards = cards[11:20]&lt;br /&gt;
 	cardOnTable = cards[0]&lt;br /&gt;
 &lt;br /&gt;
 	numCardsRemoved = 0&lt;br /&gt;
 	printCardDeck(pcCards, myCards, cardOnTable)&lt;br /&gt;
 &lt;br /&gt;
 	while not (len(pcCards)==0 or len(myCards)==0):&lt;br /&gt;
 		cardOnTable, myResult = userProc(cardOnTable, myCards)&lt;br /&gt;
 		cardOnTable, pcResult = pcProc(cardOnTable, pcCards)&lt;br /&gt;
 &lt;br /&gt;
 		numCardsRemoved = myResult + pcResult&lt;br /&gt;
 &lt;br /&gt;
 		if numCardsRemoved == 0:&lt;br /&gt;
 			break&lt;br /&gt;
 &lt;br /&gt;
 		printCardDeck(pcCards, myCards, cardOnTable)&lt;br /&gt;
 		&lt;br /&gt;
 def userProc(cardOnTable, myCards):&lt;br /&gt;
 	cnt = 0&lt;br /&gt;
 	while True:&lt;br /&gt;
 		select = input(&amp;#039;card index (-1:skip) : &amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
 		if select == -1 :&lt;br /&gt;
 			return cardOnTable, cnt&lt;br /&gt;
 &lt;br /&gt;
 		if not canHandOut(cardOnTable, myCards[select]):&lt;br /&gt;
 			print &amp;#039;you cannot handout that card&amp;#039;&lt;br /&gt;
 			continue&lt;br /&gt;
 		else:&lt;br /&gt;
 			cardOnTable = myCards.pop(select)&lt;br /&gt;
 			cnt += 1&lt;br /&gt;
 			printDeck([cardOnTable])&lt;br /&gt;
 			printDeck(myCards)&lt;br /&gt;
 			continue&lt;br /&gt;
 &lt;br /&gt;
 def pcProc(cardOnTable, pcCards):&lt;br /&gt;
 	cnt = 0&lt;br /&gt;
 	removed = False&lt;br /&gt;
 	while True:&lt;br /&gt;
 		for index in range(0, len(pcCards)):&lt;br /&gt;
 			if canHandOut(cardOnTable, pcCards[index]):&lt;br /&gt;
 				cardOnTable = pcCards.pop(index)&lt;br /&gt;
 				removed = True&lt;br /&gt;
 				break&lt;br /&gt;
 		if removed:&lt;br /&gt;
 			removed = False&lt;br /&gt;
 			continue&lt;br /&gt;
 &lt;br /&gt;
 		return cardOnTable, cnt&lt;br /&gt;
 &lt;br /&gt;
 def canHandOut(cardOnTable, myCard):&lt;br /&gt;
 	if cardOnTable.shape==myCard.shape or cardOnTable.number==myCard.number:&lt;br /&gt;
 		return True&lt;br /&gt;
 	else:&lt;br /&gt;
 		return False&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 &lt;br /&gt;
 if __name__==&amp;#039;__main__&amp;#039;:&lt;br /&gt;
 	game()	&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>