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 | |