1586, 1/80 회원가입  로그인  
   해킹잘하고싶다
   http://없음
   random.png (231.9 KB), Download : 0     [오른쪽 버튼 눌러 다운 받기]
   파이썬 random모듈을 이용한 숫자맞추기 게임 구현

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8580 [복사]



즉흥적으로 파이썬 숫자맞추기 게임을 구현해봤다.
이 강좌에서는 아래의 채팅 프로그램 만들기 소스를 약갼 변형하고
추가해서 프로그램을 완성시켰다. (사실 별거 아니다...)

소스 코드를 첨부하겠다.




=====server.py=====
import random
import socket

host = '127.0.0.1'
port = 44444

parent_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
parent_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

parent_sock.bind((host, port))
parent_sock.listen(5)
print(f'Server IP: {host}, Port Num: {port} excuting to server...')

child_sock, child_addr = parent_sock.accept()
print(f'accept from {child_addr}')

rand_ans = random.randint(1, 100) # 'Generate a random number between 1 and 100
while True:
    answer = int(child_sock.recv(4))
    if answer > rand_ans:
        child_sock.send("The input value is greater than the correct answer".encode('utf-8'))

    elif answer < rand_ans:
        child_sock.send("The input value is less than the correct answer".encode('utf-8'))
  
    else:
        child_sock.send("Right, You finally got it!".encode('utf-8'))
        break
child_sock.close()
parent_sock.close()
==========







=====client.py=====
import socket

server_host = '127.0.0.1' # Loopback address
server_port = 44444

client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

# connect to server
client_sock.connect((server_host, server_port))
print(f'Server: {server_host}, {server_port} Connect nomarlly')

count = 1

while True:
    message = input("please enter integer between 1 to 100>>> ")
    client_sock.sendall(message.encode('utf-8'))
    message = client_sock.recv(256)
    print(f"server : {message.decode()}")
    if message == "Right, You finally got it!".encode('utf-8'):
        break
    count = count + 1

print("count : ", count)
client_sock.close()
===========




Almost all module functions depend on the basic function random(), which generates a random float uniformly in the half-open range 0.0 <= X < 1.0. Python uses the Mersenne Twister as the core generator. It produces 53-bit precision floats and has a period of 2**19937-1. The underlying implementation in C is both fast and threadsafe. The Mersenne Twister is one of the most extensively tested random number generators in existence. However, being completely deterministic, it is not suitable for all purposes, and is completely unsuitable for cryptographic purposes.

해석

거의 모든 모듈 함수는 기본 함수 random()에 의존한다.
이 함수는 반으로 열린 범위에서 균일하게 랜덤한 부동 소수점을 생성한다.
즉, 0.0 이상이고 1.0 미만이다.
파이썬은 Mersenne Twister를 핵심 생성기로 사용한다.
이는 53비트 정밀도의 부동 소수점을 생성하며 2**19937-1의 주기를 가지고 있다.
C로 구현된 하부 구현은 빠르고 스레드 안전하다.
Mersenne Twister는 존재하는 가장 철저하게 테스트된 난수 생성기 중 하나다.
그러나 완전히 결정론적이기 때문에 모든 용도에 적합하지 않으며,
암호화 용도로는 전혀 적합하지 않다.










파이썬의 랜덤 모듈을 이용하여 숫자 맞추기 게임을 만들었다.
rand_ans = random.randint(1, 100) # 'Generate a random number between 1 and 100
1이상 100이하의 숫자를 무작위로 생성해서 rand_ans 변수에 저장한다.
랜덤으로 받는 난수 빼곤 별거 없는 거라서 더 이상의 설명이 필요없을 듯 하다.

  Hit : 355     Date : 2024/05/30 12:36



    
     [공지] 강좌를 올리실 때는 말머리를 달아주세요^ㅡ^ [29] 멍멍 02/27 19033
  파이썬 random모듈을 이용한 숫자맞추기 게임 구현     해킹잘하고싶다
05/30 354
1584   파이썬 채팅 프로그램 구현     해킹잘하고싶다
05/28 259
1583   파이썬 소켓 프로그래밍의 기초     해킹잘하고싶다
05/26 248
1582   리눅스 웹 로그 분석     해킹잘하고싶다
05/20 220
1581   리눅스/윈도우 보안 장비 로그     해킹잘하고싶다
05/20 251
1580   고수님들의 도움을 받고 싶습니다     vbnm111
02/11 489
1579   리눅스 커널 2.6 버전 이후의 LKM     jdo
07/25 1005
1578   쉘코드 모음     해킹잘하고싶다
01/15 1835
1577   Call by value VS Call by Reference     해킹잘하고싶다
01/15 1180
1576   (꼼수) L.O.B 한방에 클리어하기[2]     해킹잘하고싶다
01/14 1569
1575   towelroot.c (zip) 코멘팅.[1]     scube
08/18 4083
1574   levitator.c (안드로이드 루팅) 공격 분석 소스 코드 공유.[4]     scube
08/17 3959
1573   무료 정보보안 기술인재 양성 과정 교육생 모집     chanjung111
06/17 4804
1572   K-Shield 주니어 5기 모집     lrtk
06/17 4514
1571   [팁] 파이썬 2소스를 3으로 변경해주는 사이트[3]     한승재
05/13 4208
1570   구글 백링크 작업 질문요     wkatnxka
03/30 3630
1569   [팁] 우분투 미러링서버     한승재
03/09 4338
1568 비밀글입니다  감을못잡겠네요ㅜㅜ     잉잉잉
01/15 3
1567   데비안 계열 리눅스 의존성 깨졌을때 해결법     한승재
11/27 4827
1 [2][3][4][5][6][7][8][9][10]..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org