Bulls and Cows라는 간단한 게임을 프로그램으로 만들어보자.
<게임 규칙>
먼저 컴퓨터가 0부터 9까지의 숫자중 4개를 중복없이 배열한 문자열을 랜덤하게 생성한다.
플레이어는 생성된 문자열을 예상하여 1턴에 1번씩 입력할 수 있다.
컴퓨터는 플레이어가 입력한 문자열을 정답과 비교하여 값과 위치가 모두 맞는 숫자의 갯수를 'Bulls'
위치는 틀렸지만 값은 맞는 숫자의 갯수를 'Cows'로 카운트하여 매턴마다
사용자의 입력에 대해 Bulls와 Cows값을 알려준다.
플레이어는 10턴 안에 정답을 맞춰야한다.
<세부 사항>
판정의 출력형식은 (Bulls값)B(Cows값)C 로 한다. ex) 답이 1234일때 0124를 입력하면 1B2C 를 출력
판정을 출력할때마다 사용자가 입력한 횟수N(=현재 턴수)을 함께 출력한다. ex>판정: 1B2C, 입력한 횟수: 2
형식에 맞지 않는 잘못된 입력(ex>2211, a1bc, 209111 등)을 한 경우는 에러 메시지를 출력하고 N은 변하지 않는다.
단 이미 입력했던 값을 다시 입력하는것은 괜찮다.
플레이어가 정답을 맞추면, "정답입니다. 총 입력한 횟수: N"를 출력한다.
10턴이 지나도 정답을 맞추지 못하면 정답을 공개하고 Game Over 메시지를 출력한다.
플레이어가 정답을 맞추거나 Game Over가 되면, 다시 처음부터 게임을 시작할지 종료할지 물어본다.
이때 플레이어가 1을 입력하면 처음부터 게임을 다시 시작하고 0을 입력하면 게임을 종료한다(그 외의 입력에는 에러를 출력하고 다시 물어본다)
32개의 풀이가 있습니다.
import random
import itertools
def bullcow(a,b):
bull=0
cow=0
for i in a:
if i in b:
if a.index(i)==b.index(i):
bull+=1
else:
cow+=1
return bull,cow
answerlist=[''.join(x) for x in list(itertools.permutations('0123456789',4))]
while True:
trial=0
answer=random.choice(answerlist)
while True:
user=input("입력하세요: ")
if user not in answerlist:
print("잘못된 입력입니다. 입력한 횟수: {}".format(trial))
else:
trial+=1
if user==answer:
print("정답입니다. 총 입력한 횟수: {}".format(trial))
break
elif trial>9:
print("Game over. 정답은 {} 입니다.".format(answer))
break
else:
(b,c)=bullcow(user,answer)
print("판정: {}B{}C, 입력한횟수: {}".format(b,c,trial))
print()
while True:
print()
again=input("게임을 다시 시작할까요?\n1. 예\n0. 아니요\n:")
if again not in ['0','1']:
print("잘못된 입력입니다.")
continue
else:
again=int(again)
break
if again:
print("새로운 게임")
print()
continue
else:
break
Python 3.7
import random
def gen_game():
rst = set()
while len(rst) < 4:
rst.add(random.randint(0, 9))
return "".join(str(i) for i in rst)
def chk_gss(gss: str):
if len(set(gss)) != 4 or len(gss) != 4:
print("잘못된 입력입니다. 다시 입력하세요.")
return False
else:
return True
def get_result(ans: str, gss: str):
rst = False
score = ["B" if gss[i] == ans[i]
else "C" if gss[i] in ans else "N" for i in range(4)]
stat = f"{score.count('B')}B{score.count('C')}C"
if score.count('B') == len(ans):
rst = True
return rst, stat
def main():
while True:
print("\nBulls and Cows 게임을 시작합니다.")
ans = gen_game()
tries, endmsg = 1, f"Game Over. 정답: {ans}"
while tries < 11:
gss = input("맞춰보세요(4자리 숫자): ")
if not chk_gss(gss):
continue
result, stat = get_result(ans, gss)
if result == True:
endmsg = f"정답입니다. 총 입력한 횟수: {tries}"
break
else:
print(f"결과는 {stat}입니다. 총 입력한 횟수: {tries}")
tries += 1
print(endmsg)
while True:
retry = input("다시 시작할까요([0] 아니오, [1] 예)? ")
if retry == "0":
exit()
elif retry == "1":
break
else:
print("잘못된 입력입니다.")
continue
if __name__ == "__main__":
main()
import random
def bullsAndCows():
value = ''
while True:
if len(value) == 4:
break
ck = str(random.randint(0, 9))
if ck not in value:
value+=ck
turn = 1
while True:
if turn == 11:
print('입력횟수가 초과됐습니다. Game Over','정답: ',value)
break
exValue=ckinput()
if value == exValue:
print(exValue, '정답입니다.', '턴수:', turn)
break
b = 0
c = 0
for s in range(len(exValue)):
if exValue[s] == value[s]:
b+=1
elif exValue[s] in value:
c+=1
print('판정:{}B{}C 턴수:{}\n'.format(b,c,turn))
turn+=1
ckg = ckend()
if ckg == '0':
print('게임을 종료합니다.')
elif ckg == '1':
print('게임을 시작합니다.')
bullsAndCows()
return
def ckend():
while True:
ckg = input('게임종료(0), 시작(1): ')
if ckg == '0':
break
elif ckg == '1':
break
else:
print('잘못된형식입니다.')
return ckg
def ckinput():
while True:
cw = 0
exValue = input('예상 4자리숫자입력: ')
if len(exValue) == 4:
for i in exValue:
cw+=exValue.count(i)
else:
print('형식에 맞지 않습니다.')
continue
if cw > 4:
print('형식에 맞지 않습니다.')
else:
break
return exValue
bullsAndCows()
import random as rd
def BCgame(P, C):
for i in range(len(P)):
if P[i] == C[i]: P[i] = 'B'
elif P[i] in C: P[i] = 'C'
else: P[i] = str(P[i])
return ''.join(P)
def run():
C = rd.sample(list(range(0, 10)), 4)
for i in range(10):
G = BCgame([x for x in list(map(int, input('>>>').split(',')))], C)
if G == 'BBBB': print(G); break
else: print(G, i+1)
package Study;
import java.util.Scanner;
public class BullsandCows {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] my_num = new int[4];
int[] com_num = new int[4];
int bulls = 0, cows = 0, count = 0;
boolean check = false;
while (true) {
count = 0;
while (true) {
check = false;
for (int i = 0; i < 4; i++) {
com_num[i] = (int) (Math.random() * 10);
}
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 4; j++) {
if (com_num[i] == com_num[j])
check = true;
}
}
if (!(check)) {
break;
}
}
while (true) {
bulls = 0;
cows = 0;
count++;
While:
while (true) {
check = false;
System.out.println("숫자를 입력 하세요 ex)1234");
String num = sc.next();
for (int i = 0; i < 4; i++) {
my_num[i] = num.charAt(i) - 48;
if (my_num[i] < 0 || my_num[i] > 9||num.length()!=4) {
continue While;
}
}
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 4; j++) {
if (my_num[i] == my_num[j])
check = true;
}
}
if (!check) {
break;
}
}
for (int i = 0; i < 4; i++) {
if (com_num[i] == my_num[i])
bulls++;
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (com_num[i] == my_num[j] && com_num[i] != my_num[i]) {
cows++;
}
}
}
if (bulls == 4) {
System.out.println("정답입니다 총 입력한 횟수 : " + count);
System.out.println("게임을 다시하시겠습니까 yes(1) no(0)");
int choice = sc.nextInt();
if (choice == 1) {
break;
} else
System.exit(0);
} else {
System.out.println("판정 : " + bulls + "B" + cows + "C 입력한 횟수 : " + count);
}
}
}
}
}
import random
def bullsAndCows():
value = ''
while True:
if len(value) == 4:
break
ck = str(random.randint(1, 9))
if ck not in value:
value+=ck
n=0
while True:
bulls = 0
cows = 0
num=input("숫자를 입력:")
n += 1
if len(num) != 4 or num.isdigit() is False:
print("error")
n = n - 1
else:
if num==value:
print("정답입니다. 총 입력한 횟수:%d"%n)
bb=1
break
for i in range(4):
if num[i] == value[i]:
bulls += 1
for j in range(4):
for k in range(4):
if num[j]==value[k]:
cows+=1
if num[j]==value[j]:
cows-=1
print("%dB %dC 입력한 횟수 %d"%(bulls,cows,n))
if n==10:
print("기회를 다 사용했습니다")
print(value)
bb=1
break
def main():
bullsAndCows()
while True:
con=input("계속 하시겠습니까?:0/1")
if con =='1':
bullsAndCows()
elif con=='0':
break
else:
print("error")
main()
C#
using System;
using System.Text.RegularExpressions;
namespace Bulls_and_Cows
{
class Program
{
static void Main(string[] args)
{
Random random = new Random();
int[] number = new int[4];
bool challengeTry = true;
while(challengeTry)
{
int index = 0;
while(index < 4)
{
number[index] = random.Next(0, 10);
bool hasDuplicate = false;
for (int i = 0; i < index; i++)
{
if (number[index] == number[i])
{
hasDuplicate = true;
break;
}
}
if(!hasDuplicate)
{
index++;
}
}
int challengeTime = 0;
Console.WriteLine("4자리 숫자를 입력해 주세요.");
while (challengeTime < 10)
{
string userInput = Console.ReadLine();
string userInput_r = Regex.Replace(userInput, @"\D", "");
int[] userNumber = new int[4];
bool isRightInput = true;
if (userInput.Length == userInput_r.Length && userInput_r.Length == 4)
{
int userInput_i = int.Parse(userInput_r);
int x = 1000;
for (int i = 0; i < 4; i++)
{
userNumber[i] = userInput_i / x;
userInput_i = userInput_i - userNumber[i] * x;
x = x / 10;
bool hasDuplicate = false;
for (int j = 0; j < i; j++)
{
if (userNumber[i] == userNumber[j])
{
hasDuplicate = true;
break;
}
}
if (hasDuplicate)
{
isRightInput = false;
break;
}
}
}
else
{
isRightInput = false;
}
if (!isRightInput)
{
Console.WriteLine("잘못된 값입니다. 다시 입력해 주세요.");
continue;
}
challengeTime++;
int bullsCount = 0;
int cowsCount = 0;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (number[i] == userNumber[j])
{
if (i == j)
{
bullsCount++;
}
else
{
cowsCount++;
}
}
}
}
if (bullsCount == 4)
{
Console.WriteLine("정답입니다. 총 입력한 횟수: {0}", challengeTime);
challengeTry = false;
break;
}
else
{
Console.WriteLine("판정: {0}B {1}C, 입력한 횟수 : {2}", bullsCount, cowsCount, challengeTime);
}
}
if (challengeTime > 10)
{
Console.WriteLine("Game Over");
Console.WriteLine("정답 : {0}{1}{2}{3}", number[0], number[1], number[2], number[3]);
}
Console.WriteLine("재도전 : 1 종료 : 0");
while (true)
{
int lastAnswer = int.Parse(Console.ReadLine());
if (lastAnswer == 0)
{
challengeTry = false;
break;
}
else if (lastAnswer == 1)
{
challengeTime = 0;
break;
}
else
{
Console.WriteLine("잘못 누르셨습니다. 다시 시도해 주세요.");
}
}
}
}
}
}
from random import *
while True:
a=str(randint(0,9))
con=0
arr=[]
for k in range(4):
while a in arr:
a=str(randint(0,9))
arr.append(a)
print(arr)
cnt=0
while cnt<10:
B=0
C=0
input_=list(input('답: '))
while len(input_)!=4:
input_=list(input('4자리로 입력하세요. \n다시입력: '))
for j in range(4):
if input_[j] == arr[j]:
B+=1
elif input_[j] in arr:
C+=1
print('%dB%dC'%(B,C))
if B==4:
print('정답입니다. 총 입력한 횟수: %d'%(cnt+1))
con=input('1:처음부터, 0:종료')
break
if cnt==9:
print('Game Over.')
print('정답:',arr)
con=input('1:처음부터, 0:종료')
break
cnt+=1
if con==0:
break
if con==1:
continue
from random import sample
def bulls_n_cows(hidden, inp):
return '{}B{}C'.format(
sum(map(lambda x: x[0] == x[1], zip(hidden, inp))),
sum(map(lambda x: x[0] != x[1] and x[1] in hidden, zip(hidden, inp)))
)
def ask_until(is_valid, msg=''):
ans = None
while not ans or not is_valid(ans):
ans = input(msg)
return ans
def game():
def valid_input(x):
return len(x) is 4 and len(set(x)) == len(x) and all(map(lambda y: y.isdigit(), x))
hidden = ''.join(sample('0123456789', 4))
for n in range(1, 11):
ans = ask_until(valid_input, '{} th input = '.format(n))
res = bulls_n_cows(hidden, ans)
print(n, 'th result:', res)
if res[0] == '4':
print('succeeded:', n, 'tries')
return
print('game over. answer = ', hidden)
coin = 1
while coin:
game()
coin = int(ask_until(lambda x: x in ['1', '0'], 'again (1/0)? '))
from random import randint
while(1):
string = ''
done = False
t = str(randint(1, 9))
for i in range (0, 4, 1):
while(t in string):
t = str(randint(1, 9))
string = string + t
t = str(randint(1, 9))
while(done == False):
for turn in range (0, 10, 1):
bullNum = 0
cowNum = 0
guess = str(input("Your guess: "))
while(len(guess) != 4):
guess = str(input("Your guess (Four digit integer): "))
for j in range (0, 4, 1):
if(guess[j] == string[j]):
bullNum += 1
elif(guess[j] in string):
cowNum += 1
result = "B" + str(bullNum) + "C" + str(cowNum)
print(str(turn+1) + "th guess = " + guess + ", result = " + result)
if (bullNum == 4):
done = True
break
else:
continue
break
if(done == True):
print("Congratulations! You win! Enter 0 to quit and 1 to play agian")
else:
print("The answer was: " + string)
print("Game over! Enter 0 to quit and 1 to play agian")
play = int(input("Your Choice: "))
while(play != 0 and play != 1):
play = int(input("Please enter a valid option: "))
if(play == 1):
continue
else:
break
namespace codingdojang__
{
class Program
{
static List<int> ran_list = new List<int> { };
static List<int> input_list = new List<int> { };
static int bulls = 0;
static int cows = 0;
static bool right = false;
static void Main(string[] args)
{
Collection();
}
static void Random_list()
{
List<int> list = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Random ran = new Random();
for (int i = 0; i < 4; i++)
{
ran_list.Add(list[ran.Next(0, list.Count)]);
list.Remove(ran_list[i]);
}
}
static void User_input()
{
string input;
bool temp = false;
while (temp == false)
{
temp = true;
input_list.Clear();
input = Console.ReadLine();
if (input.ToString().Length == 4)
{
for (int i = 0; i < 4; i++)
{
if ((int)input[i] > 64)
{
Console.WriteLine("다시 입력하세요.");
temp = false;
break;
}
input_list.Add(int.Parse(input[i].ToString()));
}
for (int x = 0; x <= input_list.Count; x++)
{
for (int y = x + 1; y < input_list.Count; y++)
{
if (input_list[x] == input_list[y])
{
Console.WriteLine("다시 입력하세요.");
temp = false;
}
}
}
}
else
{
Console.WriteLine("다시 입력하세요.");
temp = false;
}
}
}
static void Bulls_and_cows()
{
for (int a = 0; a < 4; a++)
{
for (int b = 0; b < 4; b++)
{
if (a == b && ran_list[b] == input_list[a])
{
bulls++;
}
else if (ran_list[b] == input_list[a])
{
cows++;
}
}
}
if(bulls == 4)
{
right = true;
}
}
static void Collection()
{
Random_list();
foreach (var i in ran_list)
{
Console.Write(i);
}
Console.WriteLine();
for (int i = 1; i <= 11; i++)
{
if (right == true)
{
Console.WriteLine("정답입니다. 총 입력한 횟수 : {0}", i - 1);
break;
}
if (i == 10 && right == false)
{
Console.Write("Game Over\n 정답 : ");
foreach (var e in ran_list)
{
Console.Write(e);
}
Console.WriteLine();
}
else
{
User_input();
Bulls_and_cows();
Console.WriteLine("판정 : {0}B{1}C, 입력한 횟수 : {2}", bulls, cows, i);
bulls = cows = 0;
}
}
}
}
}
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"time"
)
type GuessNumber struct {
nums [4]uint8
guessNums [4]uint8
turn uint
}
func newGuessNumber() GuessNumber {
res := GuessNumber{}
res.init()
return res
}
func (obj *GuessNumber) init() {
box := [10]uint8{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
for i := 0; i < 4; i++ {
rand.Seed(time.Now().UTC().UnixNano())
id := rand.Intn(10 - i)
obj.nums[i] = box[id]
box[id], box[9-i] = box[9-i], box[id]
}
obj.turn = 0
}
func (obj *GuessNumber) guess() {
obj.turn++
stdin := bufio.NewReader(os.Stdin)
bf := [4]byte{}
for {
fmt.Print("4개의 수를 입력하세요(예: 1234)\n >>> ")
n, _ := stdin.Read(bf[:])
stdin.Discard(stdin.Buffered())
if n == 4 && validateGuess(bf[:]) {
break
}
fmt.Println("#잘못된 입력입니다")
}
for i := 0; i < 4; i++ {
obj.guessNums[i] = bf[i] - '0'
}
}
func (obj *GuessNumber) play() (b int, c int) {
for i, vm := range obj.guessNums {
for j, vo := range obj.nums {
if vm == vo {
if i == j {
b++
} else {
c++
}
break
}
}
}
return
}
func validateGuess(bf []byte) bool {
for i := 0; i < 4; i++ {
if bf[i] < '0' && bf[i] > '9' {
return false
}
for j := i + 1; j < 4; j++ {
if bf[i] == bf[j] {
return false
}
}
}
return true
}
func (obj *GuessNumber) retry() bool {
fmt.Println("\n새로운 게임을 시작하시겠습니까? (Y/N): ")
var s string
fmt.Scanln(&s)
if s == "N" {
return false
} else {
fmt.Println("새로운 게임을 시작합니다\n\n\t BULLS & COWS\n")
obj.init()
return true
}
}
func main() {
game := newGuessNumber()
fmt.Println("\tBULLS & COWS\n")
for {
fmt.Println(game.turn+1, "번째 추측")
game.guess()
b, c := game.play()
fmt.Println(b, "bulls,", c, "cows\n")
if b == 4 {
fmt.Println("정답입니다. 총 입력한 횟수:", game.turn)
if !game.retry() {
break
}
} else if game.turn == 10 {
fmt.Println("Game Over")
if !game.retry() {
break
}
}
}
}
using System;
using System.Collections;
namespace CodingTest01
{
class Program
{
static ArrayList Computer = new ArrayList();
static ArrayList Player = new ArrayList();
static string InputNumber = null;
static string GetAnswer = null;
static void RandomNumberMethod()
{
Random r = new Random();
int Temp = 0;
Computer.Clear();
for (int i = 0; i <=3; i++)
{
do
{
Temp = r.Next(0,9);
}while (Computer.Contains(Temp));
Computer.Add(Temp);
}
}
static void InputNumberMethod()
{
Player.Clear();
string Temp = null;
Console.Write("Input Number : ");
InputNumber = Console.ReadLine();
for (int i = 0; i <= 3; i++)
{
Player.Add(InputNumber.Substring(i,1));
}
}
static bool Checked()
{
int Bulls = 0;
int Cows = 0;
string Question = null;
string Answer = null;
for (int i = 0; i < Computer.Count; i++)
{
Answer += Computer[i].ToString();
}
GetAnswer = Answer;
for (int i = 0; i < Player.Count; i++)
{
Question += Player[i].ToString();
}
if (Question == Answer)
{
return true;
}
for (int i = 0; i < Computer.Count; i++)
{
string ComputerTemp = Computer[i].ToString();
string PlayerTemp = Player[i].ToString();
if (ComputerTemp.Equals(PlayerTemp))
{
Bulls++;
}
else
{
for (int j = 0; j < Computer.Count; j++)
{
string PlayerTemp2 = Player[j].ToString();
if (ComputerTemp.Equals(PlayerTemp2))
{
Cows++;
}
}
}
}
Console.WriteLine("{0}B, {1}C", Bulls, Cows);
return false;
}
static void Main(string[] args)
{
/* 값과 위치가 모두 같은 숫자 : Bulls
위치는 틀렸지만 값은 맞는 숫자 : Cows */
int Count = 0;
bool CallRandomNumber = false;
RandomNumberMethod();
while (true)
{
try
{
InputNumberMethod();
if (InputNumber.Length > 4)
{
Console.WriteLine("Please re-enter.");
continue;
}
}
catch(Exception err)
{
Console.WriteLine("Please re-enter.");
continue;
}
if (Checked() == true)
{
Console.WriteLine("정답입니다. 총 입력한 횟수: {0}", Count);
break;
}
else
{
Count++;
Console.WriteLine("Turn : {0}", Count);
if(Count == 10)
{
bool ReplayBreak = false;
while (true)
{
Console.WriteLine("Answer : {0}", GetAnswer);
Console.WriteLine("-- GAME OVER --");
Console.WriteLine("Retry : 1 / End : 0");
int ReplayNumber = int.Parse(Console.ReadLine());
if (ReplayNumber == 0)
{
ReplayBreak = true;
break;
}
else if (ReplayNumber == 1)
{
Count = 0;
CallRandomNumber = true;
break;
}
else
{
Console.WriteLine();
Console.WriteLine("0 또는 1을 선택해주세요.");
continue;
}
}
if (ReplayBreak == true)
{
break;
}
}
}
if (CallRandomNumber == true)
{
CallRandomNumber = false;
RandomNumberMethod();
}
}
}
}
}
import random
#답 생성
while(True):
ans = str(random.randrange(10000))
ans_chk = 0
#맨 앞자리가 0일경우
if int(ans) < 1000:
ans = '0' + ans
#다른 자리 중복 체크
for i in range(4):
for j in range(i+1,4):
if ans[i] == ans[j]:
ans_chk = 1
if ans_chk == 0:
break
#답 횟수 카운트
count = 0
while(True):
print('----------------------------------------')
me_ans = input('자릿수가 각각 다른 수 네자리를 입력해주세요\n')
count += 1
b = 0
c = 0
for i in range(4):
# 자리와 수가 같으면 b + 1
if me_ans[i] == ans[i]:
b += 1
# 숫자만 같으면 c + 1
for j in range(4):
if i == j:
continue
if me_ans[i] == ans[j]:
c += 1
print(b, 'B', c, 'C')
# 4B면 break
if b == 4:
print('정답! #', count)
break
public class BoolsAndCows extends Game{
private int answer_num[]=new int[4];
@Override
protected void init() {
Random ran=new Random();
while(true) {
boolean numCheck = false;
for(int i=0;i<4;i++)
answer_num[i]=ran.nextInt(10);
for(int i=0;i<3;i++) {
for(int j=i+1;j<4;j++) {
if(answer_num[i]==answer_num[j]) {
numCheck=true;
}
}
if(numCheck)
break;
}
if(!numCheck)
break;
}
}
@Override
public void gameStart() {
init();
String inputStr;
int inputInteger;
int inputs[]=new int[4];
int count=0;
int bulls=0;
int cows=0;
boolean isAnswer=false;
Scanner scan=new Scanner(System.in);
while(count<10) {
count++;
System.out.print("입력 : ");
inputStr=scan.next();
if(!isNumeric(inputStr)) {
count--;
System.out.println("잘못된 데이터");
continue;
}
inputInteger=Integer.parseInt(inputStr);
inputs[0]=inputInteger/1000;
inputs[1]=(inputInteger%1000)/100;
inputs[2]=(inputInteger%100)/10;
inputs[3]=(inputInteger%10);
for(int i=0;i<4;i++) {
for(int j=0;j<4;j++) {
if(inputs[i]==answer_num[j]) {
if(i==j)
bulls++;
else
cows++;
}
}
}
if(bulls==4) {
isAnswer=true;
break;
}
System.out.println(bulls+"B"+cows+"C");
System.out.println();
bulls=0;
cows=0;
}
if(isAnswer) {
System.out.println("정답입니다. 총 입력횟수 : "+count);
}else {
printAnswer();
}
}
private boolean isNumeric(String str) {
try {
Double.parseDouble(str);
return true;
} catch(NumberFormatException e) {
return false;
}
}
private void printAnswer() {
System.out.print("정답 : ");
for(Integer i:answer_num)
System.out.print(i);
System.out.println();
}
}
## Bulls and Cows Game (Baseball game)
while True:
# 컴퓨터가 0~9까지의 숫자중 중복없이 배열한 문자열을 랜덤하게 생성하여 정답을 A에 저장
random_answer = [int(x) for x in range(0,10)]
A = []
import random
for i in range(0,4):
K = random.choice(random_answer)
A.append(K)
random_answer.remove(K)
del K, random_answer
# 최대 10회 게임
N = 0 # 시행 횟수
for i in range(0,10):
# 사용자 입력 오류 메시지 출력
while True:
# player's choice를 D에 저장
player_input = input("4자리 숫자를 입력하세요. :", )
not_int = False
if len(set(player_input)) != 4:
print("중복되지 않는 4자리 숫자만 입력 가능합니다. 다시 입력하세요.")
continue
else:
for i in player_input:
if i not in '0123456789':
print("중복되지 않는 4자리 숫자만 입력 가능합니다. 다시 입력하세요.")
not_int = True
break
if not_int == True:
continue
else:
break
D = []
for i in player_input:
D.append(int(i))
# 입력값에 문제가 없었으므로, 시행 횟수를 1 증가
N += 1
b = 0 # bulls
c = 0 # cows
# A(정답) 와 D(사용자 입력)을 비교
# 정답인 경우
if A == D:
print()
print("**************************Win!!!**************************")
print(" %d%d%d%d 정답입니다. 총 입력한 횟수:%d" %(A[0],A[1],A[2],A[3],N))
print()
break
# 오답인 경우
else:
# 같은 숫자가 몇 개인지 확인하여 b에 저장한다.
for i in range(0,4):
for j in range(0,4):
if A[i] == D[j]:
b += 1
# 메인 비교 알고리즘. index를 비교하여 같은 자리에 같은 숫자가 있다면 b에서 1을 빼고 c에서 1을 더해준다.
for i in range(0,4):
if A[i] == D[i]:
b -= 1
c += 1
if c == 0:
print("판정 : %dB, 입력한 횟수: %d" %(b,N))
print()
else:
print("판정 : %dB%dC, 입력한 횟수: %d" %(b,c,N))
print()
# 10턴이 모두 끝난 경우 게임 오버 선언.
if N == 10:
print()
print("**************************Game Over!!!**************************")
print(" 정답은 %d%d%d%d 입니다." %(A[0],A[1],A[2],A[3]))
print()
# 게임을 다시 실행할 지 결정
while True:
regame = input("다시 게임을 시작하겠습니까? (다시 시작: 1, 게임 종료: 2)",)
if regame not in '1,2':
print("1 혹은 2를 입력하지 않았습니다. 입력 오류.")
continue
else:
break
# 게임을 다시 시작할 지 작동
if regame == '1':
continue
else:
break
print("*******게임을 종료합니다.*******")
public class BullsAndCows {
public static void main(String[] args) {
Random random = new Random();
String[] nums = new String[4];
for(int i=0; i<4; i++) { //중복제외 변수 생성
int n = random.nextInt(10);
nums[i] = Integer.toString(n);
for(int j=0; j<i; j++) {
if(nums[i].equals(nums[j])) {
i--;
}
}
}
Scanner scan = new Scanner(System.in);
int N = 1;
loop:
for(int i=0;;i++) {
int B = 0;
int C = 0;
int count = 0; //위치랑 값이 같을경우 ++ 마지막에 count==4이면 종료
String[] input = scan.nextLine().split("");
if(input.length!=4) { //입력값이 4자리가 아니면 다시입력
System.out.println("숫자 4개를 입력하세요");
continue loop;
}
else {
for(int j=0; j<4; j++) { //입력값이 4자리, 문자가 있을 경우 다시 입력
if(Integer.parseInt(input[j])<48&&Integer.parseInt(input[j])>57) {
System.out.println("다시 입력하세요");
continue loop;
}
for(int k=0; k<j; k++) {//입력값4자리, 같은 숫자가 있을 경우 다시 입력
if(input[j].equals(input[k])) {
System.out.println("다시 입력하세요");
continue loop;
}
}
}
for(int s=0; s<4; s++) { //값이랑 위치가 같을 경우 B++;
if(nums[s].equals(input[s])) {
B++;
count++;
}
else { //위치는 다르지만 값이 있을 경우 C++
for(int l=0; l<4; l++) {
if(nums[s].equals(input[l])) {
C++;
}
}
}
}
if(count==4) { //입력값이 모두 같은 경우 종료
System.out.println("정답입니다. 총 입력한 횟수 : "+N);
System.out.println("다시?");
if(scan.nextLine().equals("1")) {
N=0; //다시 시작할 경우 횟 수 0
for(int h=0; h<4; h++) { //다시 중복제외 변수 생성
int n = random.nextInt(10);
nums[h] = Integer.toString(n);
for(int a=0; a<h; a++) {
if(nums[h].equals(nums[a])) {
h--;
}
}
}
continue loop;
}
else {
System.exit(0);
}
}
System.out.println("B" + B + "C" + C + ", 입력한 횟 수 : " + N);
N++;
if(N>10) { //N의 값이 10보다 크면 종료
System.out.println("Game Over");
System.out.println("다시?");
if(scan.nextLine().equals("1")) {
N = 0;
for(int h=0; h<4; h++) { //중복제외 변수 생성
int n = random.nextInt(10);
nums[h] = Integer.toString(n);
for(int a=0; a<h; a++) {
if(nums[h].equals(nums[a])) {
h--;
}
}
}
continue loop;
}
else {
System.exit(0);
}
}
}
}
}
}
import random
while True:
elst=[]
while len(elst)<4:
n=random.randint(0,9)
if n not in elst:
elst.append(n)
nlst=list(map(str,elst))
cpunum="".join(nlst)
T=1
while True:
B,C=0,0
if T>10:
print("***Game Over***","정답:",cpunum)
break
usernum=input("0~9까지의 숫자를 4개 입력하십시오: ")
if len(usernum)!=4 or usernum.isdigit() is False:
print("***잘못된 입력입니다***","//","입력한 횟수:",T-1)
continue
if usernum==cpunum:
print("***축하합니다! 정답입니다***","//","입력한 횟수:",T)
break
for n in range(len(cpunum)):
if cpunum[n]==usernum[n]:
B+=1
continue
elif cpunum[n] in usernum:
C+=1
print("판정:",str(B)+"B"+str(C)+"C","//","입력한 횟수:",T)
T+=1
while True:
ask=input("다시 시작하려면 1을, 게임을 종료하려면 0을 입력하십시오: ")
if ask=="1" or ask=="0":
break
else:
print("잘못된 입력입니다.")
continue
if ask=="1":
print("***새로운 게임을 시작합니다***")
T=1
continue
elif ask=="0":
print("게임을 종료합니다")
break
import random
a=random.sample(range(0,10),4)
randomString=""
for i in a:
randomString=randomString+str(i)
print(randomString)
b=0
start=1
while start:
for i in range(1,11,1):
player=input("예상되는 숫자를 입력:")
set1=set(randomString)
set2=set(player)
num=set1 & set2
c=len(num)
for j in range(4):
if randomString[j]==player[j]:
b+=1
c=c-1
print(b,"B",c,"C")
b=c=0
if randomString==player:
print("정답입니다!!")
print("총 입력한 횟수: %s" %i)
break
if i==10:
print("Game Over 정답은 %s 였습니다" %randomString)
print("다시 게임시작하실겁니까? 1번: 시작 0번: 종료")
start=int(input("번호입력:"))
파이썬입니다.
코드 검사하면서 게임도 재밌게 했습니다.
import random as r
def rand_x():
n = '{:04d}'.format(r.randint(0, 9999))
if len(n) != len(set(n)):
rand_x()
return n
x = rand_x()
N = 1
while True:
line = input('\n서로 다른 한 자리 수 (0~9) 네 개 입력:')
if not (len(line) == 4 and len(set(line)) == 4 and (set(line) & set(map(str, range(10))) == set(line))):
print('\n잘못된 입력입니다. 서로 다른 한 자리 수 (0~9) 네 개를 공백 없이 입력해 주세요.')
continue
B = int((line[0] == x[0]) + (line[1] == x[1]) + (line[2] == x[2]) + (line[3] == x[3]))
C = len(set(x) & set(line)) - B
if B == 4:
print('\n정답입니다. 총 입력한 횟수: {}'.format(N))
print('\n처음부터 다시 시작하시겠습니까? Yes: 1을 입력, No: 0을 입력')
while True:
re = input()
if re != '0' and re != '1':
print('\n재시작 여부는 0 또는 1을 입력해서 정할 수 있습니다. Yes: 1을 입력, No: 0을 입력')
continue
break
if re == '1':
print('\n처음부터 게임을 다시 시작합니다.')
N = 1
x = rand_x()
continue
else:
print('\n게임을 종료합니다.')
break
print('\n판정 : {}B{}C, 입력한 횟수: {}'.format(B, C, N))
if N == 10:
print('\nGame Over')
print('\n정답은 {}였습니다'.format(x))
print('\n처음부터 다시 시작하시겠습니까? Yes: 1을 입력, No: 0을 입력')
while True:
re = input()
if re != '0' and re != '1':
print('\n재시작 여부는 0 또는 1을 입력해서 정할 수 있습니다. Yes: 1을 입력, No: 0을 입력')
continue
break
if re == '1':
print('처음부터 게임을 다시 시작합니다.\n')
N = 1
x = rand_x()
continue
else:
print('\n게임을 종료합니다.')
break
N += 1
A=1
while A==1:
A='k'
N=0
import random
#문자열을 랜덤하게 생성한다
num=[]
Num=[0,1,2,3,4,5,6,7,8,9]
for i in range(4):
num.append(str(random.choice(Num)))
Num.remove(int(num[-1]))
while N<10:
N+=1
n=N
ans=list(input("trial %d: " %N))
B=0
C=0
for h in range(0,4):
if ans.count(ans[h])>1:
print("Error.Retry")
N-=1
break
for i in range(0,4):
if ans[i]==num[i]:B+=1
if B==4:
print("정답입니다. 총 입력한 횟수: %d"%N)
break
for j in range(0,4):
if ans[j] in num:
C+=1
if n==N:print("판정: %dB%dC\t입력한 숫자:"%(B,C-B)+''.join(ans)+"\t입력한 횟수:%d"%N)
if B!=4:
print("The answer is "+''.join(num)+"\nGame Over")
while A!='0' and A!='1':
A=input("Do you want to restart the game? (restart:1, exit:0)\n :")
if A!='0' and A!='1': print("Error")
import random
def bsc(answer):
cnt = 0
while cnt < 2:
player = input('예측값을 입력하세요: ')
if (len(player) != len(set(player))) or len(player) > 4:
print('입력값에 오류가 있습니다. 재입력하세요.')
else:
cnt += 1
res = ['B' if player[i] == answer[i] else
'C' if player[i] in answer else 'U' for i in range(len(answer))]
result = str(res.count('B')) + 'B' + str(res.count('C')) + 'C'
if result == '4B':
print('정답입니다. 총 입력한 횟수: {}'.format(cnt))
break
else:
print('오답입니다. 판정: {}, 시도 횟수: {}'.format(result, cnt))
if cnt == 2:
print('정답: {}\nGame Over!!'.format(''.join(answer)))
retry = int(input('다시 도전하겠습니까? '))
while retry > 1:
retry = int(input('다시 도전하겠습니까? '))
if retry == 1:
print('재도전을 선택하셨습니다. 게임을 다시 시작합니다.')
main()
def main():
input_range = [str(i) for i in range(10)]
answer = random.sample(input_range, 4)
while answer[0] == '0':
answer = random.sample(input_range, 4)
print(answer)
bsc(answer)
if __name__ == '__main__':
main()
import random as ra
# 겹치지 않는 4개의 숫자 생성 함수
def making():
global qu_4
qu_4=[]
qu_4.append(ra.randint(0, 9))
for i in range(1, 4):
while True:
c=ra.randint(0, 9)
for j in range(0, i):
if c == int(qu_4[j]):
break
else:
qu_4.append(c)
break
return qu_4
# 4개 숫자 외에는 다시 입력하게 하는 함수, 같은 숫자 입력 가능(문제조건임)
def ans_lin():
global a1
a1=[]
while True:
try:
ans = str(input("Input 4 integers from 0 to 9 : "))
an = int(ans)
if len(ans)!=4 or ("." in ans) or ("-" in ans):
print("no, no. Input 4 intergers from 0 to 9")
else:
break
except ValueError:
print("That was no valid number. Try again...")
ans=list(ans)
a1=[int(ans[0]),int(ans[1]),int(ans[2]),int(ans[3])]
return a1
# 다시 할지 물어보는 함수
def again():
global gogo
while True:
ag = input("Do you want to play again? (y/n)")
if (ag == "n") or (ag == "N"):
gogo = False
break
elif (ag == "y") or (ag == "Y"):
gogo = True
break
return gogo
qu_4 = []
a1=[]
gogo = True
# 본 프로그램은 여기부터.
print("[ Bulls ans Cows game ] __ Find 4 differnt intergers!!")
while gogo:
making()
for i in range(1, 11):
bull = 0
cow = 0
ans_lin()
for j in range(0, 4):
if a1[j] == qu_4[j]:
bull += 1
elif a1[j] in qu_4:
cow += 1
print("#### {} try : your quess is {}, and the result is [ {}b{}c ].".format(i,a1,bull,cow))
if bull == 4 :
print("You did it!! Congrat.")
break
if bull != 4:
print("Failed. The answer is {}.".format(qu_4))
again()
import random
com = ""
for i in random.sample([i for i in range(10)], 4):
com += str(i)
n = 10
while n:
me = input("숫자를 입력하세요: ")
bulls = 0
cows = 0
for i in range(4):
if me[i] == com[i]:
bulls += 1
for i,k in zip(me,com):
if i in com and i!=k:
cows += 1
if bulls == 4:
print("정답입니다. 총 입력한 횟수: {}".format(11 - n))
break
else:
print(str(bulls) + "B" + str(cows) + "C, 입력한 횟수: {}".format(11 - n))
n -= 1
if n == 0:
print("\"Game Over\"")
print("정답 : "+com)
x = input("재도전? (1:수락,0:거절): ")
if x == "1":
n = 10
com = ""
for i in random.sample([i for i in range(10)], 4):
com += str(i)
continue
if x == "0":
brea
게임이 더 어렵네용 ..
import random
random.seed()
numbers = []
for i in range(4):
x = -1
while x<0 or numbers.count(x)>0:
x = random.randrange(10)
numbers.append(x)
solved = False
for i in range(10):
inputok = False
while not inputok:
inputok = True
guess = input("Guess? ")
for j in range(4):
if guess[j]<'0' or guess[j]>'9' or guess.count(guess[j])>1:
inputok = False
break
b = 0
c = 0
for j in range(4):
d = int(guess[j])
if d==numbers[j]:
b = b+1
elif numbers.count(d)>0:
c = c+1
if b==4:
print("정답입니다. 총 입력한 횟수: ", i+1)
solved = True
break
print(str(b)+'B'+str(c)+'C')
if not solved:
print("정답은: ", str(numbers[0])+str(numbers[1])+str(numbers[2])+str(numbers[3]))
print("Gave Over")
python 3.9.1
import random
def check():
i = 0
while i != 3:
enum = str(input('enter 4-digit number: '))
temp = list(enum)
if len(enum) == 4:
for i in range(0, 4):
if temp.count(temp[i]) > 1:
print('interger overlapped')
break
if ord(temp[i]) < 48 or ord(temp[i]) > 57:
print('not-interger input is not allowed')
i = 0
break
else:
print('The interger length is wrong')
return temp
key = []
while len(key) != 4:
aux = str(random.randrange(0, 10))
if aux not in key:
key.append(aux)
count = 0
bull = 0
while count < 10 and bull != 4:
cow = 0
bull = 0
val = check()
for i in range(0, 4):
if val[i] in key:
if key.index(val[i]) == i:
bull += 1
else:
cow += 1
count += 1
print('{}B{}C, count = {}'.format(bull, cow, count))
if bull == 4:
print('you win!')
else:
print('you lose... The interger was {}{}{}{}'.format(key[0], key[1], key[2], key[3]))
import random as r
def GenerateNum(n): # n <= 10, n자리 숫자 생성
number = list(range(0,10))
res = str()
for i in range(n):
digit = r.choice(number)
number.remove(digit)
res += str(digit)
return res
def checkinput(n): # 입력한 값이 형식에 맞는지 확인
if len(n) != 4 or not n.isdigit():
return 0
for i in range(0,10):
if n.count(str(i)) > 1:
return 0
return 1
def judging(com, user): # Bulls를 0번째 값, Cows를 1번째 값으로 하는 리스트 반환
result = [0, 0]
for i in range(4):
for j in range(4):
if com[i] == user[j]:
if i==j:
result[0] += 1
else:
result[1] += 1
return str(result[0]) + 'B' + str(result[1]) + 'C'
while True:
com = GenerateNum(4)
att = 1
endType = int()
while True:
user = input()
if checkinput(user) == 0:
print("잘못 입력하셨습니다")
continue
res = judging(com, user)
if res == '4B0C':
endType = 1
break
print("판정: %s, 입력한 횟수: %d" % (res, att))
if att == 10:
endType = 2
break
att += 1
if endType == 1:
print("정답입니다. 총 입력한 횟수: %d" % att)
elif endType == 2:
print("Game Over")
print("게임을 다시 시작하시겠습니까?")
print("1: 예 0: 아니요")
a = input()
if a == 0:
break
else:
continue
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.IntStream;
public class BullsAndCows {
// 1. 랜덤으로 4개 숫자 중복없이 생성
// 2. 10턴 안에 정답 맞추기
// 3. Bulls => 값과 위치가 모두 맞다
// 4. cows => 위치는 틀렸지만 값이 맞다.
public static void main(String[] args) {
int[] answer = random();
String ans = Arrays.toString(answer);
int length = answer.length;
int[] input = new int[length];
Scanner sc = new Scanner(System.in);
int cnt = 1;
while (cnt <= 10) {
int Bulls = 0;
int Cows = 0;
System.out.print("숫자를 입력하세요 : ");
for(int i=0;i<length;i++) {
input[i] = sc.nextInt();
}
if (Arrays.equals(answer, input)) {
System.out.println("정답입니다. 총 입력한 횟수 : " + cnt);
break;
} else {
for (int i = 0; i < length; i++) {
int num = input[i];
if (num == answer[i]) {
Bulls++;
} else if (IntStream.of(answer).anyMatch(x -> x==num)) {
Cows++;
}
}
System.out.println("판정 : " + Bulls + "B" + Cows + "C" + "입력한 횟수: " + cnt);
cnt++;
}
}
System.out.println(ans+"Game Over");
sc.close();
}
static int[] random() {
int[] nums = new int[4];
for (int i = 0; i < nums.length; i++) {
nums[i] =(int)(Math.random()*9+1);
for (int j = 0; j < i; j++) {
if (nums[i] == nums[j]) {
i--;
}
}
}
return nums;
}
}
정수형 배열로 입력을 받으니 입력 시 공백이 꼭 들어가야하네요ㅠㅠㅠ
1234 처럼 입력받는 방법을 더 공부해야겠습니다..
import random
list = [i for i in range(1,10)]
random.shuffle(list) #수열을 셔플하여 앞자리 4자리만 뽑음
com = list[:4]
round,count,bulls,cows=0,0,0,0
while True :
user = [int(i) for i in input('숫자를 맞춰보자(4자리):')]
count+=1
for i in range(4):
if user==com : round+=1
elif user[i]==com[i]: bulls +=1
elif user[i] in com: cows +=1
print(f'bulls:{bulls} cows:{cows}')
#정답이거나 횟수를 10회 넘으면 재시작을 물어봄
if count >=10 or round>1 :
if round>1: print(f'정답! {count}회 진행\n한번 더 하시겠습니까? Y / N')
else : print('Game Over\n한번 더 하시겠습니까? Y / N')
a = input()
count,round = 0,0
if a=='y'or'Y': continue
else : break
bulls,cows = 0,0
import random
while True:
bc = random.sample('1234567890',4)
bcs = ''
time = 0
for i in bc:
bcs += i
while time < 10:
B = 0
C = 0
t = 0
user = str(input('0~9까지의 숫자를 겹치지 않게 입력해 주세요:'))
btl = list(user)
btl.sort()
for k in range(1,len(btl)):
if btl[-k] == btl[-k-1]:
t = 1
if t != 0:
print('잘못된 입력입니다. 숫자를 겹치지 않게 입력해 주세요.')
continue
if len(user) != 4:
print('잘못된 입력입니다. 4자리 숫자로 다시 입력해주세요.')
continue
else:
for i in range(4):
if list(user)[i] == bc[i]:
B += 1
else:
for j in bc:
if list(user)[i] == j:
C += 1
time += 1
if time <= 10:
if B == 4:
print('정답입니다. 총 입력한 횟수: %d' %(time))
else:
print('B%dC%d 현제 입력 횟수: %d' %(B,C,time))
if time == 10:
print('Game Over 정답은 %s 입니다.' %(bcs))
print('다시 하시겠습니까?')
while True:
retry = input('0: 종료, 1: 다시 시작...: ')
if retry == '0':
exit()
elif retry =='1':
break
else:
print('잘못된 입력입니다. 0 또는 1을 입력해주세요.')
continue
import random
while True:
a = [0,1,2,3,4,5,6,7,8,9]
b = ""
for i in range(4):
c = random.choice(a)
a.remove(c)
b += str(c)
print(b)
count = 0
while True:
data = input("숫자 4개을 입력하세요: ")
bdata = list(data)
bdata.sort()
num = 0
if 4 != len(data):
print("에러입니다.숫자 4자리를 입력 하세요")
continue
for i in range(3):
if bdata[i]== bdata[i+1]:
num = 1
if num == 1:
print("숫자가 겹쳣읍니다,다시 입력 하세요")
continue
count += 1
bull = 0
cow = 0
for i in range(4):
if b[i] == data[i]:
bull += 1
else:
for j in range(4):
if b[i] == data[j]:
cow += 1
if bull == 4:
print(f"정답입니다. 총 입력한 횟수: {count}")
elif count == 10:
print(f"정답은 {b} 입니다. Game over")
else:
print(f"{bull}B{cow}C , 입력한 횟수: {count}")
continue
break
cda = 0
dda = 0
while True:
da2 = input("게임다시시작 1 입력, 게임종료 0 입력 :")
if da2 == '0':
cda = 1
break
elif da2 == '1':
dda = 1
break
else:
print("잘못 입력 햇읍니다. 0 과 1 을 입력히세요")
continue
if cda == 1:
break
if dda == 1:
continue
python
import random
def _isdigit(var): #올바른 입력인지 확인
return 0 <= var <= 9
def _strike(arr1, arr2): #스트라이크(Bull) 판정
s = 0
for i in range(4):
if arr1[i] == arr2[i]:
s += 1
return s
def _ball(arr1, arr2): #볼(Cow)판정
b = 0
for i in range(len(arr1)):
for j in range(len(arr2)):
if i != j and arr1[i] == arr2[j]:
b += 1
return b
def make_answer(): #플레이어에게 입력받기
answer=[-1] * 4
while -1 in answer:
print("0~9까지의 숫자중 중복없이 4개를 입력해 주십시오:")
answer[0] = int(input("첫번째: "))
if not _isdigit(answer[0]):
print("잘못된 형식입니다. 다시입력해 주십시오")
continue
for i in range(1, len(answer)):
while True:
n = int(input(f"{i + 1}번째: "))
if not _isdigit(n):
print("잘못된 형식입니다. 다시입력해 주십시오")
continue
if n in answer:
print("잘못된 형식입니다. 다시입력해 주십시오")
continue
answer[i] = n
break
return answer
first, second, third, fourth = random.sample(range(10), 4)
answer = "%s, %s, %s, %s" % (first, second, third, fourth) #정답
count = 0 #턴수
# 판정 #
flag = True
while flag:
# 초기화
strike = 0
ball = 0
for i in range(10):
# 판정
cowboy=make_answer() #플레이어에게 입력받기
strike = _strike(cowboy, list(map(int, answer.split(', '))))
ball = _ball(cowboy, list(map(int, answer.split(', '))))
count += 1
print(f"판정: {strike}B{ball}C, 턴수: {count}")
if strike == 4:
print("정답입니다!!!")
flag = False
break
print(f"정답은 {answer} 입니다. GAMEOVER")
while True:
choice = input("재시작을 원하면 1을 종료를 원하시면 0을 입력해주십시오: ")
if not (choice == "1" or choice == "0"):
continue
else:
flag = bool(int(choice))
count = 0
break