Spaces:
Runtime error
Runtime error
import qiskit | |
import numpy as np | |
from qiskit import QuantumCircuit,Aer | |
import streamlit as st | |
def superposition(): | |
ckt=QuantumCircuit(1,1) | |
ckt.h(0) #HedaMart gate | |
ckt.measure(0,0) | |
sim=Aer.get_backend('aer_simulator') # A simulator | |
result=sim.run(ckt).result().get_counts() | |
return result | |
def getRandom(): | |
res=superposition() | |
#print(res) | |
values=list(res.values()) | |
keys= list(res.keys()) | |
#print(values,keys,sep='\n') | |
#replace by random vars | |
randomVal= '|' + str(keys[np.argmax(values)]) + '>' | |
return randomVal | |
#Tic Tac Toe Logic | |
def validate(arr): | |
""" | |
To check whether the game is finished or not | |
Winning condition --> 0 | |
else return 1 | |
""" | |
flag=True | |
zero_ket='|0>' | |
one_ket='|1>' | |
#diagonals | |
if arr[0,0]==one_ket and arr[1,1]==one_ket and arr[2,2]==one_ket: | |
st.success('User has won !!') | |
flag=False | |
elif arr[0,0]==zero_ket and arr[1,1]==zero_ket and arr[2,2]==zero_ket: | |
st.success('Computer has won !!') | |
flag=False | |
#2nd digonals | |
if arr[0,2]==one_ket and arr[1,1]==one_ket and arr[2,0]==one_ket: | |
st.success('User has won !!') | |
flag=False | |
elif arr[0,2]==zero_ket and arr[1,1]==zero_ket and arr[2,0]==zero_ket: | |
st.success('Computer has won !!') | |
flag=False | |
if not flag: | |
return 0 | |
if flag: | |
#more 5 conditions | |
for index in [0,1,2]: | |
if(list(arr[index])==[one_ket,one_ket,one_ket]): | |
st.success("User has won !") | |
return 0 | |
for index in [0,1,2]: | |
if(list(arr[index])==[zero_ket,zero_ket,zero_ket]): | |
st.success("Computer winss !") | |
return 0 | |
for index in [0,1,2]: | |
if(list(arr[:,index])==[one_ket,one_ket,one_ket]): | |
st.success("User has won !") | |
return 0 | |
for index in [0,1,2]: | |
if(list(arr[:,index])==[zero_ket,zero_ket,zero_ket]): | |
st.success("Computer winss !") | |
return 0 | |
#for draw | |
if '|φ>' not in arr: | |
st.write("Its a DRAW...") | |
return 0 | |
return 1 | |